2026年7月5日

2026年7月5日

UFWでIPアドレス単位の許可・拒否

はじめに

Linuxサーバーのファイアウォールはiptablesやnftablesでも構築できますが、Ubuntu系で広く採用されているUFW (Uncomplicated Firewall) は、その名の通りシンプルな書式で堅牢なルールを定義できます。SSHのブルートフォース対策、管理画面のIP制限、社内ネットワークからのみ許可など、運用の現場で必須となる「特定IP/サブネットの許可・拒否」をUFWだけで完結できます。

UFWは内部でiptablesを操作しているため、性能や互換性に妥協はありません。それでいてufw allow from 203.0.113.0/24 to any port 22のような自然な記述が可能で、ルールの可読性と保守性は段違いに優れています。

本記事では、IPアドレス単位の許可・拒否ルールを構築する具体的な手順と、優先順位や削除・並べ替えといった実運用で必要になる操作までまとめます。

症状・背景

  • SSHを世界中からの攻撃から守るため特定IPのみ許可したい
  • 管理画面のURLを社内ネットワーク(192.168.0.0/16など)からだけ開放したい
  • 攻撃元と思われる特定IPだけを即座にブロックしたい
  • Webサーバーは全公開しつつデータベースポートはアプリサーバーのみ許可したい

手順・設定方法

ステップ1: UFWのインストールと初期設定

まずデフォルトポリシーを決めます。

# UFWをインストール
sudo apt update && sudo apt install -y ufw
# 既定で受信は全拒否、送信は全許可
sudo ufw default deny incoming
sudo ufw default allow outgoing
# まずSSHを許可してから有効化(これを忘れると締め出される)
sudo ufw allow OpenSSH
# UFWを有効化
sudo ufw enable

ステップ2: 特定IP・サブネットを許可

社内ネットワークや管理用IPからのみ許可します。

# 特定IPからSSHだけ許可
sudo ufw allow from 203.0.113.10 to any port 22 proto tcp
# サブネット単位での許可(社内ネットワーク)
sudo ufw allow from 192.168.1.0/24
# アプリサーバーからMySQLポートのみ許可
sudo ufw allow from 10.0.1.50 to any port 3306 proto tcp
# 追加されたルールを番号付きで表示
sudo ufw status numbered

ステップ3: 特定IPを拒否・ブロック

攻撃元IPなどを明示的に拒否します。

# 単一IPをブロック
sudo ufw deny from 198.51.100.42
# サブネットをブロック
sudo ufw deny from 198.51.100.0/24
# 拒否は許可より上位に置くため insert で先頭挿入
sudo ufw insert 1 deny from 198.51.100.42
# ログを有効化して遮断状況を記録
sudo ufw logging on

ステップ4: ルールの確認・削除・並べ替え

番号を指定して削除・並べ替えします。

# 全ルールを番号付きで表示
sudo ufw status numbered
# 番号3のルールを削除(対話確認あり)
sudo ufw delete 3
# 内容指定でも削除可能
sudo ufw delete allow from 192.168.1.0/24
# 設定を再読み込み(ルール反映)
sudo ufw reload
# 内部iptables展開を確認
sudo iptables -L -n -v --line-numbers | head -30

注意事項

  • ufw enableの前に必ずSSH許可ルールを入れる(リモート操作中の締め出し防止)
  • UFWのルールは上から評価されるため、denyallowより上に置く
  • IPv6を使うサーバーは/etc/default/ufwIPV6=yesが必要
  • クラウド環境ではセキュリティグループ(AWS SG等)とUFWの二重管理に注意

まとめ

1. default deny incoming から始めるのが基本

2. allow from ... to any port ... でIP×ポートを精密制御

3. insert N でルール順序を制御しdenyを優先

4. status numbered で常に番号確認してからdelete

5. logging on で誤遮断や攻撃検出に備える

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