踩坑实录:CentOS 默认 Fail2Ban 挡不住高频并发攻击,漏洞修复一步到位

背景

Fail2Ban,是通过扫描文件日志,从而进行防护,这个有个问题,默认为1s扫描一次,但如果这1s内,黑客发起多次请求,套用密码,Fail2Ban会错过这些信息,在1s后才会处理。如下图:

策略配置本来是root,3次失败就应该去Ban的,但1s内发出了好几次。虽然,这个不是什么大事,但既然,黑客攻击升级了,我这边也升级下吧。

操作

直接使用iptables,限制IP每s连接请求,同一个 IP,1 秒内最多只能发起 1 次 SSH 新连接,超过就直接拦截(DROP)。

文件:ssh-protect.sh

代码如下:

bash 复制代码
#!/bin/bash

# ==============================================
# SSH 安全加固脚本
# 功能:1秒内最多允许1次SSH新连接,防止暴力破解
# 一键执行 → 立即生效 → 永久保存
# ==============================================

echo "========================================"
echo "  开始配置 SSH 防暴力破解规则(1秒1次)"
echo "========================================"

# 1. 清空旧规则(避免重复添加)
iptables -D INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ssh_strict --set 2>/dev/null
iptables -D INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ssh_strict --update --seconds 1 --hitcount 2 -j DROP 2>/dev/null

# 2. 添加新规则
# 记录新SSH连接
iptables -A INPUT -p tcp --dport 22 \
  -m state --state NEW \
  -m recent --name ssh_strict --set

# 1秒内超过1次 → 拦截
iptables -A INPUT -p tcp --dport 22 \
  -m state --state NEW \
  -m recent --name ssh_strict --update --seconds 1 --hitcount 2 \
  -j DROP

echo "规则添加完成!"

# 3. 永久保存规则(自动识别系统)
echo -e "\n正在永久保存防火墙规则..."

if [ -f /etc/debian_version ]; then
    # Ubuntu/Debian
    apt install -y iptables-persistent
    netfilter-persistent save
elif [ -f /etc/redhat-release ]; then
    # CentOS/RHEL
    service iptables save 2>/dev/null
    iptables-save > /etc/sysconfig/iptables 2>/dev/null
fi

echo -e "\n全部完成!"
echo "效果:同一个IP 1秒内只能连接SSH 1次,超过直接拦截"
echo "规则已永久保存,重启服务器依然有效!"

赋予权限与运行:

bash 复制代码
chmod +x ssh-protect.sh
./ssh-protect.sh

查看规则:

bash 复制代码
iptables -L -n | grep -A 2 ssh
相关推荐
David猪大卫1 小时前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
飞飞传输2 小时前
飞驰云联文件交换建设方法论:从单点传输到持续治理
大数据·运维·安全
叼烟扛炮3 小时前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php
Ruiery3 小时前
Linux 6.6内核内存管理深度解析(十五):CMA 连续内存分配器
linux·运维·服务器
测试界的小码农4 小时前
【Linux 命令实战(01):认识 Linux 终端,从零掌握第一个命令】
linux·运维·服务器
布裘4 小时前
【银河麒麟】重启后时区丢失?排查发现 localtime 被业务程序替换成硬链接
linux·运维·网络
huainingning5 小时前
锐捷10.X路由器版本升级不生效问题排查
运维·网络·智能路由器
荣合技术服务5 小时前
HPC 超算集群故障维修实录:找荣合科算维护后,模拟仿真计算又能跑了
运维·服务器·超算服务器·荣合科算
GeW7 小时前
高端化转型进入“补底层”阶段:Linux与数据库的再定位
linux
silent7 小时前
龙芯3B6000M运行Yolov8+FastApi
linux·loongarch·loongnix·龙芯