Chinaunix首页 | 论坛 | 博客
  • 博客访问: 221255
  • 博文数量: 71
  • 博客积分: 1649
  • 博客等级: 上尉
  • 技术积分: 725
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-25 11:20
文章分类

全部博文(71)

文章存档

2012年(1)

2011年(11)

2010年(59)

我的朋友

分类: LINUX

2010-12-14 17:56:12

tcp_wrapper的原理 
Telnet、SSH、FTP、POP3和SMTP等很多网络服务都会用到TCP Wrapper,它被设计为一个介于外来服务请求和系统服务回应的中间处理软件。
基本处理过程
当系统接收到一个外来服务请求的时候 ,先由TCP Wrapper处理这个请求
TCP Wrapper根据这个请求所请求的服务和针对这个服务所定制的存取控制规则来判断对方是否有使用这个服务的权限,如果有,TCP Wrapper 将该请求按照配置文件定义的规则转交给相应的守护进程去处理同时记录这个请求动作,然后自己就等待下一个请求的处理。
tcp_wrapper是基于主机与服务的
使用简单的配置文件来设置访问限制
/etc/hosts.allow
/etc/hosts.deny
要想利用tcp_wrappers的集中验证功能,要服务的模块支持tcp_wrapper,查看一个服务是否支持tcp_wrapper可以用一下命令 ,看某个服务的执行文件是否调用tcp——wrapper用命令:
ldd `which sshd` | grep wrap(which sshd是找到服务的可执行文件路径 )
如果下面这个命令有结果,也表明支持tcp_wrapper
strings `which sshd` | grep host
注:
基于xinetd的服务都支持tcp_wrapper
tcp_wrapper的配置 
访问控制判断顺序:
访问是否被明确许可
否则,访问是否被明确禁止
如果都没有,默认许可
通常tcp_wrapper没有配置,就是第三条,如果都没有,默认许可的
: 由于allow比deny优先级高,可以在allow中定义允许访问的IP,而在deny拒绝所有,这样就只有明确 允许的用户才能访问。
配置文件
许可用:/etc/hosts.allow
禁止用:/etc/hosts.deny
基本语法
后台进程列表:客户端列表      [:参数(allow,deny)]
/etc/hosts.allow
sshd:192.168.1.
/etc/hosts.deny
sshd:ALL
格式是
后台进程:  client描述 
这里的后台进程需要解释下
后台进程列表应该是:
服务的可执行工具名( in.telnetd  NO telnetd)
允许指定多项服务
允许使用ALL来匹配所有服务
允许可执行工具名后添加IP或主机名,如果本机有多个网络界面
客户端描述可以包含:
IP 地址(192.168.1.254 ) 
域名或主机名(.example.com, ) 
子网掩码(192.168.1.0/255.255.255.0 或192.1681. ) 
网络名(@irusadmin.cn )
client描述的高级语法 
客户端描述通配符
ALL:所有
LOCAL:所有主机名中不包含.的主机
UNKNOWN:无法被解析的主机
KNOWN:可以双向解析的主机
PARANOID:正向解析成功但无法反向解析的主机
EXCEPT
可用于服务列表与客户端列表, 可以层层套用
/etc/hosts.deny 
ALL:ALL EXCEPT 192.168.0.0/255.255.255.0 EXCEPT server1.example.com
  注:hosts.allow和hosts.deny的更改都是立刻见效,无须重启xinetd服务



阅读(5040) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~