状況
さくらVPSでUbuntu。
「ufw」という簡単でわかりやすいツールがあるんだと。
iptables のラッパーらしいが。
# ufw allow 80
のような操作で、簡単に穴あけできる。
だが、しかし、塞がったままででした。
なにやっても #80アクセスできません。
公式アナウンス
※ さくらのVPSデフォルト設定であるiptables以外のファイアウォールをご利用になりたい場合は、再起動時に設定が2重に反映されてしまう可能性がありますため、/etc/network/if-pre-up.d/iptables の削除が必要となります。あわせて、iptablesのルール情報である /etc/iptables/iptables.rules も不要となりますため削除いただくこと推奨いたします。
さくらのVPS、スタートアップスクリプト「Ubuntu ufw」を更新しました – さくらのVPSニュース
初期設定では ssh/icmpのみ許可しています。
/etc/network/if-pre-up.d/iptables より、下記設定ファイルを読み込んでおります。
OSセットアップ情報(Ubuntu16.04 LTS) – さくらのサポート情報
まとめ
さくらのVPS(クラウドも含む可能性があります)のUbuntu 16.04 LTS環境では、2017-12-07現在、netfilter-persistentパッケージをインストールした状態でも設定が上書きされてiptablesのフィルタリング設定が元に戻ってしまう可能性があるようです。
netfilter-persistent が動かないよ @ さくら - Qiita
結局、利用は以下の2つのパターン。
// ufw を使う。 iptables の設定で上書きさせない。
# rm /etc/network/if-pre-upid/iptables
# rm /etc/iptables/iptables.rules
# reboot
# ufw enable
# ufw allow 80
# systemctl enable ufw
// iptables を使う。ufw を無効化。
# iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# iptables-save > /etc/iptables/iptables.rules
# ufw disable
# systemctl disable ufw
# reboot
ufw では届かない設定があるので、ルールの変更は「ufw」と「iptables」コマンドを併用しないほうがよいのだろう。
はまる。