当前位置: > Linux命令 >

tcp_wrappers使用

时间:2014-08-28 19:44来源:linux.it.net.cn 作者:it

符合使用tcp_wrappers条件:

1.所有以xinetd管理的服务都可以通过tcp_wrappers进行访问控制。
2.如果服务程序调用了libwrap.so这个动态链接库文件说明这个服务支持tcp_wrappers。
可以通过以下方式查看:
 
[root@server1 ~]# ldd `which vsftpd` | grep libwrap
        libwrap.so.0 => /lib/libwrap.so.0 (0x00c20000)
 
以上看到加载libwrap.so.0,说明vsftpd支持tcp_wrappers。
 
主要文件:
/etc/hosts.allow 用来定义允许访问的
/etc/hosts.deny 用来定义拒绝访问的
 
访问控制判断顺序:
首先查看/etc/hosts.allow,如果匹配到一个条目,不在往下读取,如果在/etc/hosts.allow没有匹配条目,则读取/etc/hosts.deny,如果匹配,则拒绝,如果不匹配,则默认允许所有。
 
tcp_wrappers语法:
 
service:IP,domain,hostname:action
 
service: 服务即程序名称,如果有多个服务,那么就用逗号隔开
IP,domain,hostname:ip地址,域名,主机名
 
ip写法:192.168.0.1
        192.168.0.0/24 
这里不支持/24表示方法
域名: .example.com
主机名:station5
 
例:禁止192.168.0.5访问ssh
[root@server1 ~]# vim /etc/hosts.deny
sshd:192.168.0.5:deny
测试:
[root@station5 ~]# ssh 192.168.0.254
ssh_exchange_identification: Connection closed by remote host
 
注意点:
写在/etc/hosts.allow中最后的action,即allow 可以不写,同理/etc/hosts.deny中最后的action,即deny可以不写。通常只要配置hosts.allow就可以了,因为可以将allow与deny都写在同一个档案中。如果想做的更规范一些,把允许的写到/etc/hosts.allow中,把拒绝的写到/etc/hosts.deny中。配置完成后,不用重启任何服务,配置会立即生效。
 
其他特殊参数:
ALL:代表全部的服务或所有IP,例ALL:ALL:deny
LOCAL: 代表来自本机,例: ALL:LOCAL:allow
UNKNOWN:代表不知道的IP或 domain或者服务
KNOWN:代表可解析的IP,domain信息
EXCEPT: 例外,例:ALL:ALL EXCEPT 192.168.0.5
spawn:调用shell,具有变量功能
twist:调用shell后,拒绝本次连接
 
实例1:只允许192.168.0.5访问ssh,其他的拒绝
[root@server1 ~]# vim /etc/hosts.allow
sshd:192.168.0.5:allow
sshd:ALL:deny
 
或分别把允许与拒绝写到各自文件
[root@server1 ~]# vim /etc/hosts.allow
sshd:192.168.0.5
[root@server1 ~]# vim /etc/hosts.deny
sshd:ALL:deny
 
或使用EXCEPT参数
[root@server1 ~]# vim /etc/hosts.deny
sshd:ALL EXCEPT 192.168.0.5:deny
 
实例2:当访问ssh服务时,给root管理员发一封邮件,拒绝其访问
[root@server1 ~]# cat /etc/hosts.deny
sshd:192.168.0.5:spawn echo "login attempt from %c to %s" | mail -s warning root
 
选项:%c客户端 %s服务端
 
测试:
[root@station5 ~]# ssh 192.168.0.254
ssh_exchange_identification: Connection closed by remote host
 
[root@server1 ~]# mail
Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 root@server1.example  Sat Apr  7 22:35  16/689   "warning"
&
Message 1:
From root@server1.example.com  Sat Apr  7 22:35:06 2012
Date: Sat, 7 Apr 2012 22:35:05 +0800
From: root <root@server1.example.com>
To: root@server1.example.com
Subject: warning
 
login attempt from ::ffff:192.168.0.5 to sshd@::ffff:192.168.0.254
 
排错:
如果遇到配置后,语法有问题,可以查看/var/log/secure
Apr  7 22:33:46 server1 sshd[22824]: error: /etc/hosts.deny, line 1: bad option name: 
 
"spawn(echo"
 
(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容