株式会社エスロジカル
株式会社エスロジカル
SSL証明書(DV、OV、EV)、セキュリティ、Web開発、Linux開発、Go言語

HOME > 技術ドキュメント > UFW・Fail2ban 設定(Ubuntu 24.04)

UFW・Fail2ban 設定(Ubuntu 24.04 LTS)


公開サーバーでは、SSH ブルートフォース攻撃や不正なアクセス試行が絶えず行われます。
UFW(ファイアウォール)と Fail2ban(自動 IP ブロック)を組み合わせることで、 基本的なサーバー保護を効率よく構築できます。
エスロジカルのセキュリティ対策サービスでも活用している設定を解説します。


# UFW のインストール(Ubuntu 24.04 には標準搭載)
sudo apt install -y ufw

# デフォルトポリシー(接続はすべてデフォルト拒否、送信は許可)
sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH を許可(有効化前に必ず許可すること)
sudo ufw allow ssh          # ポート 22
# または特定ポートの場合
sudo ufw allow 2222/tcp

# UFW を有効化
sudo ufw enable

# 状態確認
sudo ufw status verbose
# HTTP (80) と HTTPS (443) を許可
sudo ufw allow 'Nginx Full'   # Nginx の場合
sudo ufw allow 'Apache Full'  # Apache の場合

# 個別ポートで指定する場合
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 特定 IP のみ SSH を許可(管理用途)
sudo ufw allow from 203.0.113.10 to any port 22

# サブネットを許可
sudo ufw allow from 203.0.113.0/24 to any port 22

# ルールの削除
sudo ufw delete allow 80/tcp
# 30秒以内に6回以上接続した IP を一時ブロック
sudo ufw limit ssh

Fail2ban はログファイルを監視し、一定回数の認証失敗があった IP を自動的に iptables/UFW でブロックします。

sudo apt update
sudo apt install -y fail2ban

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

/etc/fail2ban/jail.conf は直接編集せず、 /etc/fail2ban/jail.local に上書き設定を書きます。

sudo nano /etc/fail2ban/jail.local
[DEFAULT]
# 自分のIPは絶対にブロックしない
ignoreip = 127.0.0.1/8 ::1 203.0.113.10

# 検出ウィンドウ(秒)
findtime  = 600

# この回数失敗したらブロック
maxretry  = 5

# ブロック時間(秒、-1 で永続)
bantime   = 3600

# UFW でブロック
banaction = ufw

# SSH の保護
[sshd]
enabled  = true
port     = ssh
logpath  = %(sshd_log)s
maxretry = 3
bantime  = 86400
sudo systemctl restart fail2ban

# 状態確認
sudo fail2ban-client status
sudo fail2ban-client status sshd
# jail.local に追記

# Apache 認証失敗
[apache-auth]
enabled  = true
logpath  = /var/log/apache2/error.log
maxretry = 5

# Apache への不審なスキャン
[apache-badbots]
enabled  = true
logpath  = /var/log/apache2/access.log
maxretry = 2

# Nginx 認証失敗
[nginx-http-auth]
enabled  = true
logpath  = /var/log/nginx/error.log
maxretry = 5
# ブロック中の IP 一覧
sudo fail2ban-client status sshd

# 特定の IP を手動でアンバン(解除)
sudo fail2ban-client set sshd unbanip 203.0.113.50

# ログ確認
sudo tail -f /var/log/fail2ban.log

エスロジカルでは、Fail2ban 設定・UTM 設定・ファイアウォール構築など サーバーセキュリティの構築・運用支援を承っています。
また、HTTPS(SSL/TLS)の導入は最も基本的なセキュリティ対策の一つです。 SSL証明書の購入 もエスロジカルにお任せください。

セキュリティ対策のご相談はこちら / SSL証明書一覧


← 技術ドキュメント一覧へ戻る