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
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) 查看日誌;
Linux自學筆記——tcp wrapper