概要
Ubuntuでは通常Firewallの設定をする場合、「UFW(Uncomplicated Firewall)」を利用した方が簡単。
UFW は iptables のラッパで、基本的な事は ufw コマンドから設定することができる。
マニュアル
基本は「man ufw」と「UFW(Uncomplicated Firewall)」を参照すると良い。
設定ファイル
Ubuntuのバージョンによって多少設定ファイルのディレクトリが異なる。
ufwコマンドにて設定された値は「/lib/ufw」もしくは「/var/lib/ufw」以下の「user.rules」に保存される。
ufwコマンドで設定できない項目は「/etc/ufw」以下のファイルで設定する。
ufwコマンドで設定可能な項目
ufwコマンドでは「allow」、「deny」、「reject」、「limit」しか設定できない。「hashlimit」等を設定したい場合は、「/etc/ufw/before.rules」等に設定する。
ufwコマンドの使い方
「man ufw」と本家のマニュアル「UFW(Uncomplicated Firewall)」でほとんどわかる。
注意点は ufw で設定した物は設定順に読まれるという事。例えば「deny」して「allow」すると、「allow」が有効にならない。「ufw status numbered」にて順番を確認すること。
順番が意図と異なる場合は一度削除して、設定しなおす必要がある。
ufw を再有効(ufw enable)しないかぎり、すぐに反映されるわけではない。
ufwコマンドのサンプル
例えば SSH の設定は以下のようににすると、IPを特定からのアクセスに制限し、その他を拒否する。
sudo ufw allow from 192.0.2.178 to any port ssh
sudo ufw deny 22/tcp
DNS の port 53 を空けておかないと名前解決できないかも。
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
「/etc/ufw/after.rules 」の「COMMIT」の前に以下を記述しとかないと、DNS解決できない。
-A ufw-after-input -m state --state ESTABLISHED,RELATED -j ACCEPT
設定内容の確認
以下のコマンドで確認できる。
# 概要
sudo ufw status
# iptables 形式
sudo ufw show raw
参考サイト
ufw コマンドの使い方は本家マニュアル参照。before とかの書き方は iptables の書き方なので、別途学習が必要。