UFW ファイアウォール
UFW (Uncomplicated Firewall) は、Ubuntu のデフォルトのファイアウォール管理ツールです。これは、ファイアウォールの構成をシンプルかつ直感的に行う iptables/nftables 用の簡素化されたフロントエンドです。
基本操作
有効化と無効化
# Enable firewall
sudo ufw enable
# Disable firewall
sudo ufw disable
# Check status
sudo ufw status
# Check detailed status
sudo ufw status verbose
# Check rules with numbers
sudo ufw status numberedWarning
SSH 経由でサーバーをリモート管理している場合は、ファイアウォールを有効にする前に 最初に SSH ポートを許可する必要があります (sudo ufw allow ssh)。そうしないと、ファイアウォールが有効になるとすぐにリモート アクセスが失われます。
デフォルトのポリシー
# Set default to deny incoming connections
sudo ufw default deny incoming
# Set default to allow outgoing connections
sudo ufw default allow outgoing
# Recommended initial configuration
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enableルール管理
許可ルール
# Allow a specific port
sudo ufw allow 22 # SSH
sudo ufw allow 80 # HTTP
sudo ufw allow 443 # HTTPS
# Specify protocol
sudo ufw allow 22/tcp
sudo ufw allow 53/udp
# Allow a port range
sudo ufw allow 6000:6007/tcp
# Allow a specific IP address
sudo ufw allow from 192.168.1.100
# Allow a specific subnet
sudo ufw allow from 192.168.1.0/24
# Allow a specific IP to access a specific port
sudo ufw allow from 192.168.1.100 to any port 22
# Allow a specific subnet to access a specific port
sudo ufw allow from 10.0.0.0/8 to any port 3306 proto tcp拒否ルール
# Deny a specific port
sudo ufw deny 23 # Telnet
# Deny a specific IP
sudo ufw deny from 203.0.113.50
# Deny a specific IP from accessing a specific port
sudo ufw deny from 203.0.113.50 to any port 22拒否ルール
拒否とは異なり、拒否は拒否メッセージを要求者に送り返します。
sudo ufw reject 23
sudo ufw reject from 203.0.113.50ルールの削除
# Delete by number
sudo ufw status numbered
sudo ufw delete 3
# Delete by rule content
sudo ufw delete allow 80
sudo ufw delete deny from 203.0.113.50
# Reset all rules
sudo ufw resetルールの挿入
ルールは順番に照合されます。特定の位置にルールを挿入できます。
# Insert a rule at position 1
sudo ufw insert 1 deny from 203.0.113.50アプリケーションプロファイル
UFW は、共通サービスのファイアウォール構成を簡素化するアプリケーション プロファイルをサポートしています。
アプリケーションプロファイルの表示と使用
# List available application profiles
sudo ufw app list
# View application profile details
sudo ufw app info 'Nginx Full'
# Output:
# Profile: Nginx Full
# Title: Web Server (Nginx, HTTP + HTTPS)
# Description: Small, but very powerful and efficient web server
# Ports:
# 80,443/tcp
# Use an application profile
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'
sudo ufw allow 'Samba'カスタム アプリケーション プロファイルの作成
sudo nano /etc/ufw/applications.d/myapp[MyApp]
title=My Custom Application
description=Custom application on port 8080
ports=8080/tcp
[MyApp Full]
title=My Custom Application (Full)
description=Custom application on ports 8080 and 8443
ports=8080,8443/tcp# Update application list
sudo ufw app update MyApp
# Use the new profile
sudo ufw allow 'MyApp'一般的な構成シナリオ
ウェブサーバー
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 'OpenSSH'
sudo ufw allow 'Nginx Full'
# Or
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enableデータベースサーバー
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 'OpenSSH'
# Only allow the application server to access the database
sudo ufw allow from 10.0.1.10 to any port 3306 proto tcp # MySQL
sudo ufw allow from 10.0.1.10 to any port 5432 proto tcp # PostgreSQL
sudo ufw enableメールサーバー
sudo ufw allow 'OpenSSH'
sudo ufw allow 25/tcp # SMTP
sudo ufw allow 587/tcp # SMTP (submission)
sudo ufw allow 993/tcp # IMAPS
sudo ufw allow 995/tcp # POP3S
sudo ufw enableドッカー環境
Docker はデフォルトで UFW ルールをバイパスします。これを修正するには:
# Edit Docker daemon configuration
sudo nano /etc/docker/daemon.json{
"iptables": false
}# Restart Docker
sudo systemctl restart docker
# Or use UFW DOCKER rules
sudo nano /etc/ufw/after.rulesファイルの末尾に以下を追加します。
# BEGIN UFW AND DOCKER
*filter
:ufw-user-forward - [ACCEPT]
:DOCKER-USER - [ACCEPT]
-A DOCKER-USER -j RETURN -s 10.0.0.0/8
-A DOCKER-USER -j RETURN -s 172.16.0.0/12
-A DOCKER-USER -j RETURN -s 192.168.0.0/16
-A DOCKER-USER -p udp -m udp --sport 53 -j RETURN
-A DOCKER-USER -p tcp -m tcp --sport 80 -j RETURN
-A DOCKER-USER -p tcp -m tcp --sport 443 -j RETURN
-A DOCKER-USER -j ufw-user-forward
COMMIT
# END UFW AND DOCKERsudo ufw reload高度な構成
レート制限
UFW は接続レート制限をサポートしており、ブルート フォース攻撃に対する防御に役立ちます。
# Limit SSH connection rate (max 6 connections within 30 seconds)
sudo ufw limit 22/tcp
# Limit a specific port's rate
sudo ufw limit 8080/tcpロギング構成
# Enable logging
sudo ufw logging on
# Set log level
sudo ufw logging low # Low (default)
sudo ufw logging medium # Medium
sudo ufw logging high # High
sudo ufw logging full # Full
# Disable logging
sudo ufw logging off
# View firewall logs
sudo tail -f /var/log/ufw.log
journalctl -k | grep UFWIPv6のサポート
# Ensure IPv6 is enabled
sudo nano /etc/default/ufw
# Confirm: IPV6=yes
# IPv6 rules
sudo ufw allow from 2001:db8::/32 to any port 22ルールファイルを直接編集する
UFW ルール ファイルは /etc/ufw/ にあります。
# User rules
sudo nano /etc/ufw/user.rules # IPv4
sudo nano /etc/ufw/user6.rules # IPv6
# Rules executed before UFW rules
sudo nano /etc/ufw/before.rules
# Rules executed after UFW rules
sudo nano /etc/ufw/after.rules転送ルール
サーバーがゲートウェイまたはルーターとして機能する場合:
# Enable forwarding
sudo nano /etc/ufw/sysctl.conf
# Uncomment: net/ipv4/ip_forward=1
# Add NAT rules
sudo nano /etc/ufw/before.rules*filter の前に追加します。
# NAT
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
COMMIT# Allow forwarding
sudo ufw route allow in on eth1 out on eth0
sudo ufw reloadグラフィカルな管理
GUFW
# Install GUFW (graphical frontend for UFW)
sudo apt install gufw
# Launch
gufwGUFW は、以下をサポートする直感的なグラフィカル インターフェイスを提供します。
- ファイアウォールのオン/オフを切り替える
- プリセットセキュリティレベルの選択
- ルールの追加と管理
- アクティビティログの表示
セキュリティセンター
Ubuntu 26.04 のセキュリティ センターは、主にセキュリティ状態の可視性と許可を求める制御を目的としています。 ufw コマンド ラインまたは GUFW を使用して、ファイアウォール ルールの管理を続けます。
トラブルシューティング
# Check if UFW is running
sudo ufw status
# Check actual iptables/nftables rules
sudo iptables -L -n -v
sudo nft list ruleset
# Temporarily disable firewall to troubleshoot network issues
sudo ufw disable
# Re-enable after troubleshooting
sudo ufw enable
# View blocked connections
sudo tail -f /var/log/ufw.log
# Full reset
sudo ufw reset