web-dev-qa-db-ja.com

Linuxサーバーへの各SSH接続に関する電子メール通知

Linux(Debian)サーバーへの各SSH接続について通知を受け取りたいのですが。

メールコマンドを独自の.bashrcに追加することを提案するいくつかの方法をすでに見ましたが、このアプローチはすべての可能なケースをカバーしているわけではないようです。

SSH接続についてこのような横断通知を行うためのベストプラクティスは何ですか?

5
Fedir RYKHTIK

successful認証ごとに電子メールが必要であることを明確にしたので、 pam_notify はこのための優れた候補モジュールです。

session requiredまたは同等のファイルの最後に/etc/pam.d/sshd行として追加します。

10
Jeff Ferland

あなた[〜#〜]本当に[〜#〜]でない限り、ベストプラクティスはしないでくださいする必要があります(このマシンのセキュリティは非常に重要です)。

[〜#〜]本当に[〜#〜]する必要がある場合は、必要ありません人々が変更できるShell.rcファイルをいじくり回したい-それは中途半端な解決策です。

正しい方法は、おそらくLinuxに組み込まれている監査機能を使用することです( auditd のマニュアルページとその構成ファイル auditd.conf を参照) 、しかし私はLinuxの監査機能の経験が非常に限られています(特に、監査サブシステムが電子メールの送信を容易にするかどうかはわかりません-FreeBSDでもそれほど問題なくできることはわかっています)。

あまり正しくないが、それでもまともな方法は、常に成功し、誰がログインしようとしたかを示す電子メールを送信するPAMモジュールを使用することです。

少なくとも正しいが、少なくとも受信トレイが完全ではない方法は、auth.logファイルまたは同等のファイルをまとめて、毎晩誰かに電子メールで送信することです。必要なのが基本的な記録だけである場合、これが私の選択です。他の提案から生成される電子メールの量は、アクティビティが多いシステムではひどいものになります。

6
voretaq7

/var/log/auth.logを定期的に監視するか、リモートロギングにすることで、攻撃者がログインの成功の痕跡を一掃できないようにすることができます。

4
pQd

この質問はボールトから持ち出されたので、私の傾向は/var/log/auth.log(またはディストリビューション/ syslog構成の適切なファイル)に対して swatch を実行し、電子メールで応答するように構成することです。 sshd.*Accepted.*が出現するたびに、これはパスワードベースのログインとキーベースのログインの両方をキャッチする必要があるためです。

Feb 21 10:06:44 lory sshd[24414]: Accepted publickey for username from ::1 port 39197 ssh2
Feb 21 10:08:16 bill sshd[20643]: Accepted password for username from ::1 port 46835 ssh2

これは、設定ファイルで行うことができます。たとえば、

watchfor /sshd.*Accepted.*/
               mail [email protected],subject="SSH login on Host foo"

および例: swatch -c /the/above/file /var/log/auth

3
MadHatter
これを行うには、次の内容のファイル/etc/profile.d/notify.shを作成します。
 
#!/ bin/sh 
 
 sender = "[email protected]" 
 recepient = "[email protected]" 
 subject = "特権アカウントのログオンが使用されました" 
 message = "ʻenv`" 
 echo "$ message" | mail -s "$ subject" -r "$ sender" -S smtp = mail.example.com "$ recepient" 
2
Antonio

私はあなたが探していることをするGithubGistに bashスクリプト を公開しました。ユーザーが新しいIPアドレスからログインするたびに、システム管理者に電子メールを送信します。厳重に管理された本番システムで、スクリプトを使用してログインを精査します。ログインが危険にさらされた場合、異常なログイン場所について通知が届き、深刻な損害を引き起こす前にシステムからロックアウトする機会があります。

スクリプトをインストールするには、sysadminメールでスクリプトを更新し、/etc/profile.d/にコピーします。

0
Elliot B.

私は最近、この問題に対する独自のソリューションを開発しました。これには、さまざまなサービス(sshdを含む)のログファイルを監視し、特定のユーザーが特定のサービスにアクセスしたときに単一の電子メールに通知することが含まれます。

私はそれを認証モニターと呼んでいます、そしてあなたはそれについてのより多くの情報をここで見つけることができます: http://bwyan.dk/?p=1744

これがあなたが探しているものになることを願っています。

0