案例:最近新弄了一个项目,为了确保项目的安全。自己就做了一个zabbix检查ssh登录ip的东西,这里给大家分享下
步骤:
-
自定义zabbix检查ssh登录ip的key
cat /etc/zabbix/zabbix_agentd.d/sanguo_check_ssh.conf
UserParameter=sanguo.check.ssh, who | wc -l #这里的作用是检查ssh登录了几个终端
重启zabbix_agentd
-
写一个检查ssh登录ip的脚本
-
在zabbix上创建一个模板
-
创建应用程序,application 创建监控项item
自定义key
cat sanguo_check_ssh.conf
UserParameter=sanguo.check.ssh, who | wc -l
这里的主要作用是定义监控的时间范围
-
创建trigger
这里的主要作用是检查ssh的登录终端数量,如果不为0 就触发报警
-
创建actions
当ssh登录终端在特定的时间不为0 的时候就触发脚本,踢掉登录的ssh并把ip加入防火墙
这里执行脚本要把zabbix加入sudo权限。zabbix客户配置文件开启对远程命令的支持EnableRemoteCommands=1
这里就大功告成了
这里我把模板上传上来
1
2
3
4
5
6
7
8
9
10
11
12
13
|
检查
ssh
登录的脚本如下
#!/bin/bash
ip=`w |
awk
'/用户/{print $3}'
`
w |
awk
'/用户/{print $2}'
|
xargs
-i pkill -
kill
-t {}
for
IP
in
$ip
do
if
[ $IP ==
"ip"
];
then
echo
"attention:The invasion from $IP of office"
| mail -s
"attention,please check"
13651602471@139.com
else
iptables -I INPUT 1 -s $IP -j DROP
echo
"attention:The invasion from $IP of outside"
| mail -s
"attention,please check"
13651602471@139.com
fi
done
|
本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1768720,如需转载请自行联系原作者