Linux自学笔记——tcp wrapper

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux自学笔记——tcp wrapper相关的知识,希望对你有一定的参考价值。


 

 

tcp_wrapper:tcp包装器,是一个由wieste venema开发,旨在为unix/linux服务器提供防火墙服务的免费软件,它能够让系统管理员记录和控制wrappers支持基于tcp的服务或守护进程的访问。

tcp_wrappers是用来辅助而非替代netfilter的,因为tcp_wrappers工作在应用层,而netfilter工作在网络层;

库文件:libwrap.so

/etc/hosts.allow  , /etc/hosts.deny

判断某服务是否能够由tcp_wrapper进行访问控制的方法:

1)      动态编译:ldd命令;

ldd $(which COMMAND) | libwrap

2)      静态编译:strings命令查看应用程序文件,其结果中是否出现了hosts.allow和hosts.deny文件;

        技术分享图片

服务基于libwrap完成访问控制的流程:

       首先检查/etc/hosts.allow文件中有没有显式授权当前请求者访问;

              是:直接授权客户端访问;

              否:接着去检查/etc/hosts.deny文件中有没有显式拒绝当前请求者访问;

                     是:直接拒绝当前请求者的访问;

                     否:允许请求者访问;

       配置文件语法:

              daemon_list:client_list  [:options]

              daemon_list

1)      单个应用程序的文件名称,而非服务名;

2)      以逗号分隔的应用程序文件名列表;

例如:sshd,vsftpd

3)      ALL:所有接受tcp_wrapper控制的程序;

Client_list

    Ip地址;

    主机名;

    网络地址:必须使用完成格式的掩码,不能使用前缀格式掩码;

    简短格式网络地址:例如172.16.  表示172.16.0.0/255.255.0.0

    ALL:所有主机;

    KNOWN:能被解析的主机名

    UNKNOWN:无法解析的主机名

    PARANOID:主机名和ip地址的各自的正反解析结果不匹配

EXCEPT:除了

:options

    deny:拒绝,主要用于hosts.allow文件

    allow:允许,主要用于hosts.deny文件;

    spawn:启动指定的应用程序;

           vsftpd:ALL:spawn  /bin/echo  $(date)  login attempt  from  %c  to  %s,%d  >>  /var/log/vsftpd.deny.log

                  %c:client  ip

                  %s[email protected] ip

                  %d:daemon  name

示例:vsftpd 仅开放给192.168.19.0/255.255.255.0中的主机访问;

       sshd仅开放给192.168.19.0/255.255.255.0中的主机访问,但是不包括192.168.19.130

对所有被拒绝的访问尝试都记录在/var/log/service.deny.log文件中;

1)      /etc/hosts.allow文件中内容:

技术分享图片

2)      tc/hosts.deny文件中内容:

技术分享图片

3)      测试;

首先用IP地址为192.168.19.134的主机测试;

技术分享图片

再用192.168.19.130的主机测试;

技术分享图片

4)      查看日志;

技术分享图片


以上是关于Linux自学笔记——tcp wrapper的主要内容,如果未能解决你的问题,请参考以下文章

Linux自学笔记——openssh

Linux自学笔记——haproxy

Linux自学笔记——OpenSSL命令行工具

Linux自学笔记——套接字与http协议基础  

计算机网络自学笔记:TCP

Linux自学笔记:Linux发行版