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,如需转载请自行联系原作者

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
4月前
|
运维 网络协议 Linux
[linux]常见内核TCP参数描述与配置
[linux]常见内核TCP参数描述与配置
|
7月前
|
网络协议 Ubuntu Unix
Linux 下使用 socket 实现 TCP 客户端
Linux 下使用 socket 实现 TCP 客户端
191 1
|
7月前
|
网络协议 Linux
Linux C TCP服务器端-select案例
本文主要介绍了linux下Select的TCP通信流程,实现了客户端和服务器的通信,主要实现了消息的回发,即服务器将消息原封不动的回发给客户端。
86 0
|
7月前
|
网络协议 Linux
【Linux C TCP服务器端-poll案例】
本文主要介绍了linux下Select的TCP通信流程,实现了客户端和服务器的通信,主要实现了消息的回发,即服务器将消息原封不动的回发给客户端。
52 0
|
缓存 网络协议 Unix
最详细的Linux TCP/IP 协议栈源码分析
最详细的Linux TCP/IP 协议栈源码分析
|
存储 网络协议 Linux
9. Linux下实现简单的UDP请求
9. Linux下实现简单的UDP请求
71 0
|
网络协议 Linux 数据安全/隐私保护
|
网络协议 Linux 数据安全/隐私保护