案例:最近新弄了一个项目,为了确保项目的安全。自己就做了一个zabbix检查ssh登录ip的东西,这里给大家分享下

步骤:

  1. 自定义zabbix检查ssh登录ip的key

    cat /etc/zabbix/zabbix_agentd.d/sanguo_check_ssh.conf

    UserParameter=sanguo.check.ssh, who | wc -l  #这里的作用是检查ssh登录了几个终端

    重启zabbix_agentd

  2. 写一个检查ssh登录ip的脚本

  3. 在zabbix上创建一个模板

  4. 创建应用程序,application   创建监控项item

    自定义key

    cat sanguo_check_ssh.conf

    UserParameter=sanguo.check.ssh, who | wc -l

    这里的主要作用是定义监控的时间范围

    wKiom1ch1WyBB1TZAACjjWKRPmw523.png


  5. 创建trigger

    这里的主要作用是检查ssh的登录终端数量,如果不为0 就触发报警

    wKiom1ch1Z-QlTzGAABi7RdVy2c004.png

  6. 创建actions

    当ssh登录终端在特定的时间不为0 的时候就触发脚本,踢掉登录的ssh并把ip加入防火墙

    这里执行脚本要把zabbix加入sudo权限。zabbix客户配置文件开启对远程命令的支持EnableRemoteCommands=1

    wKiom1ch1bfBvulTAAC8QcdjiXo753.png

    这里就大功告成了

    这里我把模板上传上来

 检查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