ufwのインストールと設定
カテゴリ:ファイヤーウォール
Ubuntuのファイヤーウォール設定はufwを使用します。ufwはiptablesのフロントエンドのコマンドとなり、簡単にiptablesの設定を行えるように設計されています。
ufwのインストール
以下のコマンドでufwをインストールします。
# apt -y install ufw
自動起動と起動
以下のコマンドでufwの自動起動の有効化と起動を行います。
# systemctl enable ufw # systemctl start ufw
ufwの有効化
初期設定ではステータスはinactiveとなっています。
# ufw status verbose Status: inactive
以下のコマンドでufwを有効化できますが、SSHで接続しているなら先に22番ポート(または実際のSSHのポート番号)を許可しておきましょう。
# ufw allow 22 # ufw enable
実行例)
# ufw allow 22 Rules updated Rules updated (v6) # ufw enable Firewall is active and enabled on system startup
再度、ステータスを見てみます。今度はStatus: activeとなっていますね。
# ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), deny (routed) New profiles: skip To Action From -- ------ ---- 22 ALLOW IN Anywhere 22 (v6) ALLOW IN Anywhere (v6)
また、Default: deny (incoming)であり、受信方向(incoming)に関してはホワイトリスト方式であること、22番ポートへの通信(To:22)が許可(ALLOW IN)されている事が分かります。
参考ホワイトリスト方式とは、セキュリティを高めるために、デフォルトですべての接続を拒否し、特定のポートのみ許可(ホワイトリスト)する設定方式です。「Default: deny (incoming)」は正に、デフォルトですべての受信を拒否することを表しています。先に22番ポートを許可しておいたのはこのためです。
ルールの追加コマンド
先ほどすでに22番ポートを追加したように、特定のポートを許可する場合は、以下のように ufw allow コマンドに続けてTCPポート番号を指定します。
# ufw allow 22
ルールの削除コマンド
特定のポートを削除するには、ufw delete コマンドに続けて対象の行番号を指定します。
行番号は ufw status numbered コマンドで確認できます。
# ufw status numbered Status: active To Action From -- ------ ---- [ 1] 22 ALLOW IN Anywhere [ 2] 22 (v6) ALLOW IN Anywhere (v6) # ufw delete 2 Deleting: allow 22 Proceed with operation (y|n)? y Rule deleted (v6)
Note削除しても良いかを尋ねられますのでyを入力します。
以下のように、IPv6の22番ポートの設定が削除されていることが確認できます。
# ufw status numbered Status: active To Action From -- ------ ---- [ 1] 22 ALLOW IN Anywhere
ufwのサブコマンドの一覧
ufwコマンドのサブコマンドの一覧は以下となります。
サブコマンド | 説明 |
---|---|
enable | ファイアウォールを有効 |
disable | ファイアウォールを無効 |
default ARG | デフォルトのポリシーを設定 |
logging LEVEL | ロギングをLEVELに設定 |
allow ARGS | 許可ルールを追加 |
deny ARGS | 拒否ルールを追加 |
reject ARGS | 拒否ルールを追加 |
limit ARGS | 制限ルールを追加 |
delete RULE|NUM | ルールを削除 |
insert NUM RULE | NUMにルールを挿入 |
route RULE | ルートルールを追加 |
route delete RULE|NUM | ルートルールを削除 |
route insert NUM RULE | NUMにルートルールを挿入 |
reload | ファイアウォールをリロード |
reset | ファイアウォールをリセット |
status | ファイアウォールのステータスを表示 |
status numbered | ルールの番号付きリストとしてファイアウォールステータスを表示 |
status verbose | 詳細なファイアウォールステータスを表示 |
show ARG | ファイアウォールレポートを表示 |
version | バージョン情報を表示 |
アプリケーションプロファイル関連のコマンドの一覧は以下となります。
サブコマンド | 説明 |
---|---|
app list | アプリケーションプロファイルを一覧表示 |
app info PROFILE | PROFILEに関する情報を表示 |
app update PROFILE | プロファイルを更新 |
app default ARG | デフォルトのアプリケーションポリシーを設定 |
ファイヤーウォールを構成する
ファイヤーウォールの一般的な設定方式はホワイトリスト方式です。つまりすべてのポートを拒否(DROP)しておき、特定のポートのみ許可(ACCEPT)するという設定を行います。
今回の例では一般的にVPSで使用されるであろう、以下のポートのみを許可するように設定します。
tcp dpt:20(ftp data) tcp dpt:21(ftp) tcp dpt:22(ssh) tcp dpt:25(smtp) tcp dpt:80(http) tcp dpt:110(pop3) tcp dpt:443(https) tcp dpt:465(urd) tcp dpt:587(submission) tcp dpt:993(imaps) tcp dpt:995(pop3s) tcp dpt:10000(webmin) tcp dpts:60000:60030(ftp passive mode)
以下のコマンドで上記のポートを追加します。
ufw allow 20 ufw allow 21 ufw allow 22 ufw allow 25 ufw allow 80 ufw allow 110 ufw allow 443 ufw allow 465 ufw allow 587 ufw allow 993 ufw allow 995 ufw allow 10000 ufw allow 60000:60030/tcp
Noteポート番号の範囲を指定する場合は、「:」記号を使用します。但しその場合はTCPプロトコルかUDPプロトコルであるかを「/」記号の後に明示する必要があります。
正常にルールが登録されたことを確認します。
# ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), deny (routed) New profiles: skip To Action From -- ------ ---- 22 ALLOW IN Anywhere 20 ALLOW IN Anywhere 21 ALLOW IN Anywhere 25 ALLOW IN Anywhere 80 ALLOW IN Anywhere 110 ALLOW IN Anywhere 443 ALLOW IN Anywhere 465 ALLOW IN Anywhere 587 ALLOW IN Anywhere 993 ALLOW IN Anywhere 995 ALLOW IN Anywhere 10000 ALLOW IN Anywhere 60000:60030/tcp ALLOW IN Anywhere 20 (v6) ALLOW IN Anywhere (v6) 21 (v6) ALLOW IN Anywhere (v6) 22 (v6) ALLOW IN Anywhere (v6) 25 (v6) ALLOW IN Anywhere (v6) 80 (v6) ALLOW IN Anywhere (v6) 110 (v6) ALLOW IN Anywhere (v6) 443 (v6) ALLOW IN Anywhere (v6) 465 (v6) ALLOW IN Anywhere (v6) 587 (v6) ALLOW IN Anywhere (v6) 993 (v6) ALLOW IN Anywhere (v6) 995 (v6) ALLOW IN Anywhere (v6) 10000 (v6) ALLOW IN Anywhere (v6) 60000:60030/tcp (v6) ALLOW IN Anywhere (v6)
設定のバックアップとリストア
バックアップ
ルールはIPv4とIPv6で別ファイルに保存されていますので、以下をそれぞれバックアップします。
/etc/ufw/user.rules /etc/ufw/user6.rules
例)
# cp /etc/ufw/user.rules /tmp/ufw.rules.back # cp /etc/ufw/user6.rules /tmp/ufw6.rules.back
リストア
以下のファイルをそれぞれバックアップしたファイルで置き換えます。
/etc/ufw/user.rules /etc/ufw/user6.rules
例)
# cp -f /tmp/ufw.rules.back /etc/ufw/user.rules # cp -f /tmp/ufw6.rules.back /etc/ufw/user6.rules
以下のコマンドで設定をリロードします。
# ufw reload
公開日時:2021年08月22日 18:00:01
最終更新日時:2024年03月24日 09:27:32