下边是安装完成后, 来循序渐进的增强 Debian 2.2 GNU/Linux 系统的安全性. 对于增强网络服务的安全性, 这是一种可行的方法. 这包括展示您的整个配置过程. 更多信息参见 配置清单, 附录 B.
dselect
, 删除在前边使用 [I]nstall
时安装了但是并不需要的软件包. 使得系统安装的软件包最少.
lilo
$ ps -aux $ netstat -pn -l -A inet # /usr/sbin/lsof -i | grep LISTEN
执行第三行命令(以 root 运行), 您需要安装 lsof-2.2
. 应当注意,
lsof
可以将 LISTEN 换做您的本地设定...
lsof
和
dpkg
程序的脚本可以完成这一任务:
#!/bin/sh # FIXME: this is quick and dirty; replace with a more robust script snippet for i in `sudo lsof -i | grep LISTEN | cut -d " " -f 1 |sort -u` ; do pack=`dpkg -S $i |grep bin |cut -f 1 -d : | uniq` echo "Service $i is installed by $pack"; init=`dpkg -L $pack |grep init.d/ ` if [ ! -z "$init" ]; then echo "and is run by $init" fi done
dpkg --purge
),
或使用 update-rc.d
(参阅 禁用守护进程服务, 第 3.6.1 节)
禁止服务在启动时自动运行.
/etc/inetd.conf
中启用了哪些服务:
$ grep -v "^#" /etc/inetd.conf | sort -u
然后通过注释掉 /etc/inetd.conf
中的对应行, 将其禁用,
删除对应软件包, 或使用 update-inetd
.
/usr/sbin/tcpd
),
根据您的服务策略, 检查 /etc/hosts.allow
和
/etc/hosts.deny
文件的配置.
$ init 1 (....) $ init 2
$ for i in `/usr/sbin/lsof -i |grep LISTEN |cut -d " " -f 1 |sort -u`; \ > do user=`ps -ef |grep $i |grep -v grep |cut -f 1 -d " "` ; \ > echo "Service $i is running as user $user"; done
考虑用指定的用户/组运行这些服务, 为了增强安全性, 也可为它们设置
chroot
. 您可以通过修改启动服务的脚本 /etc/init.d
达到这个目的. Debian 中许多服务使用 start-stop-daemon
,
它们都有完成这种设置的选项 (--change-uid 和
--chroot). 有关为服务设置 chroot
的警告信息:
您可能需要将服务对应软件包(使用 dpkg -L)所安装的所有文件, 以及其依赖的软件包,
置于 chroot
环境中. 有关配置 ssh
的
chroot
环境的信息, 参阅 SSH
的 chroot
环境, 附录 G.
nessus
)检查系统, 是否存在漏洞(即,
错误的配置, 旧版服务, 或不需要的服务).
snort
和
logsentry
.
下边是更加偏执的做法:
FIXME: 这个过程只是考虑增强服务的安全性, 而不是在用户级别上增强系统的安全性, 包括检查用户权限的信息, SETUID 文件和使用 ext2 文件系统的冻结修改.
Securing Debian Manual
v3.2, Mon, 20 Jun 2005 08:01:11 +0000jfs@debian.org
etony@tom.com