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                    

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的访问

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登陆

vim /etc/hosts.deny
ALL:ALL
vim /etc/hosts.allow
sshd: 192.168.0 EXCEPT 192.168.0.32

效果:


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










  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值