前言
自从开放端口到公网后,每次查看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