Linux UFWの状態を確認する方法|初心者にも分かるファイアウォール管理

プログラミング・IT

Linuxサーバーを運用していると、セキュリティは避けて通れない重要なテーマですよね。

その中でも「ファイアウォール」は、外部からの不正アクセスを防ぐための最前線。そして、Ubuntuをはじめとする多くのLinuxディストリビューションで採用されているのがUFW(Uncomplicated Firewall)です。

「UFWが今、有効になっているのか無効なのか分からない…」

そんな疑問を持つ方も多いはず。この記事では、UFWの状態確認方法を中心に、基本的な使い方まで丁寧に解説していきます。

コマンド一つで簡単に確認できますので、一緒に見ていきましょう!


スポンサーリンク

UFWとは?基本を押さえよう

UFWの正式名称と役割

UFWは「Uncomplicated Firewall(アンコンプリケイテッド・ファイアウォール)」の略。

日本語に訳すと「複雑じゃないファイアウォール」という意味で、その名の通り、初心者でも扱いやすいファイアウォール管理ツールなんです。

iptablesとの関係

実は、UFWの裏側ではiptablesという強力なファイアウォールシステムが動いています。

iptablesは非常に高機能ですが、その分コマンドが複雑で、初心者には敷居が高いんですね。

UFWは、そのiptablesをシンプルなコマンドで操作できるようにした「フロントエンド」の役割を果たしています。

どんなOSで使える?

UFWは主に以下のLinuxディストリビューションで使われています。

  • Ubuntu(デフォルトでインストール済み)
  • Debian
  • Linux Mint
  • その他Debian系ディストリビューション

CentOSやRHEL系では、代わりにfirewalldが標準的に使われることが多いです。


UFWの状態を確認する基本コマンド

それでは本題。UFWの状態を確認する方法を見ていきましょう。

最も基本的な確認方法

UFWが有効か無効かを確認するには、以下のコマンドを使います。

sudo ufw status

このコマンドを実行すると、UFWの現在の状態が表示されます。

実行結果の見方

UFWが有効な場合:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere

Status: activeと表示されれば、UFWは正常に動作しています。

また、設定されているルール(許可されている通信)も一覧で表示されます。

UFWが無効な場合:

Status: inactive

Status: inactiveと表示されたら、UFWは無効になっています。

この状態では、ファイアウォールは機能していないので注意が必要です。

sudoが必要な理由

UFWの状態確認にはsudo(管理者権限)が必要です。

これは、ファイアウォールがシステム全体のセキュリティに関わる重要な機能だから。一般ユーザーには操作権限が与えられていないんですね。

もしsudoなしで実行すると、以下のようなエラーが表示されます。

ERROR: You need to be root to run this script

より詳しい状態を確認する方法

基本的なstatusコマンドだけでなく、さらに詳細な情報を確認する方法もあります。

詳細情報を表示する

sudo ufw status verbose

verboseオプションを付けると、より詳しい情報が表示されます。

実行結果の例:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443/tcp                   ALLOW IN    Anywhere

ここでは以下の情報が追加されています。

  • Logging:ログ記録が有効かどうか
  • Default:デフォルトのポリシー(受信・送信・転送)
  • New profiles:新しいプロファイルの扱い

番号付きでルールを表示する

sudo ufw status numbered

このコマンドは、各ルールに番号を付けて表示します。

実行結果の例:

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 443/tcp                    ALLOW IN    Anywhere

番号付きで表示されると、特定のルールを削除したいときに便利なんです。

例えば、ルール番号2を削除したい場合は以下のようにします。

sudo ufw delete 2

UFWが起動時に自動で有効になるか確認する

UFWの状態だけでなく、システム起動時に自動的に有効になる設定かどうかも重要です。

systemdで確認する方法

現代のほとんどのLinuxディストリビューションはsystemdを使っています。

UFWのサービス状態を確認するには、以下のコマンドを使いましょう。

sudo systemctl status ufw

または

sudo systemctl is-enabled ufw

実行結果の見方:

  • enabled:起動時に自動で有効になる設定
  • disabled:自動起動しない設定
  • active (exited):現在動作中

自動起動を有効にする

もし自動起動が無効になっていた場合、以下のコマンドで有効にできます。

sudo systemctl enable ufw

これで、サーバーを再起動してもUFWが自動的に起動するようになります。


UFWの基本的な操作方法

状態確認ができたところで、基本的な操作方法も押さえておきましょう。

UFWを有効にする

sudo ufw enable

このコマンドでUFWを有効化します。

初めて有効にする場合、SSH接続が切れる可能性があるという警告が表示されることがあります。

重要な注意点:

リモートサーバーで作業している場合、SSHポート(通常22番)を許可してからUFWを有効にしましょう。

そうしないと、自分自身がロックアウトされてしまう可能性があります。

sudo ufw allow 22/tcp
sudo ufw enable

