SSH 和 SFTP 连接的电子邮件警报

SSH 和 SFTP 连接的电子邮件警报

查看了有关登录时电子邮件提醒的其他问题,但有两个问题:

通过 SFTP 连接的用户是否也会触发警报?(我之前尝试过,只有在使用 SSH 而不是使用 SFTP 进行远程传输时才会触发电子邮件)

其他答案说,当通过 SSH 使用 -n 开关时,电子邮件警报将不起作用,有没有办法解决这个问题?

谢谢。

答案1

基本上,我会使用 .bashrc 中的某些内容来触发邮件发送命令。使用包含和权限技巧,您可以让用户无法编辑(将 .bashrc 提供给 root,使其包含 .bashrc_priv,然后将其提供给用户以供其自行配置)。

.bashrc,属于root

# trigger mail here
[ -f "~/.bashrc_priv" ] && . ~/.bashrc_priv

.bashrc_priv,属于$USER

# Whatever you want in your users' bashrc ; they can edit this file.

我记得,SFTP 触发 bash 登录过程。

如果您使用某些特定的东西来触发警报(某些包/应用程序),请告诉我。

答案2

您可以使用 rsyslog 进行设置,您可能正在运行它。它包含一个用于发送电子邮件的输出模块,您可以设置一条规则,当记录的消息匹配时,向某个地址发送电子邮件。以下是一个例子:

$ModLoad ommail
$ActionMailSMTPServer mail.example.net
$ActionMailFrom [email protected]
$ActionMailTo [email protected]
$template mailSubject,"User logged into %hostname%"
$template mailBody,"RSYSLOG Alert\r\nmsg='%msg%'"
$ActionMailSubject mailSubject
$ActionExecOnlyOnceEveryInterval 60
if $msg contains 'session opened for user' then :ommail:;mailBody

您可以将其放入/etc/rsyslog.d/notify.conf,根据需要进行自定义,然后运行service rsyslog restart。您应该收到如下电子邮件:

Date: Mon, 15 Jul 2013  2:30:01 UT
From: <[email protected]>
To: <[email protected]>
Subject: User logged into localhost
X-Mailer: rsyslog-immail

RSYSLOG Alert
msg=' pam_unix(cron:session): session opened for user root by (uid=0)'

您可以在以下位置阅读有关此功能的更多信息:http://www.rsyslog.com/doc/ommail.html

相关内容