xylogs / tp

0 stars 0 forks source link

一个用于监控linux系统用户登陆信息推送飞书机器人webhook的脚本。 #12

Closed xylogs closed 1 year ago

xylogs commented 1 year ago

MULI.sh脚本的用法

1、检查 PAM 配置:在 Linux 系统中,PAM 配置文件通常位于/etc/pam.d/ 目录下。 可以检查 /etc/pam.d/sshd 文件中是否包含以下内容: session optional pam_exec.so /path/to/MULI.sh #需实际脚本文件存放路径。 如果没有这一行配置,可以手动添加。如果有这一行配置,可以检查脚本路径是否正确。

2、检查 PAM 模块:在 Linux 系统中,PAM 模块通常位于 /lib/security/ 目录下。 可以检查 /etc/ssh/sshd_config 文件中是否包含以下内容: UsePAM yes 如果没有这一行配置,可以手动添加。如果有这一行配置,可以检查 PAM 模块路径是否正确。

3、重启 SSH 服务:在修改 PAM 配置或者 PAM 模块后,需要重启 SSH 服务才能生效。 可以使用以下命令重启 SSH 服务: systemctl restart sshd

4、如果以上方法都无法解决问题,可以尝试查看系统日志,以了解登录过程中是否出现了错误。 可以使用以下命令查看系统日志: journalctl -u sshd

请注意,脚本需要有执行权限(chmod u+x MULI.sh)。另外,您可以根据您的具体需求修改消息类型和内容。


MULI.sh脚本的内容


#!/bin/bash
hostname=$(hostname)
usetty=$PAM_TTY
WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/#机器人webhook
username=$PAM_USER
ip_address=$(echo $PAM_RHOST | awk -F/ '{print $1}')

if [ "$PAM_TYPE" = "open_session" ]; then login_time=$(date) msg_type="text" content="用户 $username 登录系统:$hostname ($(curl ip.me)),IP地址为:$ip_address,登录时间为:$login_time,协议:$usetty" fi if [ "$PAM_TYPE" = "close_session" ]; then msg_type="text" content="用户 $username 登出系统:$hostname ($(curl ip.me)),IP地址为:$ip_address,登出时间为:$(date),协议:$usetty" fi

json_data="{\"msg_type\":\"$msg_type\",\"content\":{\"text\":\"$content\"}}"

curl -X POST -H "Content-Type: application/json" -d "$json_data" "$WEBHOOK_URL"

if [ "$PAM_TYPE" = "open_session" ]; then echo "$(date) - 用户 $username 登录系统,IP地址为 $ip_address" >> /var/log/login_notify.log fi

exit 0