天天看點

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:daemon@server 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)      檢視日志;

本文轉自 claude_liu 51CTO部落格,原文連結:http://blog.51cto.com/claude666/2056657,如需轉載請自行聯系原作者

繼續閱讀