網路封包進入後第一關會先經過 Fire Wall(iptables) 的處理來決定這封包的去留, 接下來如果你的服務( service )有引用 libwrap.a library 則會受到 TcpWrapper ( /etc/host.allow , /etc/host.deny) 的控管.TCP Wrapper 可對 daemon 以及封包做存取控制機制的限制.大概的概念是 tcpd 會依據/etc/hosts.allow ,/etc/hosts.deny 來對存取作限制 note: TCP Wrapper 適用對象為 1. 由 Xinetd 所啟動的daemon. 2. 使用到 libwrap.a 模組 如 portmap,sshd,sendmail.
Step1.安裝 TCP Wrapper
通常系統預設安裝時就已安裝到系統上了 不過我們還是可以先確定一下,其 rpm 在 RedHat 光碟片中的目錄 Server可以找到所需的程式
[root@benjr ~]# rpm -aq | grep -i tcp_wrappers
Step2. TCP Wrapper 的設定檔
主要的設定檔就這兩個. /etc/hosts.deny 和 /etc/hosts.allow
設定檔格式為:
程式名稱 : 指定客機1 指定客機2 ….
I. 程式名稱部分為 sshd , ipop3 ,in.ftpd (加上 in. 表示是由 Xinetd 所啟動的daemon ,所以 telnet 為 in.telnetd , wu-ftp 為 in.ftpd)
II. 指定客機部分(Remote Host) 可為:
- 1.IP address (10.6.101.7 , 10.6.101)
- 2.DNS name (.example.com)
- 3.IP address / netmask (10.6.101.0/255.255.255.0)
- 4.network name (NIS domain name)
- 5.保留字
- ALL: 所有皆可.
- LOCAL:主機名稱不含 “ . ” 的.
- UNKNOWN: 主機名稱不能解析.
- KNOWN: 主機名稱必須能解析.
- PARANOID: 名稱解析必須一致???.
- EXCEPT: 表示 [例外],需搭配 ALL , LOCAL , UNKNOWN , KNOWN , PARANOID 來使用.
ex1: LOCAL:主機名稱不含 ” . ” 的
範例中只用 /etc/hosts 來做名稱解析,所以 /etc/resolv.conf (指向 DNS server) 必須為空的
[root@benjr ~]# vi /etc/hosts 127.0.0.1 localhost.localdomain localhost 10.6.101.87 client1 10.6.101.41 client2.example.com[root@benjr ~]# vi /etc/hosts.deny intelnetd : LOCAL
能使用 telnet service 的主機,只有10.6.101.41 ( client2.example.com )
Step3. 判斷原則:
1.先檢視 /etc/hosts.allow , 若有相符合的 rule ,則提供該service.若沒有定義則檢查 /etc/hosts.deny.
2.再檢視 /etc/hosts.deny , 若有相符合的 rule ,則不提供該service.
3.若hosts.allow,hosts.deny 均找不到符合的 rule ,則提供該service.
範例 1:
[root@benjr ~]# cat /etc/hosts.allow sshd: .example.com 192.168.0.0/255.255.255.0[root@benjr ~]# cat /etc/hosts.deny sshd: all ipop3d : 192.168.1.0/255.255.255.0
1.能使用 ssh service 的主機,只有.example.com 192.168.0.0/255.255.255.0
2.能使用 ipop3 的主機,除了192.168.1.0/255.255.255.0
3.能使用 telnet , ftp serice 的主機 ALL
範例 2:
[root@benjr ~]# cat /etc/hosts.allow sshd: .example.com 192.168.0.0/255.255.255.0[root@benjr ~]# cat /etc/hosts.deny all: all
1.能使用 ssh service 的主機,只有.example.com 192.168.0.0/255.255.255.0
2.能使用 ipop3 , telnet , ftp 的主機,全部不能用.
2 thoughts on “Linux – TCP Wrapper”