脚本禁止登录尝试 zphj1987 2023-01-31 2024-04-17 脚本禁止登录尝试 需求 有ip不停的尝试登录,可以通过防火墙进行屏蔽
脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 cat /var/log/secure |grep failure|awk '{for (i=1;i<=NF;i++){if ($i ~/rhost/) {print $i}}}' | sort | uniq |awk -F"=" '{print $2}' >> black.listcat black.list|sort |uniq > black.list.tmprm -rf black.listmv black.list.tmp black.listfirewall-cmd --list-rich-rules > blackiprule.list all=`cat blackiprule.list` for ip in `cat black.list|sort |uniq `do if [[ $all =~ $ip ]]then : else echo "不包含" firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='$ip ' reject" fi done cat blackiprule.list|wc -lfirewall-cmd --reload
定期执行脚本即可
上面的脚本存在一个问题,如果机器上面拒绝的ip太多了话,这个防火墙的列表会非常的大,而下面的这个就没有这个问题,建议用下面的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [root@VM-4-7-centos ~] cat /var/log/secure |grep failure|awk '{for (i=1;i<=NF;i++){if ($i ~/rhost/) {print $i}}}' | sort | uniq |awk -F"=" '{print $2}' >> /root/black.listcat /root/black.list|sort |uniq > /root/black.list.tmprm -rf /root/black.listmv /root/black.list.tmp /root/black.list> /etc/hosts.deny for ip in `cat black.list|sort |uniq `do echo ALL:$ip >> /etc/hosts.denydone cat black.list|wc -l