TCP_Wrappers 介绍
作者:Wieste Venema ,IBM ,Google
工作在第四层(传输层)的TCP 协议
对有状态连接的特定服务进行安全检测并实现访问控制
以库文件形式实现
某进程是否接受libwrap的控制取决于发起此进程的程序在编译时是否针对libwrap 进行编译的
判断服务程序是否能够由tcp_wrapper进行访问控制的方法:
ldd /PATH/TO/PROGRAM|grep libwrap.so
strings PATH/TO/PROGRAM|grep libwrap.so
TCP_Wrappers 的配置
配置文件:/etc/hosts.allow, /etc/hosts.deny
帮助参考:man 5 hosts_access ,man 5 hosts_options
检查顺序:hosts.allow ,hosts.deny,( 默认 允许)
注意:一旦前面规则匹配,直接生效,将不再继续
基本语法:
[email protected]: client_list [ :options :option… ]
[email protected] 格式
单个应用程序的二进制文件名,而非服务名 , 例如vsftpd
以逗号或空格分隔的应用程序文件名列表 ,如:sshd,vsftpd
ALL 表示所有接受tcp_wrapper 控制的服务程序
主机有多个IP ,可用@hostIP 来实现控制
如:[email protected]
客户端Client_list 格式
以逗号或空格分隔的客户端列表
基于IP地址:192.168.10.1 192.168.1.
基于主机名:www.magedu.com .magedu.com 较少用
基于网络/掩码:192.168.0.0/255.255.255.0
基于net/prefixlen: 192.168.1.0/24 (CentOS7)
基于网络组(NIS域):@mynetwork
内置ACL :ALL ,LOCAL ,KNOWN ,UNKNOWN, PARANOID
EXCEPT(除了)用法 :
示例: vsftpd: 172.16. EXCEPT 172.16.100.0/24 EXCEPT 172.16.100.1
示例
只允许192.168.1.0/24 的主机访问sshd
/etc/hosts.allow
sshd: 192.168.1.
/etc/hosts.deny
sshd :ALL
只允许192.168.1.0/24 的主机访问telnet 和vsftpd服务
/etc/hosts.allow
vsftpd,in.telnetd: 192.168.1.
/etc/host.deny
vsftpd,in.telnetd: ALL
TCP_Wrappers 的使用
[:options] 选项:
帮助:man 5 hosts_options
deny:主要用在/etc/hosts.allow 定义“拒绝”规则
如:vsftpd: 172.16. :deny
allow:主要用在/etc/hosts.deny 定义 “允许” 规则
如:vsftpd:172.16. :allow
spawn:启动一个外部程序完成执行的操作
twist:实际动作是拒绝访问, 使用指定的操作替换当前服务, 标准I/O 和ERROR 发送到客户端, 默认至/dev/null
测试工具:
tcpdmatch [-d] daemon[@host] client
-d 测试当前目录下的hosts.allow 和hosts.deny