标签:tcp_wrapper hosts.allow hosts.deny spawn
tcp_wrapper:tcp包装器,是一个由wieste venema开发,旨在为unix/linux服务器提供防火墙服务的免费软件,它能够让系统管理员记录和控制wrappers支持基于tcp的服务或守护进程的访问。
tcp_wrappers是用来辅助而非替代netfilter的,因为tcp_wrappers工作在应用层,而netfilter工作在网络层;
库文件:libwrap.so
/etc/hosts.allow , /etc/hosts.deny
判断某服务是否能够由tcp_wrapper进行访问控制的方法:
1) 动态编译:ldd命令;
ldd $(which COMMAND) | libwrap
2) 静态编译:strings命令查看应用程序文件,其结果中是否出现了hosts.allow和hosts.deny文件;
服务基于libwrap完成访问控制的流程:
首先检查/etc/hosts.allow文件中有没有显式授权当前请求者访问;
是:直接授权客户端访问;
否:接着去检查/etc/hosts.deny文件中有没有显式拒绝当前请求者访问;
是:直接拒绝当前请求者的访问;
否:允许请求者访问;
配置文件语法:
daemon_list:client_list [:options]
daemon_list:
1) 单个应用程序的文件名称,而非服务名;
2) 以逗号分隔的应用程序文件名列表;
例如:sshd,vsftpd
3) ALL:所有接受tcp_wrapper控制的程序;
Client_list:
Ip地址;
主机名;
网络地址:必须使用完成格式的掩码,不能使用前缀格式掩码;
简短格式网络地址:例如172.16. 表示172.16.0.0/255.255.0.0
ALL:所有主机;
KNOWN:能被解析的主机名
UNKNOWN:无法解析的主机名
PARANOID:主机名和ip地址的各自的正反解析结果不匹配
EXCEPT:除了
:options
deny:拒绝,主要用于hosts.allow文件
allow:允许,主要用于hosts.deny文件;
spawn:启动指定的应用程序;
vsftpd:ALL:spawn /bin/echo $(date) login attempt from %c to %s,%d >> /var/log/vsftpd.deny.log
%c:client ip
%s:daemon@server ip
%d:daemon name
示例:vsftpd 仅开放给192.168.19.0/255.255.255.0中的主机访问;
sshd仅开放给192.168.19.0/255.255.255.0中的主机访问,但是不包括192.168.19.130
对所有被拒绝的访问尝试都记录在/var/log/service.deny.log文件中;
1) /etc/hosts.allow文件中内容:
2) tc/hosts.deny文件中内容:
3) 测试;
首先用IP地址为192.168.19.134的主机测试;
再用192.168.19.130的主机测试;
4) 查看日志;
标签:tcp_wrapper hosts.allow hosts.deny spawn
原文地址:http://blog.51cto.com/claude666/2056657