監控服務器ssh登錄,並發送報警郵件
阿新 • • 發佈:2018-01-29
賬戶 參數 相關 con import format Coding head time
最近想監控下雲主機的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 = "[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登錄,並發送報警郵件