zoukankan      html  css  js  c++  java
  • Centos7 用户登录失败N次后锁定用户禁止登陆

    参考网站:https://blog.csdn.net/qq_33285112/article/details/78813369  未试

    思路是查找/var/log/secure中验证失败且出现的次数较多的ip,对其进行封IP处理。具体方法如下:
    vi /usr/local/bin/secure.sh
    #输入以下脚本
    #! /bin/bash
    cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list
    for i in `cat /usr/local/bin/black.list`
    do
    IP=`echo $i |awk -F= '{print $1}'`
    NUM=`echo $i|awk -F= '{print $2}'`
    #if [ ${#NUM} -gt 1 ]; then ##失败次数>10,可读性太差,调整为如下:
    if [ $NUM -gt 10 ]; then
    grep $IP /etc/hosts.deny > /dev/null ##检索IP是否已存在于hosts.deny
    if [ $? -gt 0 ];then ##$?上一条命令的执行结果,0有正常输出,其他异常
    echo "sshd:$IP:deny" >> /etc/hosts.deny ##增加屏蔽登录失败的IP
    fi
    fi
    done
     
    chmod +x /usr/local/bin/secure.sh
    然后将secure_ssh.sh加入到cron计划任务中即可。
    vi /var/spool/cron/root
    #增加以下命令,一分钟执行一次
    */1 * * * * sh /usr/local/bin/secure.sh
     
    避免增加系统负担,调整为十分钟执行一次
    */10 * * * * sh /usr/local/bin/secure.sh
    初次执行过后,为减轻系统压力,可清掉相应日志,清理之前最好备份
    cp /var/log/secure /var/log/secure.20180314 && >/var/log/secure
    也可考虑对此日志进行定期备份、清理
    hosts.deny两个文件中的相关记录。
     
    PS:
    && 前个命令执行成功再执行后一个命令
    || 前个命令执行失败再执行后一个命令

    另一种解决办法思路:

    1、排查日志,将可疑IP加入防火墙拒绝列表;

    2、一定时间后解除防火墙拒绝对应列表;

    3、如果再次触发告警,再次加入拒绝,时间翻倍;

  • 相关阅读:
    Photoshop 更改图片颜色
    搜索引擎优化网页设计:最佳实践
    Cocos2d-x 精灵碰撞检測(方法一)
    JS 计算2个日期相差的天数
    《Java并发编程实战》第七章 取消与关闭 读书笔记
    LeetCode_3Sum
    Pascal Hexagrammum Mysticum 的深度探索
    HDU 5274 Dylans loves tree(LCA+dfs时间戳+成段更新 OR 树链剖分+单点更新)
    高速查询hive数据仓库表中的总条数
    cocos2d-x触摸事件优先级
  • 原文地址:https://www.cnblogs.com/yaok430/p/9455138.html
Copyright © 2011-2022 走看看