[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ 下一页 ]
下边是安装完成后, 来循序渐进的增强 Debian 2.2 GNU/Linux 系统的安全性. 对于增强网络服务的安全性, 这是一种可行的方法. 这包括展示您的整个配置过程. 更多信息参见 配置清单, 附录 B.
安装系统时, 应当注意分区有关的信息, 包括本文档前边提到的. 完成基本安装后, 进入定制安装阶段. 不要 select task packages. 应当使用 shadow 密码.
使用 dselect, 删除在前边使用 [I]nstall
时安装了但是并不需要的软件包. 使得系统安装的软件包最少.
如前边 进行安全更新, 第 4.2 节 阐明的, 从 security.debian.org 更新所有的软件包.
实现本手册前边提出的建议, 特边是用户限额, 登录定义和 lilo
构建一个系统当前运行服务的列表. 尝试:
$ ps -aux
$ netstat -pn -l -A inet
# /usr/sbin/lsof -i | grep LISTEN
执行第三行命令(以 root 运行), 您需要安装 lsof-2.2. 应当注意,
lsof 可以将 LISTEN 换做您的本地设定...
为了删除多余的服务, 首先应当确定服务是由什么软件包提供的, 它是如何启动的.
这可以通过检查程序监听的 socket 来确定. 下边使用了 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 节)
禁止服务在启动时自动运行.
对于 inetd 服务(由超级用户装入的), 检查在 /etc/inetd.conf
中启用了哪些服务:
$ grep -v "^#" /etc/inetd.conf | sort -u
然后通过注释掉 /etc/inetd.conf 中的对应行, 将其禁用,
删除对应软件包, 或使用 update-inetd.
如果您使用了 wrapped 服务(它们使用 /usr/sbin/tcpd),
根据您的服务策略, 检查 /etc/hosts.allow 和
/etc/hosts.deny 文件的配置.
如果服务器使用了多个外部接口, 根据服务, 您可以限制服务只监听特定的接口. 例如, 如果您只允许内网访问 FTP, 那么就配置 FTP 守护进程只监听您管理的接口, 而不是所有接口(即, 0.0.0.0:21).
重启计算机, 或使用下边的命令由单用户模式切换到多用户模式:
$ init 1
(....)
$ init 2
检查现在的服务, 并, 如果需要, 重复上边的步骤.
现在, 安装所需服务, 如果, 您还没有做好, 正确的配置它们...
使用下边的 shell 命令, 确定服务是以什么用户运行的:
$ 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 和
logcheck.
重复进行网络扫描和入侵检测校验, 直至确定系统运行正常.
下边是更加偏执的做法:
提高系统防火墙的性能, 只接受对所提供服务的连入访问, 并限制连出访问, 只允许授权的连接通行.
使用网络扫描器, 再次对系统进行漏洞评估.
使用网络扫描器, 检查系统指向外部站点的出站连接, 确保没有多余的连出连接.
FIXME: 这个过程只是考虑增强服务的安全性, 而不是在用户级别上增强系统的安全性, 包括检查用户权限的信息, SETUID 文件和使用 ext2 文件系统的冻结修改.
[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ 下一页 ]
Debian 安全手册
v3.5, Thu, 24 Nov 2005 21:25:43 +0800jfs@debian.orgetony@tom.com