HOME > 技術ドキュメント > UFW・Fail2ban 設定(Ubuntu 24.04)
UFW・Fail2ban 設定(Ubuntu 24.04 LTS)
公開サーバーでは、SSH ブルートフォース攻撃や不正なアクセス試行が絶えず行われます。
UFW(ファイアウォール)と Fail2ban(自動 IP ブロック)を組み合わせることで、
基本的なサーバー保護を効率よく構築できます。
エスロジカルのセキュリティ対策サービスでも活用している設定を解説します。
UFW(Uncomplicated Firewall)の設定
基本操作
# 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
Webサーバーのポート許可
# 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 からのみアクセスを許可する
# 特定 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
レート制限(SSH への接続頻度を制限)
# 30秒以内に6回以上接続した IP を一時ブロック sudo ufw limit ssh
Fail2ban の設定
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
Apache / Nginx の保護
# 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 の確認と手動解除
# ブロック中の 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証明書の購入 もエスロジカルにお任せください。
