14 三月, 2025

thumbnail

SSH登录发送告警信息到邮箱

前言

自从开放端口到公网后,每次查看SSH日志,总有一堆国外肉鸡在疯狂访问,于是想搞个远程登录报警(可能也什么卵用,但至少被爆破后能知道,可以及时修改密码)。

原理

将自动发送邮件的脚本放到.bashrc中,一旦通过SSH登录,就会自动运行,并获取登录信息发送到对应邮箱上。

方法

步骤一:获取邮箱的应用密码(此处以QQ邮箱为例)

参考链接:https://laowangblog.com/qq-mail-smtp-service.html

步骤二:编写邮件发送脚本,保存为send_email.py

#!/usr/bin/python  # -*- coding: UTF-8 -*-  import smtplib  from email import encoders  from email.header import Header  from email.mime.text import MIMEText  from email.utils import parseaddr, formataddr  import sys    def send_mail(dtime,duser,dip,dhostname):      #基础信息      # from_addr = input("From:")      from_addr = "[email protected]" # 发送邮件地址      password = "xxxxx"  # 邮箱应用密码,步骤一获取      #to_addr = from_addr      to_addr = ["[email protected]"] # 接收邮件地址      # password = raw_input("Password:")      # to_addr = input("To:")      smtp_server = "smtp.qq.com"      mimetex = '[server0x]您的机器:',dhostname,',于:',dtime,',被IP: ',dip,' 以账号:',duser,' 进行登录,请确认是否是本人。'      #构造邮件      msg = MIMEText(''.join(mimetex), 'plain', 'utf-8')      msg['From'] = "{}".format(from_addr)      msg['To']   = ",".join(to_addr)      msg['Subject'] = Header("来自Server Monitor", 'utf-8').encode()      #发送邮件      server = smtplib.SMTP_SSL(smtp_server, 465)      #server.set_debuglevel(1)      server.login(from_addr, password)      server.sendmail(from_addr, to_addr, msg.as_string())      server.quit()    if __name__ == "__main__":      send_mail(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])

步骤三:获取登录信息,并调用邮件脚本,保存为sshrc.sh

#!/bin/sh    #获取登录者的用户名  user=$USER  #获取登录者的IP地址  ip=${SSH_CLIENT%% *}  #获取登录的时间  time=$(date +%F%t%k:%M)  #服务器的IP地址  hostname=$(hostname)  echo "content=$time,$user,$ip,$hostname" > /dev/null 2>&1  /usr/bin/python3 /opt/send_email.py  "$time" "$user" "$ip" "$hostname" > /dev/null 2>&1

步骤四:将sshrc.sh脚本放到.bashrc中,添加前建议先在终端测试一下

运行 vi ~/.bashrc 即可打开,然后在文件末尾处添加 /opt/sshrc.sh > /dev/null
到此全部添加完成,可以关闭终端,然后连接SSH试一下。。。






欢迎投稿(技术分享、原创教程)至本站机器人: blog#mige.eu.org
 

Subscribe by Email

Follow Updates Articles from This Blog via Email

No Comments

About

搜索此博客