準備
まずはufwをインストールする。
$sudo apt-get install ufw
ipv6まわりが挙動が怪しいのでいろいろ試した結果ipv6は外したほうが良いようだ。
/etc/default/ufw
# Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
# accepted). You will need to 'disable' and then 'enable' the firewall for
# the changes to take affect.
IPV6=no
設定
とりあえず入ってくるものは全部拒否が基本で、外部に出ていくのはOKにしておく。
$sudo ufw default deny incoming
$sudo ufw default allow outgoing
もちろんsshも許可しておいた方がいい。リモートログインで作業しててsshを許可しなかったら詰む。
$sudo ufw allow 22
ログも取るようにしておこう。
$sudo ufw logging low
とはいえlowの場合はdefault以外のルールで弾かれたものをログにとるので、上述設定では何も書かれない。sshをallowではなくlimitにしたら不正なアクセスのログがのこるかもしれない。low以外には、
- off(完全に無効)
- medium(流量制御ありでallow・denyにマッチしたもの+不正なパケット+新しいコネクションを出力。デフォルト値)
- high(mediumの流量制御なし版)
- full(すべてのログを記録)
とりあえず早速ufwを有効にする。
$sudo ufw enable
以下のようにufwの状態を確認することが出来る。
user@localhost:~$sudo ufw status
状態: アクティブ
To Action From
-- ------ ----
22 ALLOW Anywhere
80 ALLOW Anywhere
上記例ではssh以外にもhttpも許可している。
その他
なぜかこの設定後apt-get updateができなくなった。どうもipv6のアクセスが出来ない(?)ようだった。調べたら以下のように/etc/gai.confに記載を追加すると良い。
/etc/gai.conf
# 最後に追記
precedence ::ffff:0:0/96 100
記載完了後システムをrebootするとFWも順調に動作しapt-getも問題ない。