/etc/hosts.allow 及 /etc/hosts.deny 限制 IP 連線

TCP wrappers 是主機存取控制列表系統, 作用是限制 IP, hostname 存取 TCP 網路。TCP wrappers 透過以下兩個設定檔設定過濾的 IP:

/etc/hosts.allow
/etc/hosts.deny

當客戶端嘗試從遠端連線時, 以從上面兩個檔案讀取規則, 決定客戶端的連線是允許還是禁止。設定 /etc/hosts.allow 及 /etc/hosts.deny 的格式是這樣:

daemon_list : client_list [: command]

上面三個欄位的意思是:
daemon_list: 設定的 daemons, 用逗號 (,) 分隔每個 daemons, 用 ALL 代表全部 daemons.
client_list: 客戶端的 IP, 同樣用逗號 (,) 分隔, ALL 代表全部 IP.
command: 當客戶端符合以上規則存取網路時, 需要執行的指令, 可選擇是否填寫.

將要允許存取網路的 IP 或 hostname 加入 /etc/hosts.allow, 而禁止存取網路的 IP 或 hostname 加入 /etc/hosts.deny.


首先 /etc/hosts.allow 會由上面下逐行被讀取, 當有 IP 符合規則, 便可以存取, 當沒有匹配的 IP, 則會開始逐行讀取 /etc/hosts.deny 的內容, 如果有匹配的內容, 便會禁止存取。當 /etc/hosts.deny 沒有匹配, 或者 /etc/hosts.deny 檔案不存在, 便可以存取.

由於 /etc/hosts.allow 會先被讀取, 所以 /etc/hosts.allow 的設定會優先於 /etc/hosts.deny. 所以如果同一 IP 同時加入到 /etc/hosts.allow 及 /etc/hosts.deny, 這個 IP 同樣可以存取服務.

以下是 /etc/hosts.allow 及 /etc/hosts.deny 的常用例子:

/etc/hosts.allow

允許 192.168.1.100 存取 SSH:

sshd : 192.168.1.100

允許 192.168.1.* 存取 FTP, 以下假設 daemon 是 vsftpd:

vsftpd : 192.168.1.*

/etc/hosts.deny

禁止所有 IP 存取 FTP:

vsftpd : ALL


你可能感興趣的內容:

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.