目次
概要
Linuxサーバーで突然 SSH や HTTP にアクセスできなくなる場合、fail2ban による誤BAN(誤検出) が原因のことがあります。
これは、特定IPアドレスからのアクセスを「不正ログイン攻撃」と誤判定し、iptables / firewalld により通信を遮断する仕組みです。
特に、
- SSHで何度かパスワードを間違えた
- nginx / Apache に対して短時間で多くのリクエストを送った
場合などに発生します。
あわせて読みたい


【完全版】SSHエラー大全|接続できない原因と解決方法まとめ
SSH(Secure Shell)はLinuxサーバー管理に欠かせないリモート接続の手段ですが、実際の運用では「接続できない」「認証に失敗する」「タイムアウトする」など、さまざ…
主な原因と仕組み
fail2banの動作概要
fail2banはログ(例:/var/log/secure
, /var/log/nginx/error.log
)を監視し、一定回数の失敗を検出すると IP を一時的にBAN(遮断)します。
設定ファイル:
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
原因別の確認と解除方法
原因① fail2ban が IP を BAN している
状況
SSH や HTTP に接続できず、サーバー側から ping
や curl localhost
は通るが、外部PC からの接続が拒否される場合。
確認コマンド
sudo fail2ban-client status
正常例
Status
|- Number of jail: 2
`- Jail list: sshd, nginx-http-auth
異常例(SSHがブロックされている場合)
sudo fail2ban-client status sshd
出力例:
Status for the jail: sshd
|- Filter
| `- Currently failed: 0
| `- Total failed: 5
`- Actions
`- Banned IP list: 192.168.1.10
Banned IP list
に自分の接続元IPがある場合、fail2banによる遮断が確定です。
対処方法(IPの解除)
sudo fail2ban-client set sshd unbanip 192.168.1.10
解除確認:
sudo fail2ban-client status sshd
# Banned IP list: (空)になっていればOK
SSHに入れない場合は「コンソール」または「クラウドのシリアルコンソール」からログインして上記コマンドを実行します。
原因② fail2banサービスが誤設定で過剰検出している
状況
短時間で大量のアクセスがあるサイトやAPIサーバーで誤BANが頻発する。
確認コマンド
sudo cat /etc/fail2ban/jail.d/sshd.conf
代表的な設定項目
設定項目 | 説明 | 推奨値 |
---|---|---|
bantime | BAN される時間(秒) | 600(10分)など短めに |
findtime | 検出時間範囲 | 300(5分)程度 |
maxretry | 失敗回数の閾値 | 5〜10回程度 |
対処方法
設定ファイルを調整後、fail2ban を再起動します。
sudo vi /etc/fail2ban/jail.local
# 例:
[sshd]
enabled = true
bantime = 600
findtime = 300
maxretry = 5
sudo systemctl restart fail2ban
原因③ fail2ban のルールが firewall に残っている
状況
fail2ban 停止後も通信が遮断され続ける。
確認コマンド(firewalld使用時)
sudo firewall-cmd --list-all
異常例
rich rules
に fail2ban が追加したルールが残っている。
対処方法
sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.10" reject'
sudo firewall-cmd --reload
iptables使用環境では:
sudo iptables -L -n --line-numbers | grep DROP
sudo iptables -D INPUT <番号>
原因④ 自動的に再BANされてしまう
状況
手動で unban しても、すぐ再び BAN される。
対処方法
- 自分のIPをホワイトリスト登録
/etc/fail2ban/jail.local
に以下を追加:ignoreip = 127.0.0.1/8 192.168.1.10
- fail2ban再起動:
sudo systemctl restart fail2ban
これで自分のIPが除外され、再BANされなくなります。
トラブル対応表
現象 | 主な原因 | 対処コマンド |
---|---|---|
SSH / HTTP に接続できない | fail2ban により IP が BAN | fail2ban-client status / unbanip |
何度も再BANされる | 自分のIPが除外設定されていない | /etc/fail2ban/jail.local に ignoreip 追加 |
BAN解除後も通信不可 | firewall にルールが残存 | firewall-cmd --remove-rich-rule または iptables -D |
サイト全体が頻繁に遮断される | fail2ban の検知条件が厳しすぎる | bantime ・maxretry の緩和 |
SSH接続が全くできない | クラウド上で自分をBAN | シリアルコンソールからログインして解除 |
まとめ
fail2ban はサーバー保護に非常に有効ですが、設定が厳しすぎると正規ユーザーも誤ってブロックしてしまいます。
誤BANが疑われるときは次の手順を順に確認しましょう。
fail2ban-client status
で BAN 状況確認unbanip
で該当IPを解除jail.local
で閾値を調整ignoreip
で自分のIPを除外
あわせて読みたい


Nginx/Apache が起動できないときの確認手順
Web サーバーとして広く使われる Nginx や Apache (httpd) は、設定変更や環境の影響で起動に失敗することがあります。「起動コマンドを実行してもエラーが出る」「サー…
あわせて読みたい


Nginx が 502 Bad Gateway を返すときの原因と対処
概要 Nginx をリバースプロキシとして利用する際に、クライアントに 502 Bad Gateway が返ることがあります。これは 「Nginx がバックエンドサーバーと通信できなかった…