sashimi4’s diary

日々の雑多なメモを書きます

Ubuntuのiptablesを永続化する

configファイルを作成

デフォルト設定に加えたいものがある場合

e.g.

$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # 任意の設定の例
$ sudo sh -c "iptables-save > /etc/iptables.rules"

希望の設定がある場合

e.g.

$ sudo bash -c "cat >/etc/iptables.rules" <<EOF
# 以下、任意の設定の例
*filter
:INPUT ACCEPT [2426:480164]
:FORWARD ACCEPT [1902:649674]
:OUTPUT ACCEPT [2166:1094891]
:f2b-sshd - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A f2b-sshd -j RETURN
-A f2b-sshd -j RETURN
COMMIT
# Completed on Thu Apr 19 16:00:35 2018
# Generated by iptables-save v1.6.0 on Thu Apr 19 16:00:35 2018
*nat
:PREROUTING ACCEPT [810:66915]
:INPUT ACCEPT [58:8731]
:OUTPUT ACCEPT [19:1213]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
EOF

起動時の読み込み設定

$ sudo sed -ie "/^iface eth0.*$/a \  pre-up iptables-restore < /etc/iptables.rules" /etc/network/interfaces

これで eth0がupするときに設定が読み込まれます。 if名は適宜変更してください。

参考 : IptablesHowTo - Community Help Wiki