监控ssh登录,并发送报警信息到QQ

/ 0评 / 0

前言

CoolQ快要没了

近期在写一个ssh登录提醒的功能,实现起来还是蛮简单的,最终效果大概是这样

登录通知

安装酷Q插件

笔者使用的为linux,所以说这里使用的是docker版本,安装过程参考cqhttp官方文档,https://cqhttp.cc/docs/4.15/#/Docker

发送消息

bash脚本实现起来十分的简单,因为笔者学术不精,curl不知道如何使用换行符,所以说不得已用了python做为发消息的模块,这里创建在/etc/ssh/msg.py

import sys
import requests

baseUrl = 'https://xxx.cn/'  # 您搭建的酷Qapi
token = 'password'  # 您设置的密钥,公网访问请务必添加密钥
sendUser = '1111111111'  # 您要推送的消息人,为qq号

def Sendmsg(Hostname,Time,User,IP):
    requests.get(f'{baseUrl}/cqmsg/send_private_msg?access_token={token}&user_id={sendUser}&message=警告!SSH登录通知\n被登录主机->{Hostname}\n登录时间->{Time}\n登录IP->{IP}\n登录用户->{User}\n您的主机已被成功登录,请检查是否为非法操作')

if __name__ == "__main__":
    Sendmsg(sys.argv[1],sys.argv[2],sys.argv[3],sys.argv[4])

SSH登录事件处理

在/etc/ssh下创建如下代码,用于调用上一步的消息推送模块

#!/bin/bash

user=$USER
ip=${SSH_CLIENT%% *}
time=$(date +%F%t%k:%M)
hostname=$(hostname)

python /etc/ssh/msg.py "$hostname" "$time" "$user" "$ip"

后记

原创文章,如需转载,请注明出处
本文链接:https://www.bokro.cn/156.html