Iptables
squid 代理機器上的 iptables 規則
我使用我的網路瀏覽器通過 squid 代理伺服器(我擁有)連接到網際網路。代理埠是 3128。我想鎖定執行代理伺服器的機器上的其他埠,但是我的
iptables
規則完全殺死了代理。以下規則確實有效:iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP # other rules here for web access, dns, etc iptables -A INPUT -p tcp -s "$my_pc_ip" -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp -d "$my_pc_ip" -m state --state ESTABLISHED -j ACCEPT
但是很明顯,這裡沒有指定埠,所以這並沒有達到目的。但是,當我在代理埠中指定時,我無法通過 Web 瀏覽器中的代理訪問 Internet:
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP # other rules here for web access, dns, etc iptables -A INPUT -p tcp -s "$my_pc_ip" --sport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp -d "$my_pc_ip" --dport 3128 -m state --state ESTABLISHED -j ACCEPT
為什麼第二組規則不起作用?
您似乎在防火牆規則中使用了運動而不是 dport,反之亦然。它應該是:
iptables -A INPUT -p tcp -s “$my_pc_ip” –dport 3128 -m state –state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -d “$my_pc_ip” –sport 3128 -m state –state ESTABLISHED -j ACCEPT
由於規則在您的代理伺服器上,因此在 INPUT 鏈中,數據包應與 dport 匹配,即您的代理正在執行的埠,同樣在 OUTPUT 鏈中,它應與數據包的來源匹配。