2017年6月17日土曜日

Zabbixを使ってWindowsとLinuxのログイン失敗を監視する

近年、セキュリティ上の問題から、不正アクセスへの対策は必要不可欠になっている。WindowsやLinuxであれば、ログイン失敗のログはOS標準機能にて出力されているので、そのログをZabbixにて監視させることで、予期しない不正ログインをリアルタイムに捉えることができる。

今回はWindowsとLinuxでログイン失敗した際に、Zabbixを使って検知する方法を記載する。動作確認は以下OSで実施した。

・Windows:Windows Server 2016 (他バージョンも同様に対応可能)
・Linux:CentOS 6、7 (RHELも同様に対応可能)

Windowsの場合

Windowsではログイン失敗時に、セキュリティイベントログに以下が記録される。

------------------------------
失敗の監査 2017/05/30 21:15:28 Microsoft Windows security auditing. 4625 ログオン
------------------------------

上記ログのイベントID 4625をZabbixで検知させる。アイテムとトリガーを以下のように設定すればよい。

◆アイテムを設定
・名前:Eventlog Security
・タイプ:Zabbixエージェント(アクティブ)
・キー:eventlog[Security,,,,4625,,skip]
・データ型:ログ
・更新間隔(秒):30
・ヒストリ保存期間(日):7
・アプリケーション:<任意>


◆トリガーを設定
・名前:Eventlog Security
・条件式:{Template OS Windows:eventlog[Security,,,,4625,,skip].strlen()}>0
・障害イベントを継続して生成:チェック
・深刻度:軽度の障害


Linuxの場合

Linuxではログイン失敗時に、/var/log/secureに以下が記録される。

------------------------------
May 30 21:53:28 t3023ce72 sshd[28426]: Failed password for root from 192.168.11.81 port 62145 ssh2
↑★sshログイン失敗

May 30 21:51:39 t3023ce72 login: FAILED LOGIN 1 FROM tty1 FOR root, Authentication failure
↑★コンソールログイン失敗
------------------------------

上記ログに出力される"Failed password"と"FAILED LOGIN"をZabbixで検知させる。アイテムとトリガーを以下のように設定すればよい。

◆アイテムを設定
・名前:secure
・タイプ:Zabbixエージェント(アクティブ)
・キー:log[/var/log/secure,"Failed password|FAILED LOGIN",,,skip]
・データ型:ログ
・更新間隔(秒):30
・ヒストリ保存期間(日):7
・アプリケーション:<任意>


◆トリガーを設定
・名前:secure
・条件式:{Template OS Linux:log[/var/log/secure,"Failed password|FAILED LOGIN",,,skip].strlen()}>0
・障害イベントを継続して生成:チェック
・深刻度:軽度の障害


実際に検知した結果

実際にログイン失敗をしてみると、Zabbixのダッシュボードに障害として上がることが確認できた。