关于IT运维技术的
最佳实践博客网站

linux下如何设置SSH登录后有邮件Email提醒通知

服务器上启用 SSH 服务使得该服务器暴露到互联网中,为黑客攻击提供了机会,尤其是当 linux服务器 还允许root 直接访问时。 linux服务器应该为每次 SSH 登录成功尝试配置一个自动的 email 警告。

linux服务器的所有者会得到各种 SSH 服务器访问日志的通知,例如登录者、登录时间以及来源 IP 地址等信息。这是一个对于服务器拥有者来说,保护服务器避免未知登录尝试的重要安全关注点。这是因为如果黑客使用暴力破解方式通过 SSH 来登录到你的 linux服务器的话,后果很严重。在本文中,我会解释如何在 CentOS 6、 CentOS 7、 RHEL 6 和 RHEL 7上为所有的 SSH 用户登录设置一个 email 警告。

1、针对 linux服务器 上所有能登陆SSH的用户(root和普通用户)

编辑 vim /etc/bashrc 在结尾处添加

echo 'ALERT - Root Shell Access (root.aliyun.cnhzz.com) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" admin@cnhzz.com

2、只针对 root 用户生效

编辑 vim .bashrc 在结尾处添加

echo 'ALERT - Root Shell Access (root.aliyun.cnhzz.com) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" admin@cnhzz.com

3、你也可以选择性地让警告只对特定的普通用户生效(例如bin2u):

编辑 vim  /home/bin2u/.bashrc 在结尾处添加

echo 'ALERT - Root Shell Access (root.aliyun.cnhzz.com) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" admin@cnhzz.com

发邮件进行测试的后可能会有的人报错。

send-mail: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
 send-mail: warning: inet_protocols: configuring for IPv4 support only
 postdrop: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
 postdrop: warning: inet_protocols: configuring for IPv4 support only

查看当前inet_protocols

# /usr/sbin/postconf | grep inet_protocols
inet_protocols = all

修改成ipv4

# vi /etc/postfix/main.cf
inet_protocols = all
改为
inet_protocols = ipv4

直接通过外部SMTP发邮件 (直接抛弃sendmail和postfix)

有的朋友肯定会在发邮件这里纠结一段时间,会出现各种杂七杂八的错误一时半会也解决不了。因此使用外部SMTP发邮件是个不错的方法。

#vi /etc/mail.rc 
set from=123456@139.com
set smtp=smtp.139.com
set smtp-auth-user=123456
set smtp-auth-password=sbsbsbsb
set smtp-auth=login

登陆后,你的接受的邮箱会收到类似的邮件。
ssh-mail

赞(1)
未经允许不得转载:菜鸟HOW站长 » linux下如何设置SSH登录后有邮件Email提醒通知

留下你的脚印

  Subscribe  
提醒