ufwをインストールした後、とりあえずステータスを見る。当然ながら、まだ何も動いていない。
# ufw status Status: inactive
ここで注意したいのは、ここでいきなりufwを動かすと、コンソールから入っているなら問題はないが、ネットワーク経由でsshを使っている場合、そのコネクションも、あたりまえといえばあたりまえだが、すっぱり切れる。なのでここではsshのポート番号22は確保しておく。デフォルトではIPv4だけなくIPv6のポートにも設定がつく。
# ufw allow 22 Rules updated Rules updated (v6)
これで22番ポートはパケットが通過するようになる。とりあえずこれでsshで接続しているのは切られることはない。DNSのパケットを通過させないとホスト名・ドメイン名を使ってインターネットに接続するのに大変なので、それも通過させておく。
# ufw allow domain Rule added Rule added (v6)
ただしsshのプロトコルを標準の22から任意の番号に変更して運用している人は、そのポート番号を設定しなければならないのを忘れないようにする。sshが切れる可能性を警告してくれ、ユーザの確認を待つ程度のことはしているのでよく確認してyを入力すること。
# ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup
これでuwfのファイアウォールが動き始める。
コマンド iptables に引数 -L を与えて表示させれば、どういう具合にiptablesが設定されているか表示されるが、大量の表示なのでわかりづらいかも知れない。
# ufw status Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 53 ALLOW Anywhere 22 (v6) ALLOW Anywhere (v6) 53 (v6) ALLOW Anywhere (v6)
ポート番号22番と53番が通過となっているのが確認できる。httpとhttpsのパケットを通過させる時は次のようにおこなう。
# ufw allow http # ufw allow https
ファイアウォールをオフにする。オプション名は disable とする。その後statusを確認してみる。
# ufw disable Firewall stopped and disabled on system startup # ufw status Status: inactive
ファイアウォールのエントリーを削除したい時、statusで表示されている順番で上から数えたエントリーをオプション delete で削除することが出来る。
v6のエントリーを必要としないので削除する、というケースを想定する。その場合のオプションはdeleteである。22(v6)を消す場合、上から数えて3番目なのでdelete 3となる。
# ufw status Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 53 ALLOW Anywhere 22 (v6) ALLOW Anywhere (v6) 53 (v6) ALLOW Anywhere (v6)
# ufw delete 3 Deleting: allow 22 Proceed with operation (y|n)? y Rule deleted (v6)
このようにインタラクティブに消すことになる。尚、ここでv6のエントリーを消しているのはあくまでも使い方の説明のためである。IPv6の設定はIPv4に悪影響を与えないはずので、そのまま残しておいて問題は発生しないだろう。もし気になるのなら/etc/default/ufwの中にIPv6の設定があるので、そこを次のように変更すればよい。
IPV6=no