关于每个与 ​​Linux 服务器的 SSH 连接的电子邮件通知

关于每个与 ​​Linux 服务器的 SSH 连接的电子邮件通知

我希望收到有关与 Linux(Debian)服务器的每个 SSH 连接的通知。

已经看到一些方法,建议将邮件命令添加到自己的 .bashrc 中,但这种方法似乎不能涵盖所有可能的情况。

关于 SSH 连接进行此类横向通知的最佳做法是什么?

答案1

既然你明确表示希望每个人都有自己的电子邮件成功的验证,pam_notify是一个很好的候选模块。

将其作为一行添加到session required您或同等文件的末尾/etc/pam.d/sshd

答案2

最好的做法是不要这样做,除非你真的必须(这台机器的安全性非常重要)。

如果你真的必须这样做,您不想摆弄人们可以更改的 shell .rc 文件 - 这是一个不成熟的解决方案。

正确的方法可能是使用 Linux 内置的审计功能(请参阅auditd及其配置文件auditd.conf),但我对 Linux 中的审计功能的经验非常有限(特别是我不确定审计子系统是否可以轻松发送电子邮件——但我知道你可以在 FreeBSD 上轻松做到这一点而没有太多麻烦)。

不太正确但仍然不错的方法是使用始终成功的 PAM 模块并发出一封电子邮件说明谁试图登录。

最不合适但至少你的收件箱还没满的方法是将你的auth.log文件或类似文件分批处理,然后每晚通过电子邮件发送给某人。如果你只需要一个基本记录,那么这就是我的选择:在活动量很大的系统中,根据我的其他建议生成的电子邮件数量会非常多。

答案3

您可以定期监视 /var/log/auth.log,甚至可以更好地使其成为远程日志记录,以便攻击者无法抹去成功登录的痕迹。

答案4

我们通过创建一个文件 /etc/profile.d/notify.sh 来实现这一点,文件内容如下:

/bin/sh #!/bin/sh 复制代码

发件人="[电子邮件保护]
收件人="[电子邮件保护]
subject="使用特权帐户登录"
消息=“`env`”
    回显“$message”| mail -s“$subject”-r“$sender”-S smtp=mail.example.com“$recepient”

相关内容