tcp_wrapper:tcp包装器
对基于tcp协议开发并提供服务的应用程序,提供一层访问控制工具
基于库调用实现其功能,libwrap
#判断服务是否能够由tcp_wrapper进行访问控制
1)动态编译:ldd命令
2)静态编译:strings /path/to/program查看应用程序,其结果中出现hosts.allow,hosts.deny
#查看sshd服务是否受tcp_wrapper控制
[root@nginx01 netfilter]# ldd `which sshd`
linux-vdso.so.1 => (0x00007fff7d50b000)
libfipscheck.so.1 => /lib64/libfipscheck.so.1 (0x00007f12943ff000)
****---libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f12941f4000)---****
#查看xinetd服务是否受tcp_wrapper控制
[root@nginx01 netfilter]# ldd `which xinetd`
linux-vdso.so.1 => (0x00007ffe65e8a000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f697f573000)
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f697f368000)
#在配置文件中为各服务分别定义访问控制规则实现访问控制
#/etc/hosts.allow,/etc/hosts.deny
#配置文件语法:
daemon_list : client_list [:options]
daemon_list:
应用程序的文件名称,而非服务名
应用程序文件名称列表,彼此间使用逗号分隔,如:sshd,vsftpd,ALL表示所有服务
client_list:
IP地址
主机名
网络地址:必须使用完整格式的掩码,不使用前缀格式掩码,如172.16.0.0/16不合格
简短网络地址:如172.16. 表示172.16.0.0/255.255.0.0
ALL:表示所有主机
KNOW:所有已知主机
UNKNOW:所有未知主机
PARANOID
#通过tcp_wrapper实现允许指定主机访问本地vftpd服务
[root@nginx01 ~]# cat /etc/hosts.allow
#在hosts.allow文件中,如果有就放行
#允许192.168.88.103主机访问本机的vsftpd服务
vsftpd: 192.168.88.103
#如做以下设置,则整个192.168.88网段的主机都放行
vsftpd: 192.168.88.
[root@nginx01 ~]# cat /etc/hosts.deny
#在hosts.deny文件中如何有就拒绝,没有就放行
#拒绝其他主机访问
vsftpd: ALL
EXCEPT:除了
事例:
vsftpd:192.168. EXCEPT 192.168.88.0/255.255.255.0
[:options]
vsftpd:172.16. :deny
vsftpd: ALL :spawn /bin/echo `date` login attemp from %c to %s,%d >>/var/log/vsftpd.deny.log
|