![iptables-persistent ファイルに NAT ルールを手動で追加すると、iptables ルールが消える](https://rvso.com/image/717736/iptables-persistent%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%20NAT%20%E3%83%AB%E3%83%BC%E3%83%AB%E3%82%92%E6%89%8B%E5%8B%95%E3%81%A7%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81iptables%20%E3%83%AB%E3%83%BC%E3%83%AB%E3%81%8C%E6%B6%88%E3%81%88%E3%82%8B.png)
ルールを追加した後、で指定したルールの約 3 分の 2 が に/etc/iptables/rules.v4
表示されなくなったことに気付きました。(消えたのは、この 1 つのルールを追加したためだと特定しました。) 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
rules.v4 には ':INPUT DROP' があり、出力には '-P INPUT ACCEPT' がありますsudo iptables -S
。ルールの変更後に iptables-persistent パッケージを再設定し忘れたように、あまりにも違いすぎます。
再構成iptables 永続ルールを変更するたびに次のコマンドを実行する必要があります。
sudo dpkg-reconfigure iptables-persistent
私は3つのステップを提案します: 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 を再構成します。