Securing Debian Manual

1

有一段时间被 "Linux 安全知识基础" 所取代. 在 Debian 中也通过 lskb 软件包提供了此文档. 现在又是 Lasg 了.

2

有关这种使用 /temp 的攻击的一个很好的例子 The mysteriously persistently exploitable program (contest)The mysteriously persistently exploitable program explained (注意,是与 Debian 相关的) 这是一个基本的攻击, 一个本地用户通过创建一个硬连接 隐藏 含有漏洞的 setuid 应用程序, 以有效的逃避由系统管理员进行的任何二进制程序本身的升级(或删除). Dpkg 对此最近做了修正(参阅 225692) 但是如果分区设置不正确,其他的二进制程序 (不是由软件包管理者控制的)仍很危险.

3

例如, 在 Debian woody 中, 系统至少 40Mbs, 尝试一下:

       $ size=0
       $ for i in `grep -A 1 -B 1 "^Section: base" /var/lib/dpkg/available |
       grep -A 2 "^Priority: required" |grep "^Installed-Size" |cut -d : -f 2
       `; do size=$(($size+$i)); done
       $ echo $size
       34234

4

许多入侵的目的仅仅是获取资源用于非法活动(拒绝式服务攻击, spam, ftp 服务欺骗, dns pollution...)而不是从入侵的系统中获取机密数据.

5

您可以使用 equivs 构建(在其他系统上)一个虚拟包

6

/etc/securettylogin 软件包的配置文件.

7

ttyvX 对于 GNU/FreeBSD 来说, 在 GNU/KNetBSD 中则是 ttyE0 .

8

comX 对于 GNU/Hurd 来说, GNU/FreeBSD 中则是 cuaaX , GNU/KNetBSD 中是 ttyXX.

9

搜索 getty 调用calls.

10

woody 中缺省配置包括 12 个本地 tty 和 vc 控制台, 也就是 控制台 设备, 但是不允许远程登录. 在sarge 中, 缺省配置为 tty 和 vc console 提供 64 个控制台,如果您用不了这么多控制台, 将其删除也没有问题.

11

这包括软件包管理工具 dpkg 因为安装 (post,pre) 和删除 (post,pre) 脚本在 /var/lib/dpkg/ 下 和 Smartlist

12

然而, 在 Debian 3.0中软件包的依赖关系还没有修复. 请参阅 Bug #112965.

13

Libpam-chroot 还未经过完整测试, 其用于 login, 但是为其他程序配置环境十分麻烦

14

设置 HISTSIZE 为一个较大的数字对于某些shell可能会引起一些问题, 因为 history 会保存在用于每个用户的会话内存中. 所以您应当估计一个比较合适的值, 并备份用户的 history 文件 (如果因为某种原因需要保存所有用户的 history)

15

没有只能添加标志,用户将可以通过运行 >.bash_history 清空历史文件

16

tty 是用于本地登录或通过 ssh 和 telnet 远程登录的

17

Chpasswd 通常不能处理 MD5 密码, 因此使用时需要加上 -e 选项以给其输入加密的密码.

18

在这里要确保使用了大写, 因为 spawn 不会起作用

19

这里有篇 Lance Spitzner 撰写的很棒的文档

20

注意, 依赖于 kernel2.4 源码包, 您可能会碰到一些给内核源码打补丁的问题. 也许您需要使用 stock vanilla kernel. 下边的步骤可以完成这一任务:

     # apt-get install kernel-source-2.4.22 kernel-patch-debian-2.4.22
     # tar xjf /usr/src/kernel-source-2.4.22.tar.bz2
     # cd kernel-source-2.4.22
     # /usr/src/kernel-patches/all/2.4.22/unpatch/debian

更多信息参阅#194225, #199519, #206458, #203759, #204424, #210762, #211213, 和 discussion at debian-devel

21

很常见, 事实上, 它们占每年报告的安全漏洞的 20%, 这是由 statistics from ICAT's vulnerability database 提供的

22

在 Debian 中 kernel-image 软件包在 /usr/src/kernel-souce-2.X.X下安装源代码, 以取代指向所安装内核的 linux

23

复制(例子由 Felix von Leitner 在 bugtraq 邮件列表中提供):

        host a (eth0 connected to eth0 of host b):
          ifconfig eth0 10.0.0.1
          ifconfig eth1 23.0.0.1
          tcpserver -RHl localhost 23.0.0.1 8000 echo fnord
     
        host b:
          ifconfig eth0 10.0.0.2
          route add 23.0.0.1 gw 10.0.0.1
          telnet 23.0.0.1 8000

然而, 这看起来对绑定于 127.0.0.1 的服务不起作用, 您可能需要使用 raw sockets 来写这个测试.

24

事实上, 这一特性可以通过路由修改, 如 Matthew G. Marsh 在 bugtraq 中所述:

     eth0 = 1.1.1.1/24
     eth1 = 2.2.2.2/24
     
     ip rule add from 1.1.1.1/32 dev lo table 1 prio 15000
     ip rule add from 2.2.2.2/32 dev lo table 2 prio 16000
     
     ip route add default dev eth0 table 1
     ip route add default dev eth1 table 2

25

有一些用于这一特性的补丁, 如 bugtraq 的 http://www.linuxvirtualserver.org/~julian/#hiddenhttp://www.fefe.de/linux-eth-forwarding.diff 中所描述的.

26

在配置了 IP 地址绑定以后, 如果和被攻击主机不是位于同一广播域(同一网络), 攻击者试图访问就会有很多麻烦. 如果工具通过一个路由器, 那么信息的返回是相当困难的.

27

在 Debian 中查找邮件守护进程列表:

     $ apt-cache search mail-transport-agent

这个列表将不会包括 qmail, 它只在qmail-src软件包中做为源代码发行.

28

在 Debian中您可以这样获取支持这些协议的 服务器/守护进程 列表:

     $ apt-cache search pop3-server
     $ apt-cache search imap-server

29

注意, 根据您的 bind 的版本, 可能没有 -g 选项, 如果您使用 woody 并安装了 bind9 (9.2.1-2.woody)就更需注意.

30

当调用 dpkg 的时候, 除非您使用 instdir 选项, 否则可能会变的更复杂

31

它试图让它们在 minimum priviledge 下运行, 这包括使用它们的用户而不是root 用户运行守护进程

32

与其他系统的个人防火墙不同, Debian GNU/Linux (仍然)没有提供防火墙生产接口用于定制限制每个进程和用户的规则, 然而, iptables 代码可用于完成这一任务(参阅 iptables(8) 联机手册)

33

现在已经有超过10种不同语言的翻译

34

完全通过 CVE 的capability questionnaire

35

自动升级问题已经困扰了一些操作系统如 Mac OS X 软件升级漏洞.

FIXME: 可能 IE 处理证书链漏洞已经开始影响 Microsoft Windows 的安全更新.

36

其中一些可以通过安装 harden-remoteaudit 软件包获取.

37

如果您使用的是最新的软件包, 和官方 Debian, 数据库将不能进行安全更新. 您要么是使用 clamav-freshclam, clamav-getfiles 生成新的 clamav-data 软件包, 要么从维护者的站点升级:

       deb http://people.debian.org/~zugschlus/clamav-data/ /
       deb-src http://people.debian.org/~zugschlus/clamav-data/ /

38

关于如何配置 gnupg 的更多例子, 请查看 /usr/share/doc/mutt/examples/gpg.rc.

39

您也可能想使用 --quiet(-q)参数以减少 apt-get 的输出, 如果没有安装软件包, 就会中止产生的任何输出.

40

注意, 一些软件包不能使用 debconf 并且更新后的配置过程需要用户输入数据.

41

这是一个很常见的问题, 因为很多用户在使用一个 stable 系统的同时, 希望将一些软件包升级到 unstable 以获取最新功能. 这就需要成立一些项目加快解决 Debian 的 stable 之见问题的时间.

42

一个简单的方法是使用 Live CD, 比如 Knoppix Std, 其同时为您的系统提供了文件完整性检查工具和数据库.

43

这包括大约 28 个性能: CAP_BSET, CAP_CHOWN, CAP_FOWNER, CAP_FSETID, CAP_FS_MASK, CAP_FULL_SET, CAP_INIT_EFF_SET, CAP_INIT_INH_SET, CAP_IPC_LOCK, CAP_IPC_OWNER, CAP_KILL, CAP_LEASE, CAP_LINUX_IMMUTABLE, CAP_MKNOD, CAP_NET_ADMIN, CAP_NET_BIND_SERVICE, CAP_NET_RAW, CAP_SETGID, CAP_SETPCAP, CAP_SETUID, CAP_SYS_ADMIN, CAP_SYS_BOOT, CAP_SYS_CHROOT, CAP_SYS_MODULE, CAP_SYS_NICE, CAP_SYS_PACCT, CAP_SYS_PTRACE, CAP_SYS_RAWIO, CAP_SYS_RESOURCE, CAP_SYS_TIME, and CAP_SYS_TTY_CONFIG. All of them can be de-activated to harden your kernel.

44

要完成这一操作, 您不一定要安装 lcap, 但是它比手动设置 /proc/sys/kernel/cap-bound 更简单.

45

如果喜欢冒险, 您可以登入系统, 并保存所有正在运行进程的信息(大部分可以从 /proc/nnn/ 获取).从内存中获取所有正在运行的代码也是可能的, 甚至入侵者从硬盘上删除的文件. 然后关掉电源.

46

事实上, 这是 Gibraltar 项目(一个基于 Debian 的构建在CDROM上的防火墙.)用来构建CDROMs的工具.

47

这是一些 CERTS 的列表, 更见完整的列表查看 FIRST Member Team information (FIRST 是事件响应和安全小组的论坛): AusCERT (澳大利亚), UNAM-CERT (墨西哥) CERT-Funet (芬兰), DFN-CERT (德国), RUS-CERT (德国), CERT-IT (意大利), JPCERT/CC (日本), UNINETT CERT (挪威), HR-CERT (克罗地亚) CERT Polskay (波兰), RU-CERT (俄罗斯), Sl-CERT (斯洛文尼亚) IRIS-CERT (西班牙), SWITCH-CERT (瑞士), TWCERT/CC (台湾), and CERT/CC (美国).

48

例如, 基于安全视点(Securityfocus)的数据, 可能看上去 Windows NT 比 Linux 更安全, 这只是观点的问题. 毕竟, Linux 通常提供的工具要比 Microsoft 的 Windows NT要多的多. 漏洞的数量问题在 David A. Wheeler 的 为什么 开放软件源代码 / 自由软件(OSS/FS)? 看这些数字! 中有更详细的描述.

49

不可否认, 一些发行版, 如 RedHat 或 Mandrake, 在它们的标准安全中也考虑了安全问题, 允许用户选择 security profiles, 和使用向导帮助用户配置 个人防火墙.

50

注意, 这是'含糊的安全性', 从长远的观点来说可能没有什么用.

51

Notice that there are no SETUID files. This makes it more difficult for remote users to escape the chroot environment. However, it also prevents users from changing their passwords, since the passwd program cannot modify the files /etc/passwd or /etc/shadow.


Securing Debian Manual

v3.2, Mon, 20 Jun 2005 08:01:11 +0000

Javier Fernández-Sanguino Peña jfs@debian.org
Translator: eTony etony@tom.com
作者, 第 1.1 节