ルートログイン時のZabbixアラート

ルートログイン時のZabbixアラート

Zabbix を使い始めましたが、/etc/passwd などが変更されるとアラートが出されることがわかりました。

「ルートログイン時のzabbixアラート」をグーグルで検索してもヒントが何も出てきません。ルートログイン時にアラートを出すにはどうしたらいいでしょうか?

答え1

安全ではないため、ルート ログインを完全に許可しないでください。通常のユーザー ログインのみを許可し、ログインすると、ユーザーは を使用してsudoルートとしてコマンドを実行できます。

そうは言っても、なぜルートログインだけをチェックするのでしょうか? 一般ユーザーのログインをチェックすることも同様に重要です。インターネット上のボットは、一般ユーザーに対して常にブルートフォース攻撃を実行しています。

いずれにしても、/var/log/auth.logSSHログインが成功したかどうかを確認する必要があります。ログファイルを確認するには、アクティブなZabbixエージェントチェックが必要です。そのため、まずアクティブチェックが正しく機能していることを確認する必要があります(このブログ投稿)。

次に、Zabbix ユーザーは (デフォルトでは) ユーザーとして実行されています。そのため、そのファイルは root とグループ のユーザーのみが読み取り可能なため、zabbixを読み取ることはできません。そのため、ユーザーをグループに追加することができます。これにより、Zabbix は多くのログ ファイルを読み取ることができます (/var/log/auth.logadmzabbixadmソース)。

最後に、Zabbix フロントエンドで監視項目とトリガーを作成する必要があります。

アイテムを作成します:

Name: SSH successful authentication
Type: Zabbix agent (active)
Key: log[/var/log/auth.log,"Accepted .*",,,skip,\0]

そのアイテムのトリガーを作成します。

Name: Successful SSH authentication on {HOST.NAME}
Expression: {Template OS Linux - Extra:log[/var/log/auth.log,"Accepted .*",,,skip,\0].strlen()}>0 and {Template OS Linux - Extra:log[/var/log/auth.log,"Accepted .*",,,skip,\0].nodata(5m)}=0

項目内の正規表現に注意してくださいAccepted .*。これは、パスワード認証や公開鍵認証など、すべての種類の SSH 認証に一致するはずです。もちろん、あなたの場合は、正規表現を変更して、ルートからのログインのみに一致させることができます。しかし、前述したように、これはセキュリティの観点からは意味がありません。

また、 を使用していることにも注意してくださいlog[...]。これにより、正規表現に一致する責任ログ行が、Zabbix が送信する通知メールに含まれるようになります。こうすることで、どのユーザーが認証されたかをメールで確認できます。

答え2

Debian ベースのシステムでは、/var/log/auth.log次のようにファイルを解析する必要があります。

log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>]

https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/zabbix_agent

つまり、本質的には:

log.count[/var/log/auth.log,*root*Accepted,,,skip]

関連情報