AI による概要 Zabbixに対するログイン攻撃(ブルートフォース攻撃など)は、フロントエンドの標準機能による一定回数の失敗時の自動ロックダウンと、Webサーバー(Apache/Nginx)やFWでのIP制限を組み合わせて防御します。 [1, 2]1. Zabbix標準のログイン保護機能Zabbixはデフォルトで総当たり攻撃に対する保護機能が有効になっています。 [1]2. 失敗回数のしきい値設定3. Webサーバー(Apache / Nginx)でのIP制限インターネット経由でZabbixを公開している場合は、特定のIPアドレス(管理者や社内ネットワーク)からのみアクセスを許可する設定が最も効果的です。
- Apacheの場合 (
/etc/httpd/conf.d/zabbix.confなど)<Directory "/usr/share/zabbix"> # 全てのアクセスを拒否してから許可する Require all denied # 管理者のIPアドレスを許可 Require ip 192.168.0.0/24 Require ip 203.0.113.10 </Directory>
- Nginxの場合 (Zabbix用confファイル)
location /zabbix { # 管理者のIPアドレスを許可 allow 192.168.0.0/24; allow 203.0.113.10; # その他は全て拒否 deny all; # FastCGIなどの設定 }4. 攻撃元IPの特定とログ確認攻撃の状況を把握するには、以下のログや画面を確認します。
- ログイン成功時の通知: ログイン成功時に「前回のログイン試行に失敗したIPアドレス」が表示されるため、該当IPの確認が可能です。
- 監査ログ: [レポート] > [監査ログ] から、ログイン試行の履歴(成功・失敗・対象ユーザー)を確認できます。
- OSログ: Zabbix自体ではなく、Webサーバー側(例:
/var/log/httpd/access_logや/var/log/nginx/access.log)のアクセスログを監視・解析することで、攻撃元のIPを特定し、ファイアウォール(FW)やセキュリティグループで直接ブロックすることが推奨されます。 []詳細なセキュリティのベストプラクティスについては、Zabbix公式のセキュリティベストプラクティス を参照してください。
ZabbixのWeb管理画面(フロントエンド)へのログイン失敗を検知してFail2banでIPブロックを行うには、Zabbixが生成するログイン失敗のログをFail2banで監視する必要があります。 [1, 2, 3]具体的なブロック手順は以下の通りです。1. Zabbixのログレベル変更textDebugLevel=4コードは注意してご使用ください。設定後、Zabbixサーバーを再起動します。2. Fail2banのフィルター(Filter)設定ログの中から「ログイン失敗」と「接続元IPアドレス」を正規表現で抽出するフィルターファイルを作成します。/etc/fail2ban/filter.d/zabbix-web.confを新規作成し、以下を記述します。 [1]text[Definition] failregex = ^.*] Incorrect user name or password or account is temporarily blocked for.*from <HOST>$ ignoreregex =コードは注意してご使用ください。3. Fail2banのジェイル(Jail)設定text[zabbix-web] enabled = true port = http,https filter = zabbix-web logpath = /var/log/zabbix/zabbix_server.log maxretry = 5 findtime = 600 bantime = 1800コードは注意してご使用ください。(上記は10分間に5回ログイン失敗した場合、30分間アクセスを遮断する設定例です) [1]4. Fail2banの再起動設定を反映するため、Fail2banを再起動します。 [1]bashsudo systemctl restart fail2banコードは注意してご使用ください。設定が完了したら、実際にわざとログインを数回失敗させてみて、Fail2banのログ(/var/log/fail2ban.log)にブロック(Ban)記録が残るか確認してください。
【注意事項】
Zabbixのログレベルを4にするとディスク消費が激しくなるため、本番環境では注意してください。Fail2banの詳細は Fail2banとは – IT用語辞典 e-Words も参考にしてください。 [1]
