zoukankan      html  css  js  c++  java
  • 监控服务器ssh登录,并发送报警邮件

     最近想监控下云主机的ssh登录情况,所以开始写ssh登录报警监控。实现方式并不难。

    一:邮箱申请开启SMTP

           在邮箱中选择“设置”----->“账户”

         

         在如下图处开启POP3/SMTP服务,并生成授权码。

         

    二:修改相关参数

       登录要进行ssh登录监控的服务器,在/etc/ssh创建"sshrc"文件:

    #!/bin/bash
    #获取登录者的用户名
    user=$USER
    #获取登录者的IP地址
    ip=${SSH_CLIENT%% *}
    #获取登录的时间
    time=$(date +%F%t%k:%M)
    #服务器的IP地址
    hostname=$(hostname)
    echo "content=$time,$user,$ip,$hostname" > log
    
    python /etc/ssh/testEmail.py   "$time" "$user" "$ip" "$hostname"

    并在如上自定义路径中创建“testEmail.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 = "yaohong@qq.com"
    	password = "授权码"
    	#to_addr = from_addr
    	to_addr = "yaohong@qq.com"
    	# password = raw_input("Password:")
    	# to_addr = input("To:")
    	
    	def _format_addr(s):
        		name, addr = parseaddr(s)
        		return formataddr((Header(name, 'utf-8').encode(), addr))
    
    	smtp_server = "smtp.qq.com"
            mimetex = '您的机器:',dhostname,',于:',dtime,',被IP:',dip,'以账号',duser,'进行登录,请确认是否为公司员工。'
    	#构造邮件
    	msg = MIMEText(''.join(mimetex), 'plain', 'utf-8')
    	msg['From'] = _format_addr("yaohong")
    	msg['To'] = _format_addr("yaohong@qq.com")
    	msg['Subject'] = Header("来自yaohong", '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])
    

    三:登录检测

     安装完后,再次进行ssh登录该服务器会收到邮件如下图,则表示ssh被监控成功。

      

  • 相关阅读:
    git 强制覆盖本地
    给mysql添加账户并且赋予权限
    laravel 地址栏传参不了问题
    订单系统开发02
    熵——信息增益
    熵——导读
    熵——自信息
    tensorflow在文本处理中的使用——skip-gram & CBOW原理总结
    霍夫曼树
    tensorflow在文本处理中的使用——Word2Vec预测
  • 原文地址:https://www.cnblogs.com/yaohong/p/8379252.html
Copyright © 2011-2022 走看看