判断服务程序是否能够由tcp_wrapper进行访问控制的方法
ldd /PATH/TO/PROGRAM|grep libwrap.so
strings PATH/TO/PROGRAM|grep libwrap.so
配置文件
/etc/hosts.allow, /etc/hosts.deny
帮助参考
man 5 hosts_access,man 5 hosts_options
检查顺序
hosts.allow,hosts.deny(默认允许)
注意:一旦前面规则匹配,直接生效,将不再继续
基本语法
daemon_list@host: client_list [ :options :option… ]
Daemon_list@host格式
单个应用程序的二进制文件名,而非服务名,例如vsftpd
以逗号或空格分隔的应用程序文件名列表,如:sshd,vsftpd
ALL表示所有接受tcp_wrapper控制的服务程序
主机有多个IP,可用@hostIP来实现控制
如:in.telnetd@192.168.0.254
TCP_Wrappers的使用
以逗号或空格分隔的客户端列表
基于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
允许172.16网段使用ftp服务,但是排除172.16.100网段,但是172.168.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
spawn 启动一个外部程序完成执行的操作
sshd: ALL :spawn echo "$(date +%%F) login attempt from %c to
%s,%d" >>/var/log/sshd.log
在/etc/hosts.allow中添加,允许登录,并记录日志
在/etc/hosts.deny中添加,拒绝登录,并记录日志
%c 客户端信息
%s 服务器端信息
%d 服务名
%p 守护进程的PID
%% 表示
twist 实际动作是拒绝访问,使用指定操作替换当前服务,标准输出和ERROR
vsftpd: 172.16. :twist /bin/echo “connection prohibited”