TCP_Wrappers实现访问控制

来源:互联网 发布:淘宝手机架 编辑:程序博客网 时间:2024/05/23 02:05

作者:Wieste Venema,IBM。
TCP_Wrappers可以对有状态连接的特定服务进行安全检测并实现访问控制,类似起到防火墙的功能,然而并不是所有的应用都是使用TCP_Wrappers的,所以管理是有限制的,
TCP_Wrappers是工作在第四层(传输层)的TCP协议,某进程是否接受libwrap的控制取决于发起此进程的程序在编,译时是否针对libwrap进行编译的,判断服务程序是否能够由tcp_wrapper进行访问控制的方法。

  • 查看是否受TCP_Wrappers控制。
[root@anuuy ~]# ldd $(which sshd) | grep libwrap    libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fa039d12000)[root@anuuy ~]#

一般只要某些进程归xinetd管理,那么这个服务就一定接受tcp_wrappers的管理

  • TCP_Wrappers配置文件
    deny 主要用在/etc/hosts.allow定义“拒绝”规则
    如:vsftpd: 172.16. :deny
    allow 主要用在/etc/hosts.deny定义“允许”规则
    如:vsftpd:172.16. :allow
    这里写图片描述

本图片出自 “从心开始” 博客,http://hao360.blog.51cto.com/5820068/1381431

  • 工作原理
    1. 当有请求从远程到达本机的时候
      首先检查/etc/hosts.allow
      如有匹配的,就默认允许访问,跳过 /etc/hosts.deny这个文件
      没有匹配的,就去匹配/etc/hosts.deny 文件,如果有匹配的,那么就拒绝这个访问
    2. 如果在这两个文件中,都没有匹配到,默认是允许访问的

示例:只允许172.18.1.0/24的主机访问sshd

/etc/hosts.allowsshd: 172.18.0.0/etc/hosts.denysshd :ALL 

此例子表明:sshd服务只允许172.18.0.0网段的主机访问,其他拒绝。

  • 内置ACL
    ALL全部
    LOCAL主机名带点的
    KNOWN名字能解析的
    PARANOID正相反相解析不对应。

  • EXCEPT用法:加上EXCEPT后面写IP,就可以不屏蔽该IP
    示例:

vsftpd: 172.16. EXCEPT 172.16.100.0/24 EXCEPT172.16.100.1
  • 测试工具:-d 测试当前目录下的hosts.allow和hosts.deny
tcpdmatch [-d] daemon[@host] client
  • 扩展选项:
    spawn 启动一个外部程序完成执行的操作
    vsftpd:172.18.0.0/255.255.255.0 :spawn echo “login attempt from %c”to %s” | mail –s warning root
    其意是党172.18.0.0网段的主机来访问时,给root发一封邮件,邮件主题是:hello,邮件内容是:客户端主机(%c)试图访问服务端主机(%s)

  • 说明:
    %需要转义,格式是两个% date “+%%F %%T” 或者$(date ‘+%%F %%T’)
    %c 客户端信息
    %s 服务器端信息
    %d 服务名
    %p 守护进程的PID

注:hosts.allow和hosts.deny的更改都是立刻见效,无须重启xinetd服务

原创粉丝点击