Linux下防范缓冲区溢出攻击的系统安全策略( 二 )



禁止提供finger;服务

在Linux系统下,使用finger命令可以显示本地或远程系统中目前已登录用户的详细信息,安全可以利用这些信息,增大侵入系统的机会 。为了系统的安全,最好禁止提供finger服务,即从/usr/bin下删除finger;命令 。如果要保留;finger服务,应将finger文件换名,或修改其权限,使得只允许root用户执行finger命令 。

处理"inetd.conf"文件

inetd也叫作"超级服务器",其作用是根据网络请求装入网络程序 。"/etc/inetd.conf"文件告诉inetd监听哪些网络端口,为每个端口启动哪个服务 。把Linux系统放在任何网络环境中,第一件要做的事就是了解一下服务器到底要提供哪些服务 。不需要的那些服务应该被禁止掉,最好卸载掉,这样安全就少了一些攻击系统的机会 。查看"/etc/inetd.conf"文件,了解一下inetd提供哪些服务 。用加上注释的方法(在一行的开头加上#号)禁止任何不需要的服务,再给inetd进程发一个SIGHUP信号 。具体操作步骤如下:

(1)把文件"/etc/inetd.conf"的许可权限改成600,只允许root来读写该文件 。

[root@snow]#;chmod;600;/etc/inetd.conf;

(2)确定"/etc/inetd.conf"文件所有者为root 。

[root@snow]#;stat;/etc/inetd.conf

这个命令显示出来的信息应该是:

File:;"/etc/inetd.conf"
Size:;2869;Filetype:;Regular;File
Mode:;(0600/-rw-------);Uid:;(;0/;root);Gid:;(;0/;root)
Device:;8,6;Inode:;18219;Links:;1
Access:;Fri;Apr;12;14:28:11;2002(00000.00:10:44)
Modify:;Wed;Apr;10;11:20:22;2002(00002.06:12:16)
Change:;Wed;Apr;10;11:20:22;2002(00002.06:12:16)

(3)编辑;/etc/inetd.conf文件(vi;/etc/inetd.conf),禁止所有不需要的服务,如:ftp、telnet、;shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth等 。把不需要的服务关闭可以使系统的危险性降低很多 。

(4)改变了"inetd.conf"文件之后,要给inetd进程发送一个SIGHUP信号(killall;-HUP;inetd) 。

[root@snow;/root]#;killall;-HUP;inetd;

(5)为了保证"inetd.conf"文件的安全,可以用chattr命令把它设成不可改变的 。如下:

[root@snow]#;chattr; i;/etc/inetd.conf;

这样可以防止对"inetd.conf"文件的任何修改 。一个有"i"属性的文件是不能被改动的(不能删除或重命名,不能创建这个文件的链接,不能向这个文件里写数据) 。唯一可以取消这个属性的人只有root 。如果要修改"inetd.conf"文件,首先要取消不可修改的属性,如下:

[root@snow]#;chattr;-i;/etc/inetd.conf;

再改变了"inetd.conf"文件后,需要再把它的属性改为不可改变的 。

推荐阅读