每當我的客戶需要更改某些內容時,我就被要求管理幾個網頁伺服器。
我想做的就是在測試時暫時限制自己,而所有其他連接對所有人開放HTTP
。HTTPS
他們沒有iptables
管理,但我有 sudo 存取權限。
還有很多其他服務正在運行,我不想中斷它們。我也不想斷開與 ssh 會話的連接,因為我沒有控制台訪問權限來恢復它。
如果我只運行這兩個命令,它會僅在其他連接埠工作時進行限制HTTP
嗎HTTPS
?
iptables -I INPUT -p tcp -s 0.0.0.0/0 --match multiport --dport 80,443 -j DROP
iptables -I INPUT -p tcp -s 10.1.1.2 --match multiport --dport 80,443 -j ACCEPT
編輯:更改了規則的順序。
答案1
是的,只有其中的內容才會iptables --list
被處理,除非有DROP ALL
它允許其他所有內容。
但如果我們使用-I (Insert)
規則的順序應該是Drop
第一個,這意味著規則DROP
將在最後,而ACCEPT
規則將首先被處理。
[root@hostname ~]# iptables -I INPUT -p tcp -s 0.0.0.0/0 --match multiport --dport 80,443 -j DROP
[root@hostname ~]# iptables -I INPUT -p tcp -s 10.1.1.2 --match multiport --dport 80,443 -j ACCEPT
現在運行iptables --list
[root@hostname ~]# iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 10.1.1.2 anywhere multiport dports http,https
DROP tcp -- anywhere anywhere multiport dports http,https