![手動將 nat 規則新增至 iptables-persistent 檔案時,iptables 規則消失](https://rvso.com/image/717736/%E6%89%8B%E5%8B%95%E5%B0%87%20nat%20%E8%A6%8F%E5%89%87%E6%96%B0%E5%A2%9E%E8%87%B3%20iptables-persistent%20%E6%AA%94%E6%A1%88%E6%99%82%EF%BC%8Ciptables%20%E8%A6%8F%E5%89%87%E6%B6%88%E5%A4%B1.png)
我注意到在新增規則後,我指定的大約三分之二的規則/etc/iptables/rules.v4
停止顯示。 (我將消失與添加這一規則隔離開來。)我安裝了fail2ban 和 iptables-persistent。我的 iptables 規則去哪了?sudo iptables -S
nat
/etc/iptables/rules.v4
# Generated by iptables-save v1.6.0 on Sat Feb 10 14:34:17 2018
*filter
:INPUT DROP [1858:197791]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [2564:302408]
-A INPUT -p tcp --match multiport --dports 22:23 -j ACCEPT
-A INPUT -p tcp --match multiport --dports 50000:50999 -j ACCEPT
-A INPUT -p udp --match multiport --dports 120:121 -s 999.999.999.999 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 122 -s 999.999.999.999 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 123 -s 999.999.999.999 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i veth0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o veth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
-t nat -A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Sat Feb 10 14:34:17 2018
sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N f2b-sshd
-N f2b-vsftpd-iptables
-A INPUT -p tcp -m multiport --dports 23 -j f2b-vsftpd-iptables
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A f2b-sshd -j RETURN
-A f2b-vsftpd-iptables -j RETURN
答案1
sudo iptables -S
您在rules.v4中有':INPUT DROP',在輸出中有'-P INPUT ACCEPT' 。看起來有太多不同,就像規則更改後您忘記重新配置 iptables-persistent 套件一樣。
重新配置iptables-持久性每次通過命令更改規則後都需要:
sudo dpkg-reconfigure iptables-persistent
我建議三個步驟:1)。明確的規則。
# delete all current rules and user chains
iptables -F
iptables -X
# global policy (target by default)
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
2)。再次定義您的規則。 3)。重新配置 iptables-persistent。