编程 实现Linux SSH登录提醒并发送消息到企业微信群

2024-11-18 01:03:17 +0800 CST views 516

实现Linux SSH登录提醒并发送消息到企业微信群

为了在没有安装面板的Linux服务器上实现SSH登录提醒并通过企业微信群告警,我们可以通过在/etc/profile.d/目录下创建一个shell脚本,在用户每次登录SSH时自动发送通知到企业微信群。

01. 技术原理

在Linux中,/etc/profile.d/目录用于存放系统级的脚本文件,这些脚本文件会在用户登录时自动执行。通过在该目录中添加自定义的shell脚本,可以实现SSH登录时执行的任务。

02. 企业微信群机器人

首先,需要创建一个企业微信群机器人。你可以按照以下步骤操作:

  1. 登录企业微信的管理后台,找到你要发送消息的群组。
  2. 添加一个“群机器人”,获取Webhook地址。具体教程可参考企业微信群机器人文档
  3. 获取到的Webhook地址形如:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxx
    images

03. 实现方法

以下是实现SSH登录告警的具体步骤和shell脚本:

1. 编写Shell脚本

在Linux服务器上,创建一个Shell脚本,内容如下:

#!/bin/bash

# 获取登录信息
login_ip="$(echo $SSH_CONNECTION | cut -d " " -f 1)"
login_date="$(date +"%e %b %Y, %a %r")"
login_name="$(whoami)"
server_ip="$(hostname -I | awk '{print $1}')"

# 企业微信群Webhook地址
webhook_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxx"

# 发送登录信息到企业微信群
curl "$webhook_url" -H 'Content-Type: application/json' -d "{
    \"msgtype\": \"markdown\",
    \"markdown\": {
        \"content\": \"服务器远程登录提醒\\n> 服务器IP: <font color='warning'>$server_ip</font>\\n> 客户端IP: <font color='warning'>$login_ip</font>\\n> 登录用户: <font color='warning'>$login_name</font>\\n> 登录时间: <font color='warning'>$login_date</font>\"
    }
}"

2. 配置脚本

  • login_ip:从$SSH_CONNECTION变量中提取客户端IP地址。
  • login_date:使用date命令获取登录的时间和日期。
  • login_name:使用whoami命令获取当前登录的用户名。
  • server_ip:获取服务器的本地IP地址。

注意:请将webhook_url中的xxxxxxxxxxxxxxx替换为你从企业微信获取的机器人Webhook地址。

3. 放置脚本到/etc/profile.d/

将编写好的shell脚本保存为.sh文件,并放置在/etc/profile.d/目录下。脚本的路径可以是:

sudo nano /etc/profile.d/ssh_login_notify.sh

粘贴上面的shell脚本,保存并退出。

4. 更改权限

确保脚本有可执行权限:

sudo chmod +x /etc/profile.d/ssh_login_notify.sh

04. 验证效果

  1. 退出当前SSH会话,然后重新使用SSH登录服务器。
  2. 登录后,企业微信群将收到如下格式的通知:
服务器远程登录提醒
> 服务器IP: 110.110.110.110
> 客户端IP: 192.168.1.100
> 登录用户: root
> 登录时间: 19 Sep 2023, Tue 10:30:00 PM

每次有人通过SSH登录服务器时,群里都会收到这样的提醒,帮助管理员实时掌握登录情况。

05. 总结

通过在Linux服务器上配置一个简单的shell脚本,并结合企业微信的群机器人,可以实现SSH登录的实时告警。这样不仅可以提高安全性,还能及时了解服务器的使用情况。

希望这篇教程对你有所帮助!如果你有更多问题,欢迎随时在评论区提问。

复制全文 生成海报 Linux 安全 自动化 企业微信 通知

推荐文章

Python 基于 SSE 实现流式模式
2025-02-16 17:21:01 +0800 CST
内网穿透技术详解与工具对比
2025-04-01 22:12:02 +0800 CST
底部导航栏
2024-11-19 01:12:32 +0800 CST
使用Ollama部署本地大模型
2024-11-19 10:00:55 +0800 CST
CSS实现亚克力和磨砂玻璃效果
2024-11-18 01:21:20 +0800 CST
MySQL设置和开启慢查询
2024-11-19 03:09:43 +0800 CST
基于Flask实现后台权限管理系统
2024-11-19 09:53:09 +0800 CST
Linux查看系统配置常用命令
2024-11-17 18:20:42 +0800 CST
JavaScript 的模板字符串
2024-11-18 22:44:09 +0800 CST
JavaScript设计模式:桥接模式
2024-11-18 19:03:40 +0800 CST
一键配置本地yum源
2024-11-18 14:45:15 +0800 CST
淘宝npm镜像使用方法
2024-11-18 23:50:48 +0800 CST
PHP 8.4 中的新数组函数
2024-11-19 08:33:52 +0800 CST
程序员茄子在线接单