Iptables
如何讓 iptables 允許新埠(用於網路伺服器套接字處理程序)
在本地開發伺服器中,我沒有任何 iptables 規則(在 Mac 上執行)。然而,生產伺服器以某些規則執行 CentOS 6。
我需要添加一個規則,允許客戶端連接到1337埠。
這是我目前的 iptables 文件。是否有我必須插入新規則的特定訂單位置?
# Generated by iptables-save v1.4.7 on Tue Jun 4 17:42:56 2013 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [3:412] -A INPUT -p tcp -m tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 11211 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited -A OUTPUT -p tcp -m tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT COMMIT # Completed on Tue Jun 4 17:42:56 2013
該規則應添加到 INPUT 鏈之後
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
規則和之前
-A INPUT -j REJECT --reject-with icmp-host-prohibited
規則。
您可以通過直接編輯 /etc/sysconfig/iptables 或使用 -I 參數插入規則來完成此操作。我個人會保存防火牆的狀態,然後編輯 /etc/sysconfig/iptables 然後重新啟動服務
service iptables save edit the file and add -A INPUT -p tcp -m state --state NEW -m tcp --dport 1337 -j ACCEPT service iptables restart
如果您想從命令行完成所有操作,那麼您可以使用 –line-number 來決定在哪裡插入新規則
iptables -L INPUT --line-numberss Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED 2 ACCEPT icmp -- anywhere anywhere 3 ACCEPT all -- anywhere anywhere 4 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh 5 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
所以現在在位置 2 插入規則
iptables -I INPUT 2 -p tcp -m state --state NEW -m tcp --dport 1337 -j ACCEPT
如果可行,請不要忘記保存防火牆的狀態
service iptables save