天天看點

監控伺服器ssh登入,并發送報警郵件

 最近想監控下雲主機的ssh登入情況,是以開始寫ssh登入報警監控。實作方式并不難。

一:郵箱申請開啟SMTP

       在郵箱中選擇“設定”----->“賬戶”

監控伺服器ssh登入,并發送報警郵件

     在如下圖處開啟POP3/SMTP服務,并生成授權碼。

監控伺服器ssh登入,并發送報警郵件

二:修改相關參數

   登入要進行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 = "[email protected]"
	password = "授權碼"
	#to_addr = from_addr
	to_addr = "[email protected]"
	# 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("[email protected]")
	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被監控成功。

  

監控伺服器ssh登入,并發送報警郵件
下一篇: MySQL