linux中使用tcpwrappers控制文件的方法介绍

发布时间:2019-10-22编辑:脚本学堂
linux中hosts.allow和hosts.deny访问控制文件里面的规则一般是:daemon_list : client_list [ : shell_command ] 其中daemon_list是一个或者数个daemon进程名,可以使用通配符;

linux中hosts.allow和hosts.deny访问控制文件里面的规则一般是:
daemon_list : client_list [ : shell_command ]

其中daemon_list是一个或者数个daemon进程名,可以使用通配符;client_list是一个或者数个客户端主机名或者IP,可以使用通配符号。

daemon_list可以使用两个特殊符号:ALL和EXCEPT。ALL表示所有的进程,而EXCEPT表示排除某个情况。比如:
ALL EXCEPT in.fingerd
表示除了in.fingerd外所有的进程。

client_list可以使用一些通配符:
1. "."号在字符串前匹配所有后面部分和所提供字符串一样的主机名。比如:
.tue.nl可以匹配wzv.win.tue.nl或者linux.tue.nl。

2. "."号在字符串后匹配所有以所提供字符串开头的地址,比如:
131.155.可以匹配所有131.155.xxx.xxx的地址。

3. 也可以使用n.n.n.n/m.m.m.m的格式来表示net/mask,比如:
131.155.72.0/255.255.254.0匹配从131.155.72.0到131.155.73.255的地址。

4. 以"/"号开头的字符串将被看作一个文件处理,它匹配所有在这个文件中列出的主机名或者地址。

5. "@"开头的串将被当作一个NIS组的名字。

6. ALL表示所有的主机,LOCAL匹配所有机器名中不带"."号的主机。EXCEPT表示排除某些主机。

比如在hosts.allow里面有一行:
ALL: .foobar.edu EXCEPT terminalserver.foobar.edu

表示允许除了主机名叫terminalserver.foobar.edu以外所有.foobar.edu域内的机器都可以访问所有的服务。

而在hosts.deny
ALL EXCEPT in.fingerd:192.168.0.0/255.255.255.0

则表示禁止192.168.0.1到192.168.0.254的机器访问除了in.fingerd以外的服务。

限制只有0组的用户可以su成root

修改/etc/login.defs里面的SU_WHEEL_ONLY的值为:
SU_WHEEL_ONLY yes

那么就只有gid为0的用户可以su成root。

tcpwrappers控制文件的读取顺序
1. 如果client以及daemon满足hosts.allow里面的条目,那么访问将被允许。
2. 否则,如果client以及daemon满足hosts.deny里面的条目,那么访问将被禁止。
3. 如果以上两条都不满足,访问将被允许。
4. 如果访问控制文件不存在,将被当作空规则文件处理。所以可以通过删除访问控制文件来关闭访问限制。