1. 程式人生 > >centos6 下使用 iptables 只允許某ip對本機某埠的訪問

centos6 下使用 iptables 只允許某ip對本機某埠的訪問

iptables的基礎知識可以檢視 王聰寫的《學習使用iptables》http://wangcong.org/articles/learning-iptables.cn.html (寫得非常棒)

iptables的一些術語之間的包含關係:表包含鏈,鏈包含規則,規則由匹配和目標組成。

匹配當然是指從網路進來的資料包匹配你制定的匹配條件了,目標則是說匹配成功後將會做什麼操作(即目標)。

iptables的整個流程會讀取四個表,其中的第三個表是 filter, 而本文題目所設定的目標就是通過在 filter 表裡的 INPUT 鏈裡新增一些規則來實現的。

這些鏈裡的“規則”的執行規則是這樣的:根據規則的先後順序,從先到後一條一條地執行,若某條規則匹配了,則退出當條鏈的過濾;若某條規則未匹配,則進行下一條規則的匹配。

所以要只允許某ip(ip1)對埠(port1)的訪問,就要在filter表的INPUT鏈裡制定兩個規則

1.接受ip1對port1的訪問。

2.禁止所有ip對port1的訪問。

因為如果1成立,就退出了當前鏈,即規則2不會執行,所以,設定成功。

以下是只允許ip1對埠25訪問具體命令(請把ip1換成真實的ip):

iptables -A INPUT -p tcp -s ip1 --dport 25 -j ACCEPT

iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 25 -j DROP