• shell日常实战练习——通过监视用户登陆找到入侵者


    #!/usr/bin/bash

    #用户检测入侵工具

    AUTHLOG=/var/log/secure

    if [[ -n $1 ]];then

    AUTHLOG=$1

    echo "Using Log File: $AUTHLOG"

    fi

    LOG=/tmp/valid.$$.log

    grep -v "Invalid" $AUTHLOG > $LOG #将系统中有效的用户

    users=$( grep "Failed password" $LOG |awk '{ print $(NF-5) }'|sort|uniq ) # 搜集非法用户的用户名

    printf "%-5s|%-10s|%-10s|%-13s|%-33s|%s " "Sr#" "User" "Attempts" "IP address" "Host_Mapping" "Time range"

    ucount=0

    ip_list="$( egrep -o "[0-9]+.[0-9]+.[0-9]+.[0-9]+" $LOG |sort|uniq )" #获取登陆失败的IP地址

    for ip in $ip_list

    do

    grep $ip $LOG > /tmp/temp.$$.log #这一步是将失败的那一行信息存到文件中

    for user in $users

    do

    grep $user /tmp/temp.$$.log >/tmp/$$.log

    cut -c-16 /tmp/$$.log >$$.time #这一行的前16个字符是时间戳

    tstart=$(head -1 $$.time);

    start=$(date -d "$tstart" "+%s");

    tend=$(tail -1 $$.time)

    end=$(date -d "$tend" "+%s")

    limit=$(($end-$start))

    if [ $limit -gt 120 ] ;then #检查这个时间戳是否大于两分钟

    let ucount++;

    IP=$(egrep -o "[0-9]+.[0-9]+.[0-9]+.[0-9]+" /tmp/$$.log|head -1 )

    TIME_RANGE="$tstart-->$tend"

    ATTEMPTS=$(cat /tmp/$$.log|wc -1)

    HOST=$(host $IP|awk '{print $NF}') #根据ip 查找对应主机的名字 这个步骤如果显示host没有找到命令 请安装bind-utils

    printf "%-5s|%-10s|%-10s|%-13s|%-33s|%s " "$ucount" "$user" "$ATTEMPTS" "$IP" "$HOST" "$TIME_RANGE"

    fi

    done

    done

    rm -f /tmp/valid.$$.log

    rm -f /tmp/$$.log

    rm -f /tmp/$$.time

    rm -f /tmp/temp.$$.log

    -------------------------------------------------------

    这里是解决非法用户3次登陆失败的解决办法

    vim /etc/pam.d/sshd

    auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10

    #参数解释

    #even_deny_root 也限制root用户;

    #deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户

    #unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;

    #root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒

    作者简介: 
    陈志珂(头条号:强扭的瓜不好吃)公众号“铅笔学园”运维内容合作作者之一,目前就职于中国最大的安卓应用软件公司,任高级工程师现在公司任php开发工程师,python开发工程师,高级运维工程师。
    铅笔学园:IT资源分享|知识分享,做初级程序员的指明灯

  • 相关阅读:
    设计模式之创建型模式
    Django Admin的简单使用
    单例模式
    自定义异步IO模块
    ps 处理gif
    安装vmware tools问题
    ppt图片在word中不能正常显示,只显示为矩形框的解决方法
    没有注册类别的一种解决方法
    VS2008安装“Visual Studio Web 创作组件”安装失败的解决方法
    Ubuntu重装VMwareTools
  • 原文地址:https://www.cnblogs.com/qianbixueyuan/p/9518816.html
Copyright © 2020-2023  润新知