Linux中TCP wrapper的使用

简介:

tcpwrapper的目的是对那些访问控制功能较弱的服务提供访问控制功能要想了解访问控制就必须先知道服务监听的概念:
服务监听的两种方式:
listen : socket 监听在套接字上提供服务
循环 不停歇的查看某个端口来提供服务

有两种方式来判断一个服务是否支持tcp wrapper:
1.通过查找库文件看是否有libwrap
ldd which command
2.查看是否连接到/etc/hosts.allow|deny
strings which command # 查看静态链接库
如果有/etc/hosts.allow
/etc/hosts.deny 就说明这个命令静态链接了tcpwrraper

tcpwrraper自身工作在内核,却可以通过这两个文件来提供访问控制

               请求
       ↓              
    服务   --->/etc/hosts.allow     --->     如有有就放行
                                 ↓         没有
                       /etc/hosts.deny     ---->    如果没有就放行     
                                 ↓                    
                                                    如果有明确的匹配条目拒绝

/etc/hosts.allow|deny文件格式:damon_list: client_list [:option]
匹配服务列表:damon_list
vsftpd: 192.168.0. 
vsftpd,sshd,in.telnetd:
ALL br/>daemon@host
vsftpd@192.168.0.186 
#可以简写192.168.0 代表192.168.0.0网段
#可以一次指定多个服务
#可以使用通配符ALL来指定所有的服务
#@只对某个主机来控制

匹配客户端列表clent_list
IP
network address
network/mask: mask不能使用长度格式 ,只能是有完全ip的格式
172.16.0.0--->172.16. 也可以简写网段
HOSTNAME
fqdn
.a.rog 表示a.org域内的所有主机

option 选项
spawn #可以通过spawn来实现日志定义
spawn echo "" 
#下面定义一个条件,只要用户通过telnet登录就记录到一个日志
vim /etc/hosts.deny
in.telnetd:ALL EXCEPT 172.16.0.1: spawnecho "Login attemp(date) %u from %a attemp to login %A, the deamon is%d." >> /var/log/telnet.log
##注意不能在echo后面用: 分号在这里有特殊意义。
##可以通过man 5 hosts_access 来查看上述%的含义

常用的宏定义 MACRO
ALL #代表所有主机,或者所有服务
LOCAL #表示本地主机,非FQDN主机
KNOWN #表示可以被解析的主机
UNKNOWN #反向可以被解析的主机
PARANOID #正反向解析不匹配的主机
EXCEPT #排除某个主机或某个网络

-
怎么来控制vsftpd的访问
[cpp] view plain copy

  1. which vsftpd # 确定文件路径
  2. vim /etc/hosts.deny # 改文件立即生效 
    vsftpd: 172.16.100.100

#假设仅允许172.16网段访问 
vim /etc/hosts.allow 
vsftpd: 171.16 # 只允许172.16.0.0/16网段 
vim /etc/hosts.deny 
ALL: ALL # 拒绝其他的用户登陆 
这样就只有172.16.0.0网段可以访问了

控制SSH ,只允许192.168.0.32网段登陆,并且不允许192.168.0.32登陆
[cpp] view plain copy
vim /etc/hosts.deny 
ALL:ALL 
vim /etc/hosts.allow 
sshd: 192.168.0 EXCEPT 192.168.0.32 
效果:

将/etc/hosts.deny 里面的ALL: ALL去掉就可以恢复登陆













本文转自chenzudao51CTO博客,原文链接: http://blog.51cto.com/victor2016/2049865,如需转载请自行联系原作者

相关实践学习
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
7天前
|
网络协议 Java Linux
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
12 0
|
7天前
|
网络协议 算法 Linux
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
15 0
|
29天前
|
网络协议 Ubuntu Unix
Linux 下使用 socket 实现 TCP 客户端
Linux 下使用 socket 实现 TCP 客户端
|
29天前
|
网络协议 Ubuntu Unix
Linux 下使用 socket 实现 TCP 服务端
Linux 下使用 socket 实现 TCP 服务端
|
1月前
|
网络协议 Linux
Linux内核源码剖析之TCP保活机制(KeepAlive)
总之,TCP保活机制通过定期发送保活探测报文,以检测空闲连接是否仍然活跃。这种机制在网络通信中有助于及时检测和关闭不再使用的连接,从而节省资源并提高连接的可靠性。
23 0
|
3月前
|
网络协议 关系型数据库 MySQL
Linux下的网络编程——C/S模型TCP(二)
Linux下的网络编程——C/S模型TCP(二)
35 0
Linux下的网络编程——C/S模型TCP(二)
|
4月前
|
网络协议 Linux
【Linux C TCP服务器端-epoll案例】
本文主要介绍了linux下Select的TCP通信流程,实现了客户端和服务器的通信,主要实现了消息的回发,即服务器将消息原封不动的回发给客户端。
33 0
|
4月前
|
网络协议 Linux
【Linux C TCP服务器端-poll案例】
本文主要介绍了linux下Select的TCP通信流程,实现了客户端和服务器的通信,主要实现了消息的回发,即服务器将消息原封不动的回发给客户端。
25 0
|
4月前
|
网络协议 Linux
Linux C TCP服务器端-select案例
本文主要介绍了linux下Select的TCP通信流程,实现了客户端和服务器的通信,主要实现了消息的回发,即服务器将消息原封不动的回发给客户端。
38 0
|
4月前
|
网络协议 Linux API
Linux C TCP编程(socket,select/poll/epoll)
本文主要介绍了linux下标准的TCP通信流程,实现了客户端和服务器的通信,主要实现了消息的回发,即服务器将消息原封不动的回发给客户端。如果对接口不熟悉可以参考socket api介绍或者参考其他博客。
27 0