tcp_wrappers 說明

這個套件就是 /etc/hosts.allow、hosts.deny,的控制套件,towns 非常常用的功能,因為他簡單方便,不過,他在寫法、支援度,towns 還是有點疑問。towns 會以格式、寫法、支援程式三點來說明

格式

[daemon_list]:[client_list][:shell_command]
應用程式名稱:客端資訊 [:指令]


寫法

/etc/hosts.allow 檔
sshd:     192.168.56.1     <== 僅同意 192.168.56.1 可以使用 ssh 連入本機
sshd:     192.168.56.       <== 同意 192.168.56. 網段可以使用 ssh 連入本機
註:記得要有點
sshd:     192.168.56.0/24 <== 同上
sshd:     192.168.56.0/255.255.255.0 <== 同上
sshd:     192.168.56.     : Allow <== 同上
sshd:     192.168.56.     : Deny <== 拒絕192.168.56. 網段使用 ssh 連入
註:後面的指令,並非絕對要寫的,因為allow 檔就是同意的檔案
sshd:     192.168.56.0/29 <== 僅同意 192.168.56.0-7 這8 個IP,可以連入本機
sshd:     123-123-123-123.adsl.dynamic. <== 同意 123-123-123-123.adsl.dynamic. 網址可以使用 ssh 連入本機
註:上面那個網址,是使用光纖撥接取固定IP 的反解,也就是說使用網址,必需要反解才能用
sshd:     .test.idv.tw  : allow   <== 同意 test.idv.tw 網域可以連入
sshd:     .test.idv.tw EXCEPT www.test.idv.tw  : allow <== 除了www.test.idv.tw 之外,同意 test.idv.tw 網域可以用ssh 連入
註:如果使用網域名稱,必需加上 : allow 才能使用
sshd:     192.168.56., 192.168.57. <== 同意 192.168.56. 及192.168.57. 網段可以使用 ssh 連入本機(未測試)
sshd:     sftp.test.idv.tw : allow <== 僅同意 sftp.test.idv.tw 可以使用 ssh 連入本機
ALL:    192.168.56.   <==  同意 192.168.56. 網段,使用所有TCP服務連入
ALL:    192.168.56.  : Allow <== 同上
ALL:    ALL  <==  完全同意所有連入
ALL EXPECT vsftpd : ALL <== 除了 vsftpd 外,完全同意所有連入

-------------------------------------------------------------------------------------------------

/etc/hosts.deny
sshd:     ALL <== 拒絕所有IP使用 sshd 連入本機
sshd:     ALL    : deny <== 同上
sshd:     ALL    : spawn (echo Security notice from host `/bin/hostname`;echo /usr/sbin/safe_figer @%h ) | /bin/mail -s "%d-%h security" root & : twist ( /bin/echo -e "\n\nEarNING connection not allowed. Yout attempt has been logged.\n\n\n警告您尚未允許登入,您的連線將會被紀錄,並且作為以後的參考\n\n ". )
spawn 可以指定發生設定情形後,執行指定指令
twist 可以執行標準輸出,通知登入者


支援程式

依作者說明,只要是使用 TCP/IP 協定的,都可以管理。只是,是否每一個都可以呢?還是必需支援 TCP_Warppers?那daemon_list 又是指什麼呢?那裡可以看到?那自設的 port 是否也可以管理呢?不少問題呢!查好再補

關於daemon_list,目前只有看到CentOS 官網說明的一段 
<daemon list> -- A comma-separated list of process names (not service name) or th ALL wildcard.

註1:如果是要看 process name,可以用 ps -p [PID] -o comm= 查到
註2:如果是要看 PID ,可以用 netstat -tulnp 看到
註3:使用 ldd /usr/sbin/sshd |grep libwrap 可以看到sshd 有支援 tcp_wrappers 功能


log 資訊存放位置

資料預設會出現在 /var/log/secure 中

參考資料:
鳥哥 限制連接上您 Linux 主機的電腦網域、認識系統服務
man
tcp_wrapper -- README
centos官網文件 -- 42.5 TCP Wrappers and xinetd -- 關於 daemon_list
https://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-tcpwrappers.html

顏國雄先生的文章 -- 這裡有提到一些應用方式
http://mail.lsps.tp.edu.tw/~gsyan/freebsd2001/tcpwrappers.html

OpenFoundry -- Weithenn 大的文章 -- 有提到檢查套件是否支援 tcp_wrappers
http://www.openfoundry.org/tech-column/8395

留言

這個網誌中的熱門文章

zimbra 安裝、管理、設定

Fortigate 100D -- 管理、設定

IT 隨手記6