1,191 瀏覽數

TCP Wrapper

網路封包進入後第一關會先經過 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 個網友的想法 “TCP Wrapper

  1. 自動參照通知: 安全性 | Benjr.tw

  2. 自動參照通知: SSH(Secure SHell) | Benjr.tw

發表迴響