tcp_wrapper知识整理

简介:

tcp_wrapper知识整理


一、tcp wrapper简介

 tcp wrapper是一种访问控制工具,类似于iptables可以作访问控制。

 tcp wrapper只能对基于tcp协议的服务作访问控制,但并不是所有基于tcp协议的服务都能实现用tcp wraper作访问控制。

 tcp wrapper实现访问控制主要依靠两个文件,一个是/etc.hosts.allow文件,另一个是/etc/hosts.deny文件.从文件的名字上可以理解:一个是定义允许的,一个是定义拒绝的。那这两个文件生效的次序是怎样的呢?

wKioL1nNruPAdm2UAAMWHrdFXz4564.jpg

通过图示应该很容易理解,首先检查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地址或主机名,如果使用主机名,则必须保证本机可以解析;

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:  user@host,  user@address,  a  host name, or just an address, depending on how much information is available.

%s: Server  information:  daemon@host, daemon@address, 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登陆后

[root@zj03 ~]# cat /var/log/tcp_wrapper.log 

wKioL1nNrwagWvXYAAATh9ikA94746.png




本文转自 Runs_ 51CTO博客,原文链接:http://blog.51cto.com/12667170/1969639,如需转载请自行联系原作者
相关文章
|
8月前
|
网络协议 Linux
【网络编程】基于TCP完成ECHO服务(更新)
【网络编程】基于TCP完成ECHO服务
|
2月前
|
网络协议 网络性能优化 Python
python怎么实现tcp和udp连接
python怎么实现tcp和udp连接
20 0
|
7月前
|
存储 网络协议 Java
UDP,TCP特点对比,DatagramPacket,SocketAddress的使用 ,UDP的API,如何编写一个简单的回显服务器及客户端,详细解释(本文内容较难,建议多次阅读,自己敲一敲)
UDP,TCP特点对比,DatagramPacket,SocketAddress的使用 ,UDP的API,如何编写一个简单的回显服务器及客户端,详细解释(本文内容较难,建议多次阅读,自己敲一敲)
|
5月前
|
网络协议 算法 Java
今天讲讲TCP(详解)
今天讲讲TCP(详解)
41 0
|
9月前
|
网络协议 前端开发 算法
前端面试之TCP与UDP区别
前端面试之TCP与UDP区别
71 0
|
网络协议 Linux
零、【TCP/IP源码解析】开篇
零、【TCP/IP源码解析】开篇
226 0
|
缓存 网络协议 安全
网络编程原理进阶___TCP/IP(javaee)(2)
网络编程原理进阶___TCP/IP(javaee)(2)
92 0
网络编程原理进阶___TCP/IP(javaee)(2)
|
存储 网络协议 算法
网络编程原理进阶___TCP/IP(javaee)(3)
网络编程原理进阶___TCP/IP(javaee)(3)
76 0
网络编程原理进阶___TCP/IP(javaee)(3)
|
网络协议
简述TCP 和 UDP 的区别
TCP 和 UDP 的区别
281 0
|
存储 缓存 网络协议
TCP常见知识点整理
TCP常见知识点整理
148 0
TCP常见知识点整理