原创作者:运维工程师 谢晋
Centos7.9自动封禁IP
Centos7.9自动封禁IP
-
运维时,经常有业务系统会被攻击,重复的在尝试登陆系统账号密码;为了系统安全添加了个脚本来禁用5次密码错误的IP,脚本如下:
vi failed_ips.sh
#!/bin/bash
创建一个临时文件来存储IP地址和它们的失败登录次数
TEMPFILE=$(mktemp)
使用awk处理/var/log/secure,提取IP地址并计数失败的登录尝试
awk '/Failed/ {print $11}' /var/log/secure | sort | uniq -c | awk '$1 > 2 {print $2"="1}' > "TEMPFILE"
读取临时文件,并将IP地址添加到/etc/hosts.deny中(如果它们尚未被添加)
while IFS== read -r IP NUM; do
if ! grep -q "^sshd:IP:deny" /etc/hosts.deny; then echo "sshd:IP:deny" >> /etc/hosts.deny
fi
done < "$TEMPFILE"删除临时文件
rm "$TEMPFILE"
-
给脚本赋权
chmod +x failed_ips.sh
-
创建计划任务
crontab -e
*/10 * * * * /failed_ips.sh
确保/failed_ips.sh 是脚本的完整路径。