1、将密码输入错误超过4次的IP地址通过firewalld防火墙阻止访问
#通过awk命令以数组的方式获取/var/log/secure文件中输入密码错误超过4次的ip地址
[root@server day1.10]# awk '/Failed password/ { array[$(NF-3)]++ } END {for(a in array) {if (array[a]>4) print a }}' /var/log/secure
#事先用另一台虚拟机用ssh方式连接,故意输错密码4次以上
效果如图:
#编写脚本,通过上述命令以及防火墙规则,阻止错误超过4次以上的ip地址访问;脚本内容如下:
#!/bin/bash
ip=(`awk '/Failed password/ { array[$(NF-3)]++ } END {for(a in array) {if (array[a]>4) print a }}' /var/log/secure`)
for i in ${ip[*]}
do
firewall-cmd --add-rich-rule="rule family=ipv4 source address=$i/32 service name=ssh reject"
done
检验:
[root@server day1.10]# bash 1.sh
[root@server day1.10]# firewall-cmd --list-all
效果如图:
再次用错误超4次以上的IP地址访问该主机地址,如图: