tcp_wrapper

    tcpwrapper的作用是对基于tcp的程序进行安全控制。

    tcpwrapper是通过库文件libwrap.so来实现控制的;

    tcpwrapper只能为tcp的连接进行验证, 并不是所有的tcp连接都接受其控制的;

    判断一个服务或应用程序是否受tcp_wrapper的访问控制:

        1.对于动态链接至libwrap.so库的应用程序:

            # ldd `which COMMAND` | grep libwrap.so

        2.对于静态编译的库文件应用至程序中, 能够接受tcp_wrapper的访问控制:            

            利用strings命令查看某个应用程序, 如果结果中有hosts.allow和hosts.deny这两个文件说明是接受其控制的; 

                 # strings `which COMMAND` grep hosts

    常见的基于tcp_wrapper进行访问控制的服务: sshd, vsftpd

    tcp_wrappers的配置文件:

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

    匹配顺序:

        /etc/hosts.allow --> /etc/hosts.deny --> 默认规则(允许所有) 

    获取配置文件帮助的方法:

        ~]# man hosts.allow
        ~]# man hosts.deny
        ~]# man hosts_options (推荐)

    配置文件的格式:

        daemon_list : client_list [[[: option] : option] ...]

        daemon_list:

            注意: 必须是应用程序的名称; 即存放于/usr/sbin目录中的文件名;

            1.单个应用程序文件名称; 如: vsftpd

            2.程序文件的名称列表, 以逗号分隔; 如: sshd, vsftpd

            3.ALL: 不加区分的表示所有受tcp_wrapper控制的应用程序;

        client_list:

            1.单个IP地址或主机名, 如果使用主机名, 则必须保证本机可以解析;

            2.网络地址: 以前缀长度表示的掩码无效(172.16.0.0/16)

                a) 如果有掩码, 则必须使用完整格式的掩码; 如: 172.16.0.0/255.255.0.0

                b) 可以使用简短格式; 如: 172.16.

            3.内置的访问控制列表:

                ALL: 所有的主机;

                KNOWN: 所有能把当前主机正确解析的主机名;

                UNKNOWN: 所有不能被当前主机正确解析的主机名;

                PARANOID: 正向解析和方向解析结果不一致所有主机;

        : option

            deny: 拒绝, 主要用于hosts.allow文件, 定义拒绝访问规则;

            allow: 允许, 主要用于hosts.deny文件, 定义允许访问规则;

            apawm: 生成, 发起, 执行;

        问题:

            拒绝172.16.69.1主机访问172.16.72.1的ftp服务;

            使用EXCEPT关键字, 配置例外的client;

            示例:

                在172.16.0.0/16网段中除了172.16.69.1之外的其余主机都可以访问FTP;

                    /etc/hosts.deny:

vsftpd : ALL EXCEPT 172.16. EXCEPT 172.16.69.1

            spawn使用示例:

sshd, vsftpd : ALL : spawn /bin/echo $(/bin/data) %cattempt login %s >> /var/log/tcpwrapper.log

                %s: 客户信息

                %c: 服务器信息