質問: 先日さくらのVPSをレンタルし,Ubuntu Server 16.04 LTSをインストールしました. Ubuntuにはiptablesをシンプルにしたufwというものがあるようなので,これを使ってファイヤウォールの設定を行おうと思っていました. 例えば,仮にsshのポートを2222とすると, ``` sudo ufw enable sudo ufw default DENY sudo ufw allow 2222 sudo ufw allow 80 sudo ufw allow 443 sudo ufw reload ``` のように設定しようと考えていました. しかし,実際にこの設定でSSH接続を試みたところ,2222ポートは開かず,逆に22番ポートは開いたままになっていました. 調べてみると,どうもufwのルールは,さくらがデフォルトで設定しているiptablesの設定が一通り終わってから適用されるようです.つまり, ``` sudo iptables -L >>> Chain INPUT (policy DROP) ... (さくら側で行われた初期設定) Chain FORWARD (policy DROP) ... (さくら側で行われた初期設定) Chain OUTPUT (policy ACCEPT) ... (さくら側で行われた初期設定) Chain f2b-sshd (1 references) ... (さくら側で行われた初期設定) Chain ufw-after-forward (1 references) ... (ufwによるユーザー設定) ... ``` となっていました.そこで私は, ``` sudo iptables -F sudo ufw reload ``` とすることで,この問題に対処しました. ところが,この方法の場合,sudo apt update等ができなくなってしまうようです. apt,またはもう少し一般的に言えばpip, gem, npm等,こちらからデータの取得を要求する場合だけ通信を許可する方法はあるのでしょうか? よろしくお願いします.
回答: ``` Chain INPUT (policy DROP) ... (さくら側で行われた初期設定) Chain FORWARD (policy DROP) ... (さくら側で行われた初期設定) Chain OUTPUT (policy ACCEPT) ... (さくら側で行われた初期設定) ``` 検討違いかもしれませんが、この状態で `sudo iptables -F` を実行すると、 ルールだけクリアされて、INPUTとFORWARDはポリシーがDROPのまま(=全て拒否される)になってるとかではないでしょうか? 参考