標籤:linux、tcp_wrapper
一、tcp_wrapper簡介
1、什麼是tcp_wrapper
tcp wrapper是Wietse Venema開發的一個開源軟體。它是一個用來分析TCP/IP封包的軟體,類似的IP封包軟體還有iptables。Linux預設安裝了tcp_wrapper。作為一個安全的系統,Linux本身有兩層安全防火牆,通過IP過濾機制的iptables實現第一層防護。iptables防火牆通過直觀的監視系統的健全狀態,阻擋網路中的一些惡意攻擊,保護整個系統正常運行免遭攻擊和破壞。如果通過了第一層防護,那麼下一層防護就是tcp_wrapper了。通過tcp_wrapper可以實現對系統中提供的某些服務的開放和關閉、允許及禁止,從而更有效保證系統安全運行。使用tcp_wrapper的功能僅需要兩個設定檔:/etc/hosts.allow 和/etc/hosts.deny 。
2、tcp_wrapper系統工作概述
650) this.width=650;" title="1.png" alt="wKiom1XEyraxoKJDAAFU21lzbZk089.jpg" src="http://s3.51cto.com/wyfs02/M02/71/17/wKiom1XEyraxoKJDAAFU21lzbZk089.jpg" />
注意 : Netfilter(iptable) 是工作在網路層的 而 tcp wrapper 是工作在應用程式層
3、/etc/hosts.allow 和/etc/hosts.deny工作
650) this.width=650;" title="2.png" alt="wKioL1XEzNyh8Ux6AACGlxzi8Ws816.jpg" src="http://s3.51cto.com/wyfs02/M00/71/13/wKioL1XEzNyh8Ux6AACGlxzi8Ws816.jpg" />
二、tcp_wrapper規則使用
1、規則文法說明
hosts.allow 和 hosts.deny 檔案中文法格式如下:
daemon : client [:option1:option2:...]
daemon 可以是各種服務程式,比如 sshd,服務程式在編譯的時候將libwrap.so.0動態庫進來就可以使用tcp_wrapper。
client 是來源使用者列表以逗號分隔,可以是主機名稱,或者ip地址等。
options 附加選項是在規則匹配後,可以選擇發郵件給管理員或者記錄日誌等,每個動作之間使用冒號分隔。
可以使用ldd命令查看程式是否支援libwrap,例如:
[[email protected] ~]# ldd `which sshd` |grep wraplibwrap.so.0 => /lib64/libwrap.so.0 (0x00007f1dab1bf000)
2、文法格式舉例
daemon_list有以下幾種格式:
vsftpd:192.168.0. vsftpd,sshd,telnetd: 192.168.0. All: 192.168.0. [email protected] #只在某個特定的地址上進行控制比如:[email protected],在有多塊網卡的情況下使用
client_list有以下幾種格式:
IP network address/mask #網路地址(只能使用類似1.0.0.0/255.0.0.0完全ip地址格式,不能使用位長度表示) hostname #主機名稱 .abc.org #表示.abc.org域內的所有主機
常用的宏定義:
ALL #代表所有主機,或者所有服務
LOCAL #表示本地主機,非FQDN主機
KNOWN #主機名稱能正常解析的
UNKNOWN #主機名稱不能正常解析
PARANOID #主機名稱正反項解析不匹配的
EXCEPT #排除某個主機或某個網路
使用舉例:
echo “sshd :ALL EXCEPT 192.168.1.2”>> /etc/hosts.allow
表示除去192.168.1.2 這台機器,任何機器執行sshd服務到這台機器均能正常串連。
注意:在使用/etc/hosts.allow 和/etc/hosts.deny兩個檔案配合使用時,為安全起見一般會把/etc/hosts.deny定義為所有機器及服務。
3、定義所有的拒絕訪問均寫入日誌中
使用前提前講下在配置該服務時需要的命令spawn:
%c:[email protected]
%s:[email protected]
%h:用戶端主機名稱
%p:伺服器上的進程PID
[[email protected] ~]# vim /etc/hosts.allow sshd : 192.168.1.0/8 EXPECT 192.168.1.20[[email protected] ~]# vim /etc/hosts.denysshd : ALL: spawn echo `date` form %c to %s >> /var/log/tcp_wrapper.log[[email protected] ~]# ssh 192.168.1.8 //192.168.1.20這台機器無法通過ssh登入192.168.1.8ssh_exchange_identification: Connection closed by remote host[[email protected] ~]# cat /var/log/tcp_wrapper.log Fri Aug 7 23:01:41 CST 2015 form 192.168.1.20 to [email protected]Fri Aug 7 23:01:54 CST 2015 form 192.168.1.20 to [email protected]
本文出自 “粗茶淡飯” 部落格,請務必保留此出處http://cuchadanfan.blog.51cto.com/9940284/1682813
tcp_wrapper應用簡介