提高UNIX安全的方法(一)
提高UNIX安全的方法(一):补丁程序
声明:欢迎转载和传播本安全文摘,但请保持原文内容。版权归原作者所有。
一、补丁程序
旧版本的操作系统往往含有安全漏洞,而这些漏洞往往又是为网络黑客店所熟知的。
为了系统的安全,应该使用最新版本的操作系统,并及时安装补丁程序。
可从供应商那里获取最新的补丁程序并安装。有的补丁程序可能会更新系统的缺省设置。因此在安装新的补丁程序后,有必要重新检查系统的设置情况,例如一些文件的读写权限情况,以及一些重要的系统配置文件的内容等。
UNIX系统中有专门的patch命令,用于安装补丁程序。具体的使用方法是:
# patch < patch_filename
有关该命令的更详尽的信息,可以参照对应的man手册页。
2、r命令
r命令是由Berkley开发的一系列命令软件。由于这些命令都是以"r"开头,因此统称
为r命令。
a、不真正需要使用r命令
这时最好去掉这些r命令服务(例如rlogin和rsh等等),有特殊要求时除外。这
可以减少系统的口令暴露在网络监听程序之下的可能性。而r命令常常又是系统不安全
因素和受到攻击的源由。因此,对r命令服务应该是能去掉就去掉。
b、必须执行r命令
这时建议用户针对特定的需求使用更安全版本的r命令。Wietse Venema的
logdaemon程序包含有更安全版本的r命令守护进程。这些版本的r命令只能通过
/etc/hosts.equiv而不是$HOME/.rhosts来获取认证。它也能通过配置来禁止通配符(+)
的使用。
如果用户决定要使用r命令,就一定要在路由器上过滤掉端口512、513和
514(TCP)。这可以阻止网络外部用户使用这些r命令,而内部用户却允许使用这些
命令。
建议使用TCP_Wrapper来提高系统的安全性,并能对系统的被访问情况做更完善的
记录。
3、/etc/hosts.equiv文件
a、建议用户采纳下面的措施--不论用户的系统是否使用r命令
检查系统是否需要/etc/hosts.equiv文件。
这样的命令能从一个被信任的主机上不需口令地访问系统。
如果不允许r命令服务或者不希望对其他系统加以信任,则应该去掉该文件,即删
除该文件。如果该文件不存在,即使不小心允许了r命令服务,也不会造成安全问题。
b、如果离不开/etc/hosts.equiv文件
确保系统只对尽量少的系统加以信任权限。
不要对以前的管理使用/etc/netgroup文件--如果在运行NIS(也称为YP
或NIS+)。
不要对网络系统内部的主要或在用户管理范围内部的主机加以信任权限。
确保使用的是完全的主机名,例如 hostname.domainname.cn
确保在该文件中没有使用包含"+"的记录,因为这样会使任何一台主机上的任何用户
都可以不加口令地访问系统,这会对系统的安全造成很大的损害。
确保不要在该文件中使用任何"!"或"#",因为在该文件中那并不表示注释信息。
确保该文件中的第一个字符不是"-"。
确保该文件的访问权限被设置成600。
确保该文件的所有者被设置成为root。
在每次安装补丁程序或操作系统之后,都应该重新检查该文件夹的设置情况。
4、/etc/netgroup文件
如果使用NIS(也称YP)或NIS+,一定要在该文件中的每个netgroup中设置成只包
含usernames或只包含hostnames。所有的工具程序都只分析该文件中的hosts
或usernames,但没有对这两个部分都做分析。使用独立的netgroups会使记忆每
个netgroup的功能变得简单。配置这些额外的netgroups所付出的时间与使系统置于不
安全的状态相比,这个付出还是值得的。
具体的信息,请参照相应的UNIX联机手册。
5、$HOME/.rhosts文件
a、不论系统上是否使用了r命令访问,建议采纳的措施
确保任何用户在他们的$HOME目录下都没有.rhosts文件存在。这些文件
比/etc/hosts.equiv会造成更大的安全漏洞,因为任何系统上的用户都可以创建该文
件。对这些文件有特殊的应用,例如实现无人看管一的网络备份。
建议使用cron机制来定期检查并报告$HOME/.rhosts文件的内容,并适当地删除掉
该文件。应该使其他用户了解到为了系统的安全,才进行这种审计工作。cron任务管理
可以使用命令crontab -e,从而实现在特定的时间完成特定的任务。有关cron的更具
体的信息,请参照具体的UNIX系统联机手册。
b、必须要有该文件
这时,确保该文件的第一个字符不是"-"。
确保该文件的访问权限被设置成600。
确保该文件的所有者被设置成被对应帐号的用户。
确保该文件中不含有任何的"+"符号,因为该设置会使任何系统上的任何用户都能访
问本系统。
确保在.rhosts内部使用netgroups,不允许未经允许的用户访问该帐号。
确保在该文件中不含有"!"或"#"符号,这两个符号在该文件中并不代表注释。
6、NFS
在使用NFS的时候,可以缺省地依靠NFS服务器的安全性来保证被加载(mount)的
文件的安全性。
一定要在路由器上过滤掉NFS传输。在端口111上过滤掉TCP/UDP,在这端口2049
上过滤掉TCP/UDP。这会阻止系统子网以外的主机来访问用户系统上被共享的文件系统。
如果可能,请尽量安装上补丁程序。
NFS有很多的安全漏洞。如果系统不是真正需要,尽量去掉NFS服务。具体去掉NFS
服务的步骤,请参照UNIX服务商提供的联机手册。
一定要激活NFS端口监控功能。
在/etc/exports或/etc/dfs/dfstab文件中仅共享真正需要共享的文件系统。如果
不能确认是否应该共享某个文件系统,那么就不要共享该文件系统。
不要在一个NFS服务器的exports文件中自引用(self-reference)。也就是说,
共享的文件系统不能向NFS服务器本身公布共享文件系统。尤其是,确保该NFS服务器
不出现在它的exports文件的任何netgroups中。
不要允许在exports文件中包含localhost记录。
一定要只向包含全名的主机公布共享文件系统,例如,使用完全的主机地址
machinename.domainname.cn,而不要简写成machinename。
确保公布的文件系统列表不超过256个字符。如果在/etc/exports中包含主机访问
列表,该列表的长度不要超过256个字符。
建议在系统的所有文件系统上运行fsirand并定期地重新运行该程序。具体的方
法是:
首先,要确保系统上已经安装了fsirand的补丁程序。
其次,要确保文件系统被卸载,然后运行fsirand。
可预测的文件句柄可以帮助网络黑客通过NFS来攻破系统。
确保用户从不大意地向所有的系统公布共享文件系统。
在/etc/exports文件中使用-access=host.domainname.cn选项或相似的对应选项。
更详细的信息可以参照"exports"的"dfstab"帮助手册。
尽量以只读的方式共享文件系统。
如果系统需要运行NIS服务,那么一定要在exports文件中和加载请求
(mount request)中使用安全先项(如果系统上支持安全选项)。
建议使用命令showmount -e 来查看系统当前被共享的文件系统,以检查其是否有
安全漏洞。该命令的语法是:showmount -e ipaddress,其中ipaddress是被检查的主
机的IP地址。
确保文件/etc/exports的权限被设置成644。
确保文件/etc/exports的所有者被设置成root。
确保运行的portmapper或rpcbind不转发(forward)从客户来的请求。恶意的NFS
client能令服务器的portmapper守护进程将请求转发给mount守护进程。该mount守
护进程会处理到来的请求,就好象是直接从protmapper分来的。
如果文件系统是自动加载的,这样就会给客户不需认证便可访问系统文件系统的
权限。
要清楚在文件/etc/exports中所作的改变要到用户运行/usr/etc/exportfs或相似
命令之后才起作用。
发布人:netbull 来自:安全教程