shell脚本监控登录用户是否异常

1, 下载php

apt install php 或

yum install php

 

2. 用php命令来判断ip归属地

vi ip.php

<?php
$ip="192.168.1.109";
        $json=file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);
        $arr=json_decode($json);
        echo $arr->data->country;
        echo $arr->data->area;
        echo $arr->data->region;
        echo $arr->data->city;
        echo $arr->data->isp;
?>

 测试: php ip.php

 

3.1 检测登录IP是否包含在文件normal_ip.txt中

#!/bin/bash
for i in `who | grep "(" | cut -d "(" -f 2 | cut -d ")" -f 1`
do
        count=`echo $i | grep "[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}" | wc -l`
        if [ $count -ne 1 ];then
                ip=`arp -a $i | cut -d "(" -f 2 | cut -d ")" -f 1`
        else
                ip=$i
        fi
        count=`grep $ip normal_ip.txt | wc -l`
        if [ $count -ne 1 ];then
                sudo sed -i '2s@^.*$@$ip="'$ip'";@' ip.php
                extremely_address=`sudo php ip.php`
                hostname=`hostname`
                echo "$ip异常登录$hostname主机,归属地:$extremely_address"
        fi
done

 

 

3.2 检测登录IP是否包含在文件normal_ip.txt中,并且判断IP是否属于内网或深圳市

#!/bin/bash
for i in `who | grep "(" | cut -d "(" -f 2 | cut -d ")" -f 1`
do
        count=`echo $i | grep "[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}" | wc -l`
        if [ $count -ne 1 ];then
                ip=`arp -a $i | cut -d "(" -f 2 | cut -d ")" -f 1`
        else
                ip=$i
        fi
        count=`grep $ip normal_ip.txt | wc -l`
        if [ $count -ne 1 ];then
                sudo sed -i '2s@^.*$@$ip="'$ip'";@' ip.php
                extremely_address=`sudo php ip.php`
                hostname=`hostname`
                count=`echo $extremely_address | grep 内网 | wc -l`
                count2=`echo $extremely_address | grep 深圳 | wc -l`
                if [ $count -eq 0 -a $count2 -eq 0];then
                        echo "$ip异常登录$hostname,归属地:$extremely_address"
                else
                        echo "$ip正常登录$hostname,归属地:$extremely_address"
                fi
        fi
done

 

 4. crontab 执行以上命令每分钟一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_26182553

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值