登录Linux系统时邮件告警

背景

由于服务器曾被人爆破密码登录,登录成功后损坏了服务器数据,为更好的判断是否有异常登录,因此需要在有用户登录Linxu系统时自动进行邮件告警
本人使用的是Linux的PAM模块、搭配QQ邮箱实现邮件告警,系统是CentOS7.6,下面是操作步骤

开搞

QQ邮箱开启SMTP服务和生成授权码

1.登录QQ邮箱,点击设置,在设置菜单下找到账号
在这里插入图片描述
2.找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”点击”开启服务“
在这里插入图片描述
3.身份验证通过后,可以得到授权码一个
在这里插入图片描述
此时,我们已开启QQ邮箱的SMTP服务并得到登录QQ邮箱的授权码

编写脚本

1.创建1个脚本,例如 login_alert.sh,用于发送邮件告警,并确保脚本具有执行权限

touch /usr/local/bin/login_alert.sh
chmod +x /usr/local/bin/login_alert.sh

2.编辑脚本并输入如下内容

vi /usr/local/bin/login_alert.sh
#!/bin/bash

# SMTPS服务和端口
SERVER="smtp.qq.com:465"

# 邮箱认证信息:QQ邮箱和QQ邮箱授权码
USERNAME="xxxxxx@qq.com"
PASSWORD="rpixxxxxxillcbbgc"

# 发送邮箱,主送邮箱和抄送者邮箱信息
SENDER="xxxxxx@qq.com"    #发送邮箱
TO="xxxxxx@qq.com"    #主送邮箱
CC=""    #抄送邮箱

# 邮件信息
F_date=$(date +"%Y-%m-%d %H:%M:%S")    # 获取当前时间,并按照指定格式格式化
HostName=$(hostname)    #登录主机名
BeiZhu=$PAM_TYPE    #$PAM_TYPE 是一个PAM中的环境变量,用于指示PAM模块当前的类型

# 邮件主题
SUBJECT="成功登录系统提示"    
# 邮件正文
BODY="<html><body>
    <p>以下是刚登录系统的日志,<span style='color:red;'>请确认是本人操作:</span></p>
    <table border='1'>
      <tr>
        <th>登录用户</th>
        <th>登录时间</th>
        <th>源IP</th>
        <th>主机名</th>
        <th>备注</th>
      </tr>
      <tr>
        <td>$PAM_USER</td>
        <td>$F_date</td>
        <td>$PAM_RHOST</td>
        <td>$HostName</td>
        <td>$BeiZhu</td>
      </tr>
    </table>
    <p></p>
    <p>说明:此邮件仅作登录系统提醒!!!</p>
  </body>
</html>"

# 构造电子邮件,有抄送时添加 Cc: $CC\n 到 $BODY 之前
MESSAGE="Subject: $SUBJECT\nMIME-Version: 1.0\nContent-type: text/html\nFrom: $SENDER\nTo: $TO\n$BODY"

# 发送邮件
if [ "$PAM_TYPE" != "close_session" ];then
    # 有抄送时添加 --mail-rcpt "$CC" \
    curl --url "smtps://$SERVER" \
         --ssl-reqd \
         --mail-from "$SENDER" \
         --mail-rcpt "$TO" \
         --user "$USERNAME:$PASSWORD" \
         --insecure \
         --upload-file <(echo -e "$MESSAGE")
fi
exit 0    #用于表示脚本正常结束,避免脚本执行异常导致登录系统失败

3.配置PAM模块

vi /etc/pam.d/sshd

在 /etc/pam.d/sshd 追加如下信息

session required pam_exec.so /usr/local/bin/login_alert.sh

4.重启SSHD服务

systemctl restart sshd

登录系统验证是否邮件告警

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值