すべてのログイン試行の監視

すべてのログイン試行の監視

数週間前、私はユーザーが自分のサーバーにログインしたときに私に電子メールを送信するスクリプトを書くのが良い考えだと思いました。

そのため、完全に機能するスクリプトを提供し、notifyLogin.sh各ユーザーのスクリプトからそれを呼び出すことにしました .bash_login

ssh -tしかし、誰かがスイッチを使って自分のサーバーにログインするために使用できるシェルを選択できることを発見しました。たとえば、

ssh user@myserver -t sh

このように.bash_login実行されないと実行されません/etc/profile

notifyLogin.shシェルの種類に関係なく、ログイン時にそれを呼び出す方法はありますか? (常に動作する必要があります)

ベストアンサー1

車輪を再発明しないで、rsyslogすべてがあなたのためになされるようにしなさい。ファイルに到達する前にsyslogメッセージのパターンが一致した場合は、電子メールを送信できます。

以下に電子メールアドレスとSMTPサーバーを設定して入力または/etc/rsyslog.conf入力/etc/rsyslog.d/します。rsyslogの再起動

$ModLoad ommail
$ActionMailSMTPServer localhost
$ActionMailFrom [email protected]
$ActionMailTo [email protected]
$template mailSubject,"Login Alert on %hostname%"
$template mailBody,"\n\n%msg%"
$ActionMailSubject mailSubject
$ActionExecOnlyOnceEveryInterval 1
# the if ... then ... mailBody mus be on one line!
if $msg contains 'session opened for user' then :ommail:;mailBody

メッセージの文字列と一致すると、 rsyslog電子メールがトリガーされます。session opened for user

/var/log/auth.logメッセージを表示し、sshdパターンとして使用できる他の内容を確認できます。

源泉:rsyslog メール

おすすめ記事