tcpwrapper防火牆

tcpwrappers(防火牆) --過濾TCP包頭(/usr/sbin/tcpd)

控制文件:
規則

匹配順序: tcp-->tcpwrappers-->hosts.allow--> hosts.deny,默認情況下這兩個文件是空的,規則馬上寫馬上生效.
1、如果在hosts.allow能夠匹配到相應的規則,則允許,匹配到此結束。
2、如果在hosts.allow匹配不到相應規則,接下來匹配hosts.deny文件,如果匹配到則拒絕,匹配到此結束。
3、如果在hosts.allow和hosts.deny中都無法匹配到相應規則,則允許。


防火牆的規則設計思路:先在host.deny先拒絕所有,然後再hosts.allow逐個放開。


tcpwrappers過濾的依據:服務名字,其實就是服務對應二進制文件的文件名


vsftpd/httpd/postfix/samba/nfs/sshd/squid/xinetd


vsftpd: /usr/sbin/vsftpd
sshd: /usr/sbin/sshd
portmap: /sbin/portmap  --> rpcbind
xinetd: /usr/sbin/xinetd


查看vsftpd是否支持tcpwrappers
client-->vsftpd-(libwrap.so)->tcpwrappers








查看某個服務支持tcpwrappers過濾:
# rpm -ql tcp_wrappers |grep '\<libwrap.so\>'
/usr/lib/libwrap.so


查詢xinetd服務是否支持tcpwrappers的過濾:
1.
# ldd `which xinetd `|grep wra
        libwrap.so.0 => /lib/libwrap.so.0 (0x00110000)
# ldd `which vsftpd` |grep wra
        libwrap.so.0 => /lib/libwrap.so.0 (0x003e1000)
2.strings
# strings /sbin/portmap |grep 'hosts.*'
/etc/hosts.allow
/etc/hosts.deny
------------------
實例1:
# service vsftpd start
爲 vsftpd 啓動 vsftpd:                                    [確定]
# chkconfig krb5-telnet on
# service xinetd restart
停止 xinetd:                                              [確定]
啓動 xinetd:                                              [確定]
# netstat -tnlp |grep :21
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      2578/vsftpd         
# netstat -tnlp |grep :23
tcp        0      0 0.0.0.0:23                  0.0.0.0:*                   LISTEN      2635/xinetd         
------------
設置規則:
1.telnet只有192.168.0.254能訪問
2.vsftpd192.168.0.0/24都能訪問,除192.168.0.254
3.sshd 192.168.0.254,只要有登錄則發郵件告知管理員
4.本機能夠訪問這三個服務.




# vim /etc/hosts.deny 
vsftpd: ALL
telnetd: ALL
sshd:   ALL




# vim /etc/hosts.allow 
in.telnetd:        192.168.0.254
sshd:           192.168.0.254: spawn echo "login attempt from %c to %s" | mail -s "information about sshd login attempt" [email protected]
vsftpd:         192.168.0.0/255.255.255.0 EXCEPT 192.168.0.254
ALL:            LOCAL .baidu.com


spwan 執行命令
%c 客戶端地址
%s 服務器的地址
LOCAL 本地主機


hosts.allow和hosts.deny格式:
服務名字1, 服務名字2, ...: 客戶機地址 [:動作]


1、如何找出名字
2、客戶機地址:
ALL
network/mask 192.168.0.0/255.255.255.0 或 192.168.0.
127.
?
.uplooking.com *.uplooking.com
EXCEPT
3、動作:
ALLOW
DENY












*************************************************
[root@mail ]# vim /etc/hosts.deny 


vsftpd: ALL
in.telnetd: ALL
sshd:   ALL




[root@mail ]# vim /etc/hosts.allow 




in.telnetd: 192.168.0.254
vsftpd: 192.168.0.0/255.255.255.0 EXCEPT 192.168.0.254
sshd:   192.168.0.254: spawn echo "login attempt from %c to %s" | mail -s "information about sshd login attempt" [email protected]
ALL:    LOCAL, .baidu.com

發佈了23 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章