標籤:tcp_wrapper hosts.allow hosts.deny spawn
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