想给服务器加一个功能,每当有人SSH成功登录都给管理员发封邮件作为提醒。 同时若有人暴力破解密码达到一定次数封禁对方IP数小时并且同时也发邮件提醒。

服务器发邮件用到了sendmail包:

首先检查OpenSSH是否开启了PAM,检查”/etc/ssh/sshd_config” 看下UsePAM是否非yes并且未被注释掉,我的服务器默认是正确的

然后创建一个login-notify.sh文件,我放在了/etc/ssh/,填入下边内容:

其中sender和recepient为发件用的地址和收件邮箱, 根据需求更改

然后赋予脚本执行权限:

最后一步将下面一行语句添加到/etc/pam.d/sshd

其中optional指的是假设脚本执行不成功,SSH也可以成功登录。这样写有助于测试方便,可以将optional换为required,但是注意,假设脚本有问题不能成功执行,那么就永远不能登录SSH了。

 

登录错误的提示使用到了fail2ban:

在安装好fail2ban后默认配置已经能够非常好的抵御SSH扫描攻击,我没记错的话密码输入3次就自动将IP拉黑4小时。所以建议所有服务器都安装这个工具,哪怕是不愿意去手动配置的情况下,直接运行上边一行命令就好。

在/etc/fail2ban复制jail.conf一份命名为jail.local并打开,

然后里边bantime,maxretry等可以修改,最重要是修改destemail和sender,然后保存。之后执行以下命令刷新:

 

 

Reference:

https://askubuntu.com/questions/179889/how-do-i-set-up-an-email-alert-when-a-ssh-login-is-successful

 

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.