本文详细介绍构建安全可靠的Linux服务平台(上)
使用tcpwrappers控制文件
在没有设置防火墙之前,可以通过一种简单而可靠的机制——tcpwrappers来加强网络访问控制。tcpwrappers从两个文件中读取网络访问控制规则:
/etc/hosts.allow 指定授权主机
/etc/hosts.deny 指定非授权主机配置文件的编写规则非常简单,一般是:
services_list : client_list [ : shell_command ]1. 如果client及services满足hosts.allow里面的条目,那么访问将被允许。
2. 如果client及services满足hosts.deny里面的条目,那么访问将被禁止。
3. 如果以上两条都不满足,访问将被允许。
4. 如果访问控制文件不存在,将被当作空规则文件处理。所以可以通过删除访问控制文件来关闭访问限制。
其中services_list可以列出一个或几个服务进程名,也可以使用通配符;client_list可以是IP地址、主机名或者网络号,也可以使用通配符。
services_list有两个特殊用法的符号:ALL和EXCEPT。ALL表示所有的进程,而EXCEPT表示排除某个进程。比如,ALL EXCEPT in.fingerd表示除了in.fingerd外所有的进程。
client_list可以使用如下通配符:
1. “.”号在字符串前匹配所有后面部分和所提供字符串一样的主机名。比如:.xssz.net可以匹配www.xssz.net或mail.xssz.net。
2. “.”号在字符串后匹配以所提供字符串开头的地址,比如,10.44.可以匹配所有10.44.xxx.xxx的地址。
3. 可以使用n.n.n.n/m.m.m.m的格式来表示net/mask,比如,10.44.72.0/255.255.254.0匹配从10.44.72.0到10.44.73.255的地址。
4. 以“/”号开头的字符串将被看作一个文件处理,它匹配所有在这个文件中列出的主机名或者地址。
5. “@”开头的串将被当作一个NIS组的名字。
6. ALL表示所有的主机,LOCAL匹配所有机器名中不带“.”号的主机,EXCEPT表示排除某些主机。
比如,hosts.allow中有一行,ALL: .edu.cn EXCEPT example.edu.cn表示允许除了主机名叫example.edu.cn 以外的所有.edu.cn域内的机器访问所有的服务。而在hosts.deny中,ALL EXCEPT in.fingerd:192.168.0.0/255.255.255.0则表示禁止192.168.0.1到192.168.0.254的机器访问除了in.fingerd以外的服务。
作者:shenyuan 责编:豆豆技术应用