一. 简介

tcp_wrapper:tcp包装器, 工作于库中的.

  • 访问控制 工具/组件 : 传输层 和 接近于应用层;
  • 仅对使用tcp协议且在开发时调用了libwrap相关的服务程序有效.

二. 判断服务是否能够由tcp_wrapper进行访问控制:

  • 动态编译:ldd命 令查看其链接至的库文件即可;

    $ ldd `which sshd` | grep libwrap 
  • 静态编译:strings 命令查看其结果中是否包含

    hosts.allow
    hosts.deny

三. 配置文件

tcp_wrapper通过读取配置文件中的访问控制规则来判断某服务是否可被访问

hosts.allow : 先检查, 匹配放行, 则放行; 没有匹配规则, 则使用 hosts.deny
hosts.deny  : 后检测. 有匹配则拒绝, 没有匹配则, 放行.

注意

  • 默认规则 是放行.
  • 发生修改后立即生效.
  • 白名单:

    hosts.allow 放行 白名单.
    hosts.deny 拒绝所有.

四. 配置文件语法:

daemon_list: client_list [:options]

    daemon_list :
        应用程序的文件名称,而非服务名;
        应用程序的文件列表,使用逗号分隔;
            例如:vsftpd, in.telnetd: 172.16.0.0/255.255.0.0
        ALL: 所有受tcp_wrapper控制的应用程序;

    client_list:
        IP地址 ;
        主机名 ;

        网络地址 :必须使用完整格式掩码,不能使用长度格式的掩码;所以172.16.0.0/16是不合法的;
        简短格式的网络地址 :172.16. 表示172.16.0.0/255.255.0.0

        ALL : 所有客户端地址;

        KNOWN : 所有已知的主机, 即主机名可以被解析的.
        UNKNOWN :主机名不能被解析的
        PARANOID : 正向解析和反向解析不一致的主机.

    特殊的变量 :EXCEPT
        in.telnetd: 172.16. EXCEPT 172.16.100.3

    [:options]
        deny: 用于在hosts.allow文件中实现拒绝访问的规则
        allow:用于在hosts.deny文件中实现允许访问的规则
        spawn: 启动一个额外程序;
            in.telnetd: ALL: spawn /bin/echo `date` login attempt from %c to %s, %d >> /var/log/telnet.log  # man hosts.allow

示例
控制vsftpd仅允许172.16.0.0/255.255.0.0网络中的主机访问,但172.16.100.3除外;对所被被拒绝的访问尝试都记录在/var/log/tcp_wrapper.log日志文件中;

$ cat hosts.allow:
    vsftpd: 172.16. EXCEPT 172.16.100.3

$ cat hosts.deny:
    vsftpd: ALL : spawn /bin/echo       # 并非所有都会记录. 如 172.16.100.3

最新文章

  1. phpcms v9常用方法
  2. Web API - Video File Streaming
  3. Linux 吃掉我的内存
  4. UVA 6199 不定根最小树形图
  5. thinkphp解决表单令牌问题
  6. Flash上传组件之SWFUpload文件上传
  7. IntelliJIdea快捷键
  8. Calling a Web API From a .NET Client (C#)
  9. linux命令——scp
  10. nopcommerce数据库字典
  11. TV TimeShift和PVR的区别
  12. wangEditor编辑器 Vue基本配置项
  13. 谷歌浏览器添加JSON-handle插件
  14. 我的长大app开发教程第二弹:完成ContentFragment底部按钮
  15. js生成指定范围的随机数
  16. Linux - 利用systemctl命令管理服务
  17. nginx的server块如何支持php
  18. Tomcat端口被占用解决办法
  19. leetcode1012
  20. python 面试题2

热门文章

  1. mui开发app之html5+,5+Runtime,5+sdk,native.js
  2. java集合系列—ArrayList
  3. 《快学Scala》——控制结构和函数
  4. Mongodb安装启动详解
  5. ASP.NET Core实现类库项目读取配置文件
  6. MySql学习笔记(一) —— 数据的分组
  7. android 本地数据库sqlite的封装
  8. Vue中过度动画效果应用
  9. [原创]MongoDB综合实例一
  10. Java之JSON数据