1. 程式人生 > >Linux自學筆記——tcp wrapper

Linux自學筆記——tcp wrapper

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: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