来源:www.cncfan.com | 2006-1-16 | (有2060人读过)
更改不需要的SUID/SGID
SUID(Set User ID)或SGID(Set Group ID)程序可以让普通用户以超过自己权限的形式执行它。一个常见的例子是passwd,它的访问权限如下:
-r-s--x--x 1 root root 18992 Jun 6 2003 /usr/bin/passwd
可以看到,这里的owner执行权限被设置成“s”而不是“x”,这就是一个SUID程序。比如,当一个普通用户执行passwd时,它就会以文件所有者(本例中是root用户)的权限来运行程序。
很多SUID/SGID可执行程序是必须的,比如上面提到的passwd。但是,很多是不需要的。SUID/SGID程序会被一些恶意的本地用户利用,获取本不应有的权限。运行以下命令可以找到所有具有这一属性的程序:
#find / \( -perm -4000 -o -perm -2000 \)
使用者必须查看这一列表,尽量减少那些所有者是root或是在root组中却拥有SUID/SGID属性的文件,删除或对其属性进行更改。
要删除具有SUID/SGID属性的文件要先运行:
#rpm -q --whatprovides /usr/sbin/kppp
然后可以使用以下命令来删除它:
#rpm -e package-name
SUID/SGID属性位则可以使用chmod命令来删除,比如,chmod -s /usr/sbin/kppp。
关注日志
虽然使用者会尽最大努力保证自己系统的安全,但是,现实情况是不管如何努力,都无法使系统处于绝对安全的状态。下面是其它一些需要注意的事情,它可以让使用者知道是否或什么时候系统被攻破。
一个非常常用、且很菀妆坏凸赖娜肭旨觳獬绦蚴荰ripwire(http://www.tripwire.org)。该程序会定期地检测系统文件,来确定它们是否被更改。
如果有任何不应该发生的更改出现,Tripwire就会为用户生成一个报表。要让Tripwire正常工作,需要花费一定的时间来对其进行配置,但它的确值得花时间。
了解系统情况的一个非常重要的途径是查看日志文件。Linux中的系统日志由syslogd监控程序处理,其配置文件是/etc/syslog.conf。在配置文件中,可以指明什么工具或程序需要记录信息(比如cron、daemon或电子邮件等),什么级别的信息需要写入日志(比如debug、info或警告等),以及如何处理这些信息(添加到日志文件或发送到打印机等)。
系统日志也可以远程进行,也就是说把日志文件放置在网络的另外一个系统上。这样做的好处是如果系统被攻破,那么入侵者将无法删除在其它系统上留下的痕迹,从而可以比较容易地对其进行跟踪。
但是,对于普通用户而言,每天处理大量的来自各日志文件的信息绝非易事,所以转而使用Logwatch(http://www.logwatch.org)工具。该工具可以定期对系统的日志文件进行分析,然后根据分析结果创建一个分析报告,通过电子邮件发给root用户。
因为这些报告一般都比较短,所以适合用户每天阅读。根据配置,它会对一些信息加亮显示(比如非法登录尝试或端口扫描等)。其配置文件一般位于/etc/log.d/conf/logwatch.conf,配置文件中的注释可以让用户方便地对其进行设置。
除Logwatch以外,还有很多入侵检测系统可供选择,比如Snort(http://www.snort.org),可以在搜索引擎中很方便地找到这些工具。
安全仍需努力
系统安全并不是一劳永逸的事情,事实上在做每一件事情的时候都要考虑到系统的安全性。管理员需要保证系统时刻处于最新状态、确保使用了合适的密码、设置了合适的访问级别、每天阅读日志、检查Tripwire报告、阅读所使用发行版的邮件列表等。
本文介绍了一些每个用户都要做的、基本的、重要的步骤。当然,除了本文所述之外,用户还有很多事情可做。下面给出几个忠告。
1.永远不要使用Telnet、FTP或任何其它纯文本的远程会话来传送用户名和密码,只能使用SSH、SFTP或与之类似的程序来传送这些内容。
2.确保使用严格的防火墙策略,缺省情况下关闭所有连接,只打开需要的连接,并且要有严格的限制。比如,需要从工作的地方SSH到系统中,那么只允许其基于IP通过。
|