本記事では、前回書き切れなかったファイアウォールの設定方法について詳しくご紹介します。
今まで著者が利用していたCentOSでは、iptablesもしくはfirewalldを使用していましたが、Ubuntuではufwを使用します。
何れも設定方法が異なるので、最初は設定し辛く感じましたが、慣れればわかりやすくて簡単です。
ufwの初期設定
Ubuntu 20.04(LTS)ではデフォルトでufwが入っていますが、初期状態では何でも通す、いわゆる無効な状態になっているはずです。
これではセキュリティ的によろしくないので、まずは状態を確認してみましょう。
※前提として、本記事でのコマンドは全てroot権限で行います
ufwの状態を確認する
以下のコマンドで状態を確認できます。
# ufw status
無効な場合はこのように表示されます。
Status: inactive(状態: 非アクティブ) ← 無効な状態
有効になっているなら、
Status: active(状態: アクティブ) ← 有効な状態
と表示されます。
デフォルトは無効なので、次の手順で有効化してあげましょう。
ufwの有効化
ここでSSH接続で作業している方は注意です!
いきなりファイアウォールを有効にすると、SSH接続できなくなってしまいます!
SSH以外でサーバーに接続する手段がない場合は、先に次の手順に進んでください。
それでは、ファイアウォールを有効にするコマンドです。
# ufw enable
これだけですね。
ちなみに、無効化する場合はこのようにします。
# ufw disable
特に問題無ですね。
ufwのIPv6無効化とデフォルト設定
Ubuntuの初期設定でも記載した通リ、OS自体のIPv6を無効にしているので、ファイアウォールでもIPv6は使いません。
以下のファイルを書き換えてIPv6を無効化しましょう。
# vi /etc/default/ufw
・・・
# IPV6=yes
IPV6=no
・・・
さらに、デフォルトで全ての通信を遮断する(ホワイトリスト形式)か、全て許可する(ブラックリスト形式)かも設定することができます。
# ufw default [以下の3種類]
- deny (廃棄)
- reject (拒絶)
- allow (許可)
設定は可能ですが、特に意識する必要はなく、一般的な「deny」を使います。
# ufw default deny
これでufwの初期設定は完了です。
簡単なルールの追加と削除
まずは、基本的なルールの追加と削除方法をご紹介します。
この章では特に制限を意識することなく、通信許可のルールを追加します。
ここからは例として、22番ポート(SSH)を許可、削除します。
ポート番号を指定したルールの追加
単純にポート番号だけを指定して追加する場合は以下の通りです。
# ufw allow 22
プロトコル「TCP」も指定すると以下のようになります。
# ufw allow 22/tcp
アプリケーションを指定したルールの追加
次はアプリ名を指定して追加する方法です。
# ufw allow OpenSSH
これだけでアプリが使用しているポートを自動で許可してくれます。
ちなみに、指定できるアプリを確認するには、以下のコマンドを使用します。
# ufw app list
追加したルールを確認する
追加したルールを確認するには、以下のコマンドを実行します。
# ufw status
To Action From
-- ------ ----
OpenSSH ALLOW IN Anywhere
しかし、次の番号指定でルールを削除するために、ルール番号を表示する「numbered」オプションを付けます。
# ufw status numbered
To Action From
-- ------ ----
[ 1] OpenSSH ALLOW IN Anywhere
次では、ここに表示された番号を基に削除します。
番号を指定したルールの削除
上記で表示されたルール番号を指定して削除します。
# ufw delete 1
普通にポートを指定して削除する方法もありますが、ルールが複数ある場合や削除ミス防止の観点からも、こちらの削除方法をオススメします。
※逆に、任意のルール番号の間に新しいルールを挿入したい場合は「insert」オプションもありますよ
詳細なルールの追加
通常ならこれらの方法で問題ありませんが、もっと通信元に制限をかけたり、NICが複数ある場合にどのネットワークを許可するかなど、細かく設定することもできます。
最後に少しだけ例を上げて終わりたいと思います。
通信元を制限する
例えば、同じセグメント内のIPアドレスからしか通信を受け付けない場合は、以下のように設定します。
# ufw allow from 192.168.100.0/24 to any port ssh
更に、特定のポートからの通信を指定したIPアドレスだけ受け付ける場合はこのようになります。
# ufw allow proto tcp from 192.168.100.0/24 to 192.168.100.101 port 22
# ufw allow proto tcp from 192.168.100.0/24 to 192.168.100.102 port 80
# ufw allow proto tcp from 192.168.100.0/24 to 192.168.100.103 port 3306
ちなみに、インターフェース名(ens160やeth0)でも追加できます。
これでセキュリティがグッと向上すると思います。
- Original:https://minory.org/ubuntu-ufw.html
- Source:Minory
- Author:管理者