原创作者:运维工程师 谢晋
Centos7.9自动封禁IP
- 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; doif ! grep -q "^sshd:$IP:deny" /etc/hosts.deny; thenecho "sshd:$IP:deny" >> /etc/hosts.denyfi
done < "$TEMPFILE"# 删除临时文件
rm "$TEMPFILE"
- 给脚本赋权
# chmod +x failed_ips.sh
- 创建计划任务
# crontab -e
*/10 * * * * /failed_ips.sh
确保/failed_ips.sh 是脚本的完整路径。