美文网首页
TCP_Wrappers

TCP_Wrappers

作者: Simon_Ye | 来源:发表于2020-03-12 20:32 被阅读0次

    介绍

    • 作者:Wieste Venema
    • 工作在第四层(传输层)的TCP协议
    • 对有状态连接的特定服务进行安全检测并实现访问控制
    • 以库文件形式实现
    • 某进程是否接收libwrap的控制取决于发起此进程的程序在编译时是否针对libwrap进行编译的
    • 判断服务程序是否能够由tcp_wrapper进行访问控制的方法:
      ldd /PATH/TO/PROGRAM | grep libwrap.so
      strings PATH/TO/PROGRAM | grep libwrap.so

    TCP_Wrappers的使用

    • 配置文件:
      /etc/hosts.allow/etc/hosts.deny
    • 帮助参考:
      man 5 hosts_accessman 5 hosts_options
    • 检查顺序:
      hosts.allowhosts.deny(默认允许)
      注意:一旦前面规则匹配,直接生效,将不再继续
    • 基本语法:
      daemon_list@host:client_list [:options:option...]

    Daemon_list@host格式

    • 单个应用程序的二进制文件名,而非服务名,例如 vsftpd
    • 以逗号或空格分隔的应用程序文件名列表,如:sshd,vsftpd
    • ALL表示所有接收tcp_wrapper控制的服务程序
    • 主机有多个IP,可用@hostIP来实现控制
      如:in.telnetd@192.168.0.254

    客户端 Client_list 格式

    • 以逗号或空格分隔的客户端列表
    • 基于IP地址:192.168.10.1,192.168.1.
    • 基于主机名:www.magedu.com .magedu.com 较少用
    • 基于网络/掩码:192.168.0.0/255.255.255.0
    • 基于net/prefixlen:192.168.1.0/24(CentOS 7)
    • 基于网络组(NIS域):@mynetwork
    • 内置ACL:ALL,LOCAL(匹配本地名字里面不带点的主机),KNOWN(主机名解析成地址),UNKNOWN(不能把主机名解析成地址),PARANOID

    EXCEPT用法:

    • 示例:
      vsftpd:172.16. EXCEPT 172.16.100.0/24 EXCEPT 172.16.100.1
      

    [:options]选项:

    • 帮助:man 5 hosts_options
      • deny:主要用在/etc/hosts.allow定义“拒绝”规则
         如:vsftpd;172.16. :deny
      • allow:主要用在/etc/hosts.deny定义“允许”规则
         如:vsftpd;172.16. :allow
      • spawn:启动一个外部程序完成执行的操作
      • twist:实际动作是拒绝访问,使用指定的操作替换当前服务,标准 I/O 和 ERROR 发送到客户端,默认至 /dev/null

    测试工具:

    tcpdmatch [-d] daemon[@host] client
    -d:测试当前目录下的 hosts.allow 和 hosts.deny

    示例:

    1. 只允许192.168.1.0/24的主机访问sshd
      /etc/hosts.allow
      sshd:192.168.1.
      /etc/hosts.deny
      sshd:ALL
    2. 只允许192.168.1.0/24的主机访问 telnet 和 vsftpd 服务
      /etc/hosts.allow
      vsftpd,in.telnetd:192.168.1.
      /etc/hosts.deny
      vsftpd,in.telnetd:ALL
    3. 触发启动一个外部程序完成执行操作
      sshd:ALL :spawn echo "$(date +%%F) login attempt from %c to %s,%d" >> /var/log/sshd.log
    4. 使用指定操作替换当前服务
      vsftpd:172.16. :twist /bin/echo "connection prohibited"

    说明:

    • /etc/hosts.allow中添加,允许登录,并记录日志
    • /etc/hosts.deny中添加,拒绝登录,并记录日志
    • %c:客户端信息
    • %s:服务器端信息
    • %d:服务名
    • %p:守护进程的PID
    • %%:表示%

    相关文章

      网友评论

          本文标题:TCP_Wrappers

          本文链接:https://www.haomeiwen.com/subject/mgrijhtx.html