SSH登录时自动邮件提醒

2020-01-17

有时候啊,别人会爆破ssh,登陆你的服务器,于是我就想了,如果有人登陆了SSH就给我发个邮件,我不就知道了! 以下方法适用OpenSSH,其他根据实际修改: 首先,确认你为OpenSSH使用了PAM,检查“/etc/ssh/sshd_config”,看下“UsePAM”的值是不是定义为“yes”。 接下来,利用pam_exec给OpenSSH做个钩子注册动作,编辑“/etc/pam.d/sshd”,在末尾添加一行:

session    optional     pam_exec.so seteuid /etc/ssh/login-notifications.sh

然后,创建个“login-notifications.sh”脚本来处理邮件发送,通常我会在“/etc/ssh/”下创建,内容如下:

#!/bin/sh
if [ "$PAM_TYPE" != "close_session" ]; then
    MAILTO='kn007@126.com'
    HOSTNAME=$(hostname)
    NOW=$(date)
    echo "Someone from $PAM_RHOST using $PAM_USER logged into $HOSTNAME on $NOW." | mail -s 'SSH Login Notification' $MAILTO
fi

记得把MAILTO值改为你的邮箱。最后为该脚本文件添加执行权限: chmod +x /etc/ssh/login-notifications.sh 用这种方式的好处是什么呢?