一、tcp_wrapper
1.tcp_wrapper
(1)TCP包装器
一个为Unix服务器提供防火墙服务的公共领域计算机程序,通用库文件:libwrap.so。定义配置后无需重启服务,因为基于libwrap.so库动态加载,不会拒绝已经建立的连接,仅在启动该程序时检查。
配置文件:/etc/host.allow(允许)、/etc/hosts.deny(禁止)
(2)判断某服务是否能够由tcp_wrapper进行访问控制
1) 动态编译:ldd命令查看是否存在libwrap.so库;
# ldd $(which COMMAND) | grep libwrap
2) 静态编译:基于符号追踪。strings命令查看应用程序文件,其结果中是否出现了hosts.allow和hosts.deny文件;
注意:
CentOS6主机上的telnet服务托管于xinetd,后者接受libwrap控制;
CentOS7主机上的telnet服务未托管于xinetd,而in.telnetd程序未链接至libwrap;
2.服务基于libwrap完成访问控制流程
首先检查/etc/hosts.allow文件中有没有显式授权当前请求者访问:
是:直接授权客户端访问;
否:接着去检查/etc/hosts.deny文件中有没有显式拒绝当前请求者访问:
是:直接拒绝当前请求者的访问;
否:允许请求者访问;
注意:
1)依次在/etc/hosts.allow和/etc/hosts.deny配置文件中匹配请求,仅某段地址需在allow通行,在deny禁止ALL
2)在allow和deny中均未定义规则,允许请求者访问
二、配置文件
语法格式:服务列表对应主机列表的访问控制
daemon_list:client_list [:options]
1.daemon_list:
(1)单个应用程序的文件名称,而非服务名;
(2)以逗号分隔的应用程序文件名列表;例如:sshd, vsftpd
(3)ALL:所有接受tcp_wrapper控制的程序;
2.client_list:
IP地址 | |
主机名 | |
网络地址 | 必须使用完整格式的掩码,不能使用前缀格式掩码 |
简短格式的网络地址 | 例如172.16. 表示172.16.0.0/255.255.0.0 |
ALL | 所有主机 |
KNOWN | 所有已知可以解析的主机 |
UNKNOWN | 主机名不能反解的主机 |
PARANOID | 正向解析和安详解析不匹配的主机 |
3.:options
EXCEPT:除了
deny:拒绝,主要用于hosts.allow文件;
allow:允许,主要用于hosts.deny文件;
spawn:启动指定的应用程序;
%c: client ip
%s: daemon@serve_ ip
%d:daemonname
示例: vsftpd: ALL :spawn /bin/echo $(date)login attempt from %c to %s, %d >> /var/log/vsftpd.deny.log
本文出自 “许鼎的博客” 博客,请务必保留此出处http://xuding.blog.51cto.com/4890434/1738050
原文:http://xuding.blog.51cto.com/4890434/1738050