Ubuntu22.04.2 LTSのufw(ファイアウォールツール)の設定方法

本記事では、ufwの設定方法について解説します。

Linuxには、不要な通信をフィルタリングするツール「iptables」が使われています。

Ubuntuには、バージョン8.04 LTS以降、ファイアウォールツール「ufw(Uncomplicated FireWall)」が新たに標準でインストールされました

ufwはiptablesのシンプルなフロントエンドツールで、ufwを使用することでiptablesを簡単に設定することができ、システムのセキュリティを向上させることができます

その設定方法について、具体的にご説明していきます

セキュリティを強化するために重要な機能ですので、本記事を参考にぜひ設定方法を理解し、扱えるようにしてください

UbuntuVPSで利用するなら
ミライサーバー
\2週間無料・全プランSSD搭載/
ミライサーバーを無料で試す

ufwの管理

前提条件

今回は、仮想マシン上に構築されたUbuntuを使用しています。

仮想マシンのスペックは以下のとおりです。

    • CPU:2vCPU
    • Memory:4GB
    • Disk:50GB
    • Ubuntuのバージョン:Ubuntu 22.04.2 LTS

また、コマンドの標記については、実際に入力するコマンドを太字、コマンドを実行後に入力を求められる箇所については赤字、補足の内容を青字で記載しています。

Unix系OS専門のホスティングサービス「ミライサーバー」

ufwの管理

最初に、ufwを使用するための基本的なコマンドについて紹介します。

インストールした直後はufwが起動した状態ですが、停止や起動、自動起動の設定を行いたい場合は、以下のコマンドを実行します。

操作コマンド
ufwの状態確認$ sudo ufw status verbose
ufwの停止$ sudo systemctl stop ufw
ufwの起動$ sudo systemctl start ufw
ufwの再起動$ sudo systemctl restart ufw
設定のリロード$ sudo systemctl reload ufw
自動起動の有効化$ sudo systemctl enable ufw
自動起動の無効化$ sudo systemctl disable ufw
ufwの状態確認(デーモン)$ sudo systemctl status ufw
ufwの状態確認(設定)$ sudo ufw status verbose
ufwの設定の有効化$ sudo ufw enable
ufwの設定の無効化$ sudo ufw disable

ufwは、最初からデーモンが起動している状態ですが、設定としては無効になっています。

ufwデーモンの状態確認
$ sudo su
ufwデーモンの設定確認
$ sudo ufw status verbose

次のコマンドで設定を有効にします。

ufwの有効化
$ sudo ufw enable

起動した直後の状態では、何のルールも設定されていません。

このときの動作は「deny(incoming)」とあるように、外部からのパケットは廃棄する設定になっています。

つまり、必要な通信のみ許可する「ホワイトリスト方式」で設定を追加していきます。

Unix系OS専門のホスティングサービス「ミライサーバー」

ufwの設定

通信を遮断する設定は、ポート単位、IPアドレス単位、インタフェース単位など複数あります。

ここでは、よく利用される「ポート単位」および「IPアドレス単位」でのルール設定の方法について解説します。

ルールの追加(ポート指定)

ルールは、以下の3つを設定します。

    • allow(許可)
    • deny(廃棄)
    • reject(拒絶)

デフォルトで外部からの通信はすべてdenyとなっているため、今回は外部から特定の通信を許可するルールを追加します。

以下は、全ての送信元ホストからの、ポート22の通信を許可する設定です。

プロトコル(TCP/UDP)を指定しなければ、TCP/UDP両方のポートが許可されます。

$ sudo ufw allow 22

また、連続したポートを指定することも可能です。

以下のコマンドでは、10000~10200ポートの通信を許可しています。

複数のポートを指定する場合は、プロトコル(TCPまたはUDP)どちらかを指定しないとエラーになりますので注意しましょう。

$ sudo ufw allow 10000:10200/tcp

ルールの削除(ポート指定)

追加したルールを削除したい場合は、以下のコマンドを実行します。

$ sudo ufw delete allow 22

このような形で「使用するポートのみ通信を許可」する設定を追加していけば、セキュリティを高めることができます。

また、使用しなくなったらルールを削除して通信を遮断するようにしておきましょう。

運用していくと、1度通信を許可した後、そのままにしてしまうこともあるでしょう。

そのようなポートが増えるとセキュリティのリスクとなりますので、定期的に見直すことが大切です。

ルールの追加(送信元IPアドレス指定)

特定のホストからの通信を全ポート許可したい場合、IPアドレスを指定します。

以下の例では、送信元192.168.0.1/32からの通信を許可しています。

$ sudo ufw allow from 192.168.0.1/32

「/32」はサブネットマスクを指定しています。

/32ですと、そのIPアドレスが設定された特定ホストでルールが設定されますが、「/16」「/24」等設定すれば、そのネットワーク帯に含まれるすべてのホストが対象になります。

つまり、複数のホストからの全ての通信を許可することも可能です。

ルールの削除(送信元IPアドレス指定)

追加したルールを削除したい場合は、以下のコマンドを実行します。

$ sudo ufw delete allow from 192.168.0.1/32

送信元IPアドレスを指定することで、より多くのホストに対して設定を行うことができます。

設定を誤ってしまうと、想定外のホストからの通信を許可してしまうことになるので、設定には十分気をつけましょう。

Unix系OS専門のホスティングサービス「ミライサーバー」

ufw設定のバックアップとリストア

ufwの設定内容はファイルで管理されています。

そのファイルをバックアップすれば、追加した設定を保存しておくことができます。

IPv4とIPv6は別ファイルに保存されていますので、それぞれのバックアップを忘れないようにしましょう。

設定ファイルの保存場所
/etc/ufw/user.rules   ※IPv4の設定
/etc/ufw/user6.rules   ※IPv6の設定

逆に、バックアップしたファイルで置き換えれば、設定を戻すことができます。

設定を戻すときは、バックアップしたファイルを置き換えたあと、以下のコマンドで設定をリロードして反映します。

$ sudo ufw reload

Unix系OS専門のホスティングサービス「ミライサーバー」

まとめ

今回はUbuntuに標準でインストールされているufwの設定方法について解説しました。

特定のポートやIPアドレス、インタフェースのみ通信を許可することによって、外部からの攻撃や不要な通信からサーバーを守ることができます。

セキュリティを強化するために重要な機能ですので、ぜひ設定方法を理解し、扱えるようにしてください。

UbuntuをVPSで利用するならミライサーバー

ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。

ミライサーバーのVPSでは、高速処理が可能なSSD全プランに搭載しています。

OSは、UbuntuDebianAlmaLinuxなどの豊富なラインアップから選択することができます。

2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。

▼ミライサーバーについてはこちら▼Unix系OS専門のホスティングサービス「ミライサーバー」

VPSなら「ミライサーバー」

・全プランSSD搭載
・2週間無料

▶ ミライサーバーを無料で試す

関連記事

特集記事

TOP