tcp_wrapper

知识的价值不在于占有,而在于使用。这篇文章主要讲述tcp_wrapper相关的知识,希望能为你提供帮助。
tcp_wrapper知识整理


一、tcp wrapper简介
  tcp wrapper是一种访问控制工具,类似于iptables可以作访问控制。
  tcp wrapper只能对基于tcp协议的服务作访问控制,但并不是所有基于tcp协议的服务都能实现用tcp wraper作访问控制。
  tcp wrapper实现访问控制主要依靠两个文件,一个是/etc.hosts.allow文件,另一个是/etc/hosts.deny文件.从文件的名字上可以理解:一个是定义允许的,一个是定义拒绝的。那这两个文件生效的次序是怎样的呢?

tcp_wrapper

文章图片

通过图示应该很容易理解,首先检查hosts.allow文件中是否有匹配的规则。如果有匹配的规则,则允许访问,如果没有匹配的规则,则检查hosts.deny文件中是否有匹配的规则,如果有匹配的规则,则拒绝访问,如果没有匹配的规则,则视为默认规则,默认规则则为允许,所以允许访问。


二、配置文件的格式:
daemon_list : client_list [[[: option] : option] ...]


daemon_list:
注意:必须是应用程序文件的名称;即存放于/usr/sbin目录中的文件名;


1.单个应用程序文件名称:
如:vsftpd
2.程序文件的名称列表,以逗号分隔:
如:sshd, vsftpd
3.ALL:不加区分的表示所有受tcp_wrapper控制的应用程序;


client_list:
1.单个IP地址或主机名,如果使用主机名,则必须保证本机可以解析;
【tcp_wrapper】2.网络地址:以前缀长度表示的掩码无效(172.16.0.0/16)
a) 如果有掩码,则必须使用完整格式的掩码;
如:172.16.0.0/255.255.0.0
b) 可以使用简短格式:
如:172.16.
3.内置的访问控制列表:
ALL:所有的主机;
KNOWN:所有能被当前主机正确解析的主机名;
UNKNOWN:所有不能被当前主机正确解析的主机名;
PARANOID:正向解析和反向解析结果不一致所有主机;


: option
deny:拒绝,主要用于hosts.allow文件,定义拒绝访问规则;
allow:允许,主要用于hosts.deny文件,定义允许访问规则;
spawn:生成,发起,执行;




实例:
sshd服务不允许172.16.0.0/16,但允许172.16.1.3访问:


方法一:
1、/etc/hosts.allow
sshd : 172.16.1.3
2、/etc/hosts.deny
sshd : 172.16.


方法二:
/etc/hosts.deny
sshd : 172.16. EXCEPT 172.16.1.3


方法三:
1、/etc/hosts.allow
sshd : ALL EXCEPT 172.16. EXCEPT 172.16.1.3
2、/etc/hosts.deny
sshd : ALL


三、扩展选项:
  spawn使用示例:
sshd, vsftpd : ALL : spawn /bin/echo $(date +%F-%T) %c attempt login %s > > /var/log/tcpwrapper.log


%c: Client   information:   [email  protected],   [email  protected],   a   host name, or just an address, depending on how much information is available.
%s: Server   information:   [email  protected], [email  protected], or just a daemon name, depending on how much information is available.
%h: client hostname
%p: server PID 


实例:
用172.16.1.2主机ssh登陆172.16.1.3主机
/etc/hosts.allow
sshd : ALL : spawn echo `date` form %c to %s > > /var/log/tcp_wrapper.log
172.16.1.2登陆后
[[email  protected] ~]# cat /var/log/tcp_wrapper.log 
tcp_wrapper

文章图片




    推荐阅读