SSH登录邮件提醒

admin 2026-01-05 18:01:51 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了利用msmtp和mutt工具配置SSH登录邮件提醒的方法,旨在应对暴力破解威胁。内容涵盖SMTP客户端安装与配置、登录报警脚本编写及白名单设置,通过修改sshrc文件实现登录时自动触发邮件通知。该方案能帮助运维人员实时掌握服务器登录动态,及时发现可疑访问并采取措施,有效提升服务器基础安全防护能力。 综合评分: 83 文章分类: 安全运营,解决方案,网络安全,终端安全


cover_image

SSH登录 邮件提醒

原创

大表哥吆

kali笔记

2025年9月22日 09:08 甘肃

作为网络安全和Linux运维者。时刻要做到知己知彼百战不殆。而SSH暴力破解一直是攻击者最常用的手段之一。倘若ssh被爆破成功,我们能否第一时间挽救自己的服务器呢?

本文我们讲配置ssh登录成功后,邮件提醒功能!方便自己随时随地掌控自己的服务器安全。

可以看到暴力破解为重灾区

接下来,我们需要用到 msmtp 和 mutt两个软件。

关于msmtp

msmtp 就是一个支持服务器配置文件的轻型 SMTP 客户端,配合 mutt 可以达到邮件发送的效果。 我们执行下面命令进行安装!

apt install msmtp mutt

接下来,我们在/usr/share/doc/msmtp/examples/msmtprc-system.example文件到/etc/msmtprc

cd /usr/share/doc/msmtp/examples/
cp msmtprc-system.example /etc/msmtprc

修改内容如下:

配置示例如下:

host smtp.qq.com #SMTP域名,例如QQ邮箱为smtp.qq.com
# Use TLS on port 465
port 465 #465为默认smtp tls端口,如果选择不加密一般改成25
tls on #是否开启TLS
tls_starttls off # STARTTLS是对纯文本通讯协议的扩展。它提供一种方式将纯文本链接升级为加密链接(TLS或SSL),而不是另外使用一个端口做加密通讯。我在使用过程中发现开启时大概率发送失败,可能和qq的smtp服务器有关,因此保持默认关闭即可。
from [email protected] #发送邮件的地址,以qq邮箱为例
auth on #启用验证
user [email protected] #用户名,以qq邮箱为例
password xxxxxxxx #这里填授权码或密码
# Syslog logging with facility LOG_MAIL instead of the default LOG_USER
syslog LOG_MAIL

接下来,我们发送一份邮件进行测试。

echo "这是一封测试邮件" | msmtp -v [email protected]

接下来,修改 /etc/Muttrc文件,在最后面添加内容如下:

set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="你想要显示的发送名称"
set [email protected]

添加提醒模板

在 /etc/ssh下生成新建文件ssh_alarm.sh 内容如下:

#!/bin/bash

if [ -z "${SSH_CONNECTION}" ];then
    echo'$SSH_CONNECTION:not exists'
    exit 1
fi

#定义变量
from_ip=`echo${SSH_CONNECTION} | awk '{print$1}'`
from_port=`echo${SSH_CONNECTION} | awk '{print$2}'`
server_ip=`echo${SSH_CONNECTION} | awk '{print$3}'`
user=`echo${LOGNAME}`
hostname_1=`echo${HOSTNAME}"("$server_ip")"`
server_time=`echo $(date +"%Y-%m-%d %R")`
e_mail=收件地址@qq.com

#IP白名单,192.168.1.1这个IP登录时不提示
ip_exit=`echo${from_ip}|cut -d "." -f 1,2,3`
if [ "${ip_exit}" == "192.168.1.1" ];then
exit 1
fi

#用户登录白名单,username这个用户登录时不提示
if [ "${user}" == "username" ];then
exit 1
fi

#Send mail
echo -e "
**********SSH登录警告**********\n

    登录主机:${hostname_1}\n
    登录用户:${user}\n
    登录时间:${server_time}\n
    登录IP:${from_ip}\n
    登录IP端口:${from_port}\n
    请注意核查是否可信登录,如非可信,请立即更换密匙和密码。

******************************"|mutt -s "服务器SSH登录警告"${e_mail}

添加软链接

接下来,需要配置一个 sshrc 文件,这个文件的作用是当连接 ssh 时自动执行文件内的脚本。 内容如下:

bash /etc/ssh/ssh_alarm.sh

登录测试

参考文章:https://blog.tama.guru/record/ssh_login_mail.html

更多精彩文章 欢迎关注我们


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:kali笔记 大表哥吆《SSH登录 邮件提醒》

SSH登录邮件提醒 网络安全文章

SSH登录邮件提醒

文章总结: 本文介绍了利用msmtp和mutt工具配置SSH登录邮件提醒的方法,旨在应对暴力破解威胁。内容涵盖SMTP客户端安装与配置、登录报警脚本编写及白名单
评论:0   参与:  0