参考网站: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、如果再次触发告警,再次加入拒绝,时间翻倍;

Centos7 用户登录失败N次后锁定用户禁止登陆的更多相关文章

  1. Centos7下用户登录失败N次后锁定用户禁止登陆的方法

    前言 针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁.Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值 ...

  2. Centos 用户登录失败N次后锁定用户禁止登陆

    针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁 Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁 ...

  3. linux尝试登录失败后锁定用户账户的两种方法

    linux尝试登录失败后锁定用户账户的两种方法 更新时间:2017年06月23日 08:44:31   作者:Carey    我要评论   这篇文章主要给大家分享了linux尝试登录失败后锁定用户账 ...

  4. vmware vcenter orchestrator configuration提示“用户名密码错误或登录失败超过次数被锁定”

    首次登录,使用默认用户密码登录vmware/vmware vmware vcenter orchestrator configuration提示"用户名密码错误或登录失败超过次数被锁定&qu ...

  5. 使用触发器实现记录oracle用户登录失败信息到alert.log日志文件

    前面我们说了用oracle自带的审计功能可以实现记录用户登录失败日志到数据表中(链接:http://www.54ok.cn/6778.html).今天我们来分享一下如何把用户登录失败信息记录到aler ...

  6. SQL Server 2014:为什么会提示“用户登录失败”?

    SQL Server有两种登录方式,Windows身份验证和sql server身份验证,其对应的数据库连接字符串如下: Windows身份验证 ----- @"Data Source=DE ...

  7. 转://因触发器限制导致oracle用户登录失败

    使用PL/SQL DEV登录数据库时,出现如下错误 手工创建了test用户,通过dev工具登录没问题.怀疑数据库中有些用户限制了登录的.再看错误编号:ORA-20001,oracle保留的异常错误号范 ...

  8. 用户登录密码RSA加密后传输的实现,非明文密码传输

    在用户登录页面,用户输入密码后,在传送到服务器端时,为防止在密码传送过程中,被如360这种东东给拦截到, 需要在传送前对密码进行加密,然后再传送! 利用RSA加密,在客户端使用公钥对密码进行加密,在服 ...

  9. python3.0 模拟用户登录,三次错误锁定

    # -*- coding:utf-8 -*- #需求模拟用户登录,超过三次错误锁定不允许登陆     count = 0   #realname passwd Real_Username = &quo ...

随机推荐

  1. ribbon的注解使用报错--No instances available for [IP]

    使用RestTemplate类调用其他系统的url的时候,加上ribbon的注解@LoadBalanced上这个注解之后访问,就报错了. 报错如下: 因为这里你不能直接访问地址,需要把地址改成你所调用 ...

  2. 统计python文件中的代码,注释,空白对应的行数

    其实代码和空白行很好统计,难点是注释行 python中的注释分为以#开头的单行注释 或者以'''开头以'''结尾 或以"""开头以"""结尾 ...

  3. Ring0 - 链表

    //一般驱动层不使用数据结构,一般Ring3层 双向链表可以将链表形成一个环.BLINK指针指向前一个元素,FLINK指针指向下一个元素.typedef struct _LIST_ENTRY { st ...

  4. php给app写接口进行接口的加密

    <?php/**inc解析接口客户端接口传输规则:1.用cmd参数(base64)来动态调用不同的接口,接口地址统一为 http://a.lovexpp.com2.将要传过来的参数组成一个数组, ...

  5. 构建Redis主从镜像

    构建Redis的基础镜像,然后基于这个基础镜像构建主Redis镜像和从Redis镜像. 1.构建Redis基础镜像 创建redis基础镜像目录 [root@localhost mnt]# mkdir ...

  6. [UE4]蓝图:重写父类时调用父类方法

    右键重写的方法选择“Add call to parent function” 一定要善用这个功能,实现原有父类功能的同时实现子类特别的功能.

  7. ipv6 操作

    netsh interface teredo set state disablednetsh interface ipv6 add v6v4tunnel interface=IP6Tunnel 120 ...

  8. /storage/xx-xx/, /sdcard, /mnt/sdcard 三者的区别

    本文针对Android 7.1 /sdcard是/mnt/sdcard的符号链,指向/storage/self/primary, /mnt/sdcard,也是符号链,指向/storage/self/p ...

  9. C#数组冒泡

    string[,] s2 = new string[2, 3] { { "a", "b","c" }, { "d", & ...

  10. Redis Server installation FAQs

    OS: CentOS 7 Minimal (0) open files Q: Increased maximum number of open files to 10032 (it was origi ...