RHEL7、8/CentOS7、8的多次登录失败黑名单脚本(firewalld防火墙)
发布时间:2020-07-28 17:19:09
作者:ynkulusi
如题,直接上脚本,可以把尝试登录系统失败次数超过1000的IP加入黑名单。
$ cat ipattack.sh
$ cat ipattack.sh
#!/bin/bash
blackname=/home/kulusi/scripts/blackip_"$(date +%Y%m%d)"
# lastb显示所有登录系统失败的记录,此处把访问失败次数大于1000的IP添加到黑名单
lastb |awk '{S[$3]++}END{for(a in S)print a,S[a]}'|awk '{if($2>1000)print$1}' > $blackname
# 创建黑名单ipset(在/etc/firewall/ipset目录下生成blacklist.xml文件)
[ -f /etc/firewalld/ipsets/blacklist.xml ] || firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:ip
while read Address; do
grep -q "$Address" /home/kulusi/scripts/blacklist &> /dev/null
if [ $? -eq 0 ];then
echo "[ $Address ]之前已经加入黑名单!"
continue
else
echo "$Address" >> /home/kulusi/scripts/blacklist
echo "[ $Address ]加入黑名单成功!"
firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=$Address
fi
done < $blackname
# 然后封禁 blacklist,首次应用后黑名单有新增也不必重复应用
#firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset=blacklist drop'
# 重启防火墙
firewall-cmd --reload
# 添加临时TCP端口5000
firewall-cmd --add-port=5000/tcp
# 查看防火墙配置信息
firewall-cmd --list-all
分类:linux
评论数:0
阅读数:2056