监控服务器ssh登录,并发送报警邮件

简介: 最近想监控下云主机的ssh登录情况,所以开始写ssh登录报警监控。实现方式并不难。 一:邮箱申请开启SMTP        在邮箱中选择“设置”----->“账户”            在如下图处开启POP3/SMTP服务,并生成授权码。

 最近想监控下云主机的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被监控成功。

  

目录
相关文章
|
20天前
|
Linux 网络安全 数据安全/隐私保护
SSH工具连接远程服务器或者本地Linux系统
SSH工具连接远程服务器或者本地Linux系统
20 0
|
4天前
|
网络协议 物联网 Linux
你不能不知道的:无公网IP,SSH远程连接CentOS服务器【内网穿透】
你不能不知道的:无公网IP,SSH远程连接CentOS服务器【内网穿透】
|
5天前
|
Devops jenkins 网络安全
【DevOps】(四)jekins服务器ssh部署
【DevOps】(四)jekins服务器ssh部署
12 1
|
12天前
|
Ubuntu 网络安全 数据安全/隐私保护
使用SSH隧道将Ubuntu云服务器Jupyter Notebook端口映射到本地
这样,你就成功地将Ubuntu云服务器上的Jupyter Notebook端口映射到本地,使你能够通过本地浏览器访问并使用Jupyter Notebook。
34 1
|
13天前
|
弹性计算 监控 Shell
监控HTTP 服务器的状态
【4月更文挑战第29天】
10 0
|
13天前
|
弹性计算 运维 监控
|
7月前
|
Ubuntu Linux 网络安全
SSH客户端连接远程服务器
一、什么是客户端连接远程服务器 发起连接的一方,计算机或设备(称为客户端)与另一个计算机或设备(称为远程服务器)建立连接。 客户端通过网络连接到远程服务器,远程服务器则是提供所需服务或资源的一方。 客户端通常使用特定的协议(如SSH、HTTP、FTP等)与远程服务器进行通信。 示例:你使用SSH客户端从本地计算机连接到远程服务器以执行远程命令。 二、什么是服务端连接远程服务器
208 1
|
Ubuntu 网络安全 开发工具
Xshell通过SSH连接阿里云报错“服务器发送了一个意外的数据包” xshell连接ubuntu
Xshell通过SSH连接阿里云报错“服务器发送了一个意外的数据包” xshell连接ubuntu
Xshell通过SSH连接阿里云报错“服务器发送了一个意外的数据包” xshell连接ubuntu
|
22天前
|
网络协议 安全 Linux
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
|
6月前
|
Cloud Native 网络安全 Go
SSH连接服务器后执行多条命令
SSH连接服务器后执行多条命令