Linux服务器安全:自动封禁SSH暴力破解攻击IP
背景介绍
工作原理
Ubuntu系统脚本
#!/bin/bash
# 脚本功能:分析Ubuntu auth.log日志,封禁多次SSH登录失败的IP
# 使用方法:将脚本保存为ban_ip.sh并添加执行权限 chmod +x ban_ip.sh
# 提取失败登录的IP地址及尝试次数
cat /var/log/auth.log | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2"="$1;}' > /tmp/blackIP.txt
# 设置封禁阈值,超过此次数将被封禁
TRYCOUNT="5"
# 处理每个IP
for i in `cat /tmp/blackIP.txt`
do
# 提取IP地址
IP=`echo $i | awk -F= '{print $1}'`
# 提取失败次数
NUM=`echo $i | awk -F= '{print $2}'`
# 判断失败次数是否超过阈值
if [ $NUM -gt $TRYCOUNT ]; then
# 检查IP是否已经在封禁列表中
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ]; then
# 添加封禁记录,包含时间戳
echo "#"`date` >> /etc/hosts.deny
echo "ALL:$IP:deny" >> /etc/hosts.deny
fi
fi
doneCentOS系统脚本
自动化部署:结合crontab定时任务
注意事项
高级配置
相关工具
Last updated
Was this helpful?