UFWを無効にする

sudo ufw disable

UFWを一時的に無効にしたい場合に使います。

ただし、セキュリティ上のリスクがあるため、本番環境では慎重に判断してください。

ルールをリセットする

sudo ufw reset

すべてのルールを削除して、初期状態に戻します。

設定をやり直したい場合に便利ですが、実行すると既存のルールがすべて消えるので注意が必要です。


よく使うUFWのルール設定例

状態確認と合わせて、実際によく使うルール設定も紹介しておきます。

SSHを許可する

sudo ufw allow 22/tcp

または、サービス名で指定することもできます。

sudo ufw allow ssh

Webサーバーのポートを許可する

HTTP(80番ポート):

sudo ufw allow 80/tcp

HTTPS(443番ポート):

sudo ufw allow 443/tcp

または、まとめて指定:

sudo ufw allow 'Nginx Full'

特定のIPアドレスからのアクセスのみ許可する

sudo ufw allow from 192.168.1.100

特定のIPアドレスからの全ての通信を許可します。

さらに、特定のポートに限定することもできます。

sudo ufw allow from 192.168.1.100 to any port 22

これは「192.168.1.100からのSSH接続のみ許可」という設定になります。

ポート範囲を許可する

sudo ufw allow 6000:6007/tcp

6000番から6007番までのTCPポートをまとめて許可できます。

ルールを削除する

特定のルールを削除するには、以下の方法があります。

方法1:ルール内容を指定

sudo ufw delete allow 80/tcp

方法2:番号を指定

sudo ufw status numbered
sudo ufw delete 3

番号指定の方が確実で分かりやすいですね。


UFW状態確認のトラブルシューティング

状態確認でよくある問題と解決方法を紹介します。

「command not found」と表示される

UFWがインストールされていない可能性があります。

Ubuntuの場合:

sudo apt update
sudo apt install ufw

Debianの場合:

sudo apt-get update
sudo apt-get install ufw

権限エラーが出る

sudoを付け忘れている可能性があります。

UFWのコマンドは、基本的にすべて管理者権限が必要です。

UFWを有効にしてもSSH接続が切れてしまう

SSH接続中にUFWを有効化する場合、事前にSSHポートを許可しておく必要があります。

もし締め出されてしまった場合は、サーバーの管理コンソール(VNCやIPMIなど)から直接ログインして、ルールを修正しましょう。

ルールを追加しても反映されない

UFWが無効になっている可能性があります。

まずsudo ufw statusで状態を確認し、inactiveになっていたらsudo ufw enableで有効にしてください。


セキュリティのベストプラクティス

UFWを使う上で、覚えておきたいセキュリティのポイントをまとめます。

デフォルト拒否の原則

UFWのデフォルト設定は「受信拒否、送信許可」になっています。

sudo ufw default deny incoming
sudo ufw default allow outgoing

これは「基本的に外部からの接続は拒否し、必要なものだけ明示的に許可する」という安全な設計です。

この設定は変更せず、必要なポートだけを個別に許可する方法がおすすめです。

最小権限の原則

必要最小限のポートだけを開放しましょう。

使っていないサービスのポートは開けない、これが基本です。

定期的な確認

定期的にsudo ufw statusでルールを見直す習慣をつけましょう。

不要になったルールは削除することで、攻撃の入り口を減らせます。

ログの活用

UFWにはログ機能があります。

sudo ufw logging on

ログを有効にすると、ブロックされた通信が記録され、不審なアクセスを検知しやすくなります。

ログは/var/log/ufw.logに保存されます。


まとめ:UFW状態確認は基本中の基本

UFWの状態確認方法について、ここまで詳しく見てきました。最後に要点を整理しておきましょう。

UFW状態確認の重要ポイント:

  • 基本コマンドはsudo ufw status
  • activeなら有効、inactiveなら無効
  • 詳細情報はsudo ufw status verboseで確認
  • ルール番号付きはsudo ufw status numbered
  • 自動起動設定はsystemctlで確認

操作の基本:

  • 有効化:sudo ufw enable
  • 無効化:sudo ufw disable
  • リセット:sudo ufw reset
  • SSH接続中は必ずSSHポートを許可してから有効化する

セキュリティの心得:

  • デフォルト拒否の原則を守る
  • 必要最小限のポートだけを開放する
  • 定期的にルールを見直す
  • ログを有効にして監視する

結論として:

UFWの状態確認は、サーバー管理の基本中の基本です。

特にリモートサーバーを運用している場合、ファイアウォールの状態を把握していないと、思わぬセキュリティリスクにつながることも。

今回紹介したコマンドを使って、定期的にUFWの状態をチェックする習慣をつけましょう。

「今、ファイアウォールは動いているのか?」

この問いにすぐ答えられるようになれば、あなたのLinux管理スキルは確実に一歩前進しています!

コメント

タイトルとURLをコピーしました