SSH 暴力破解频发?用 AegisX 快速封禁攻击 IP 实战 核心要点图解,SSH 暴力破解可通过分析 /var/log/secure 或 auth.log 快速定位攻击 IP。;AegisX 支持自动封禁高频失败 IP,减少手动干预。;配置防火墙规则时,优先使用 ipset 提升封禁效率。;定期检查登录日志并设置告警,能提前发现异常扫描。
SSH 暴力破解频发?用 AegisX 快速封禁攻击 IP 实战 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • SSH 暴力破解可通过分析 /var/log/secure 或 auth.log 快速定位攻击 IP。
  • AegisX 支持自动封禁高频失败 IP,减少手动干预。
  • 配置防火墙规则时,优先使用 ipset 提升封禁效率。
  • 定期检查登录日志并设置告警,能提前发现异常扫描。

凌晨三点,服务器 CPU 飙升,登录日志里塞满了来自全球各地的 SSH 失败记录——这是不少运维和站长都经历过的噩梦。SSH 暴力破解不仅消耗资源,还可能成为入侵的跳板。本文提供一套基于 AegisX 的快速封禁攻击 IP 的实战步骤,从日志分析到自动化防护,让你在 10 分钟内构建有效防线。

一、SSH 暴力破解的危害与常见迹象

攻击者利用自动化工具,尝试大量用户名和密码组合,一旦得手即可植入挖矿木马、勒索软件或窃取数据。常见迹象包括:

  • 系统负载异常升高,`top` 显示大量 sshd 进程。
  • 日志中频繁出现 `Failed password` 或 `Invalid user` 记录。
  • 网络连接数激增,`netstat -an | grep :22 | wc -l` 数值远高于正常。
  • 收到云服务商的安全告警邮件。

若发现上述情况,应立即排查并封禁攻击源。

二、快速定位攻击 IP:日志分析实战

不同发行版日志路径不同:CentOS/RHEL 为 `/var/log/secure`,Ubuntu/Debian 为 `/var/log/auth.log`。执行以下命令提取失败次数最多的 IP:

grep 'Failed password' /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -20

输出示例:

   1523 192.0.2.1
    987 198.51.100.2
    456 203.0.113.3

这些 IP 就是主要攻击源。还可以用 `lastb` 查看失败登录列表,或 `grep 'Invalid user' /var/log/secure | awk '{print $(NF-2)}' | sort | uniq -c | sort -nr` 找出尝试非法用户名的 IP。

三、手动封禁:iptables 与 ipset 高效操作

对于少量 IP,可直接用 iptables 封禁:

iptables -I INPUT -s 192.0.2.1 -j DROP

但攻击 IP 往往成百上千,逐条添加效率低下。推荐使用 ipset 创建黑名单集合:

ipset create ssh_blacklist hash:ip
ipset add ssh_blacklist 192.0.2.1
iptables -I INPUT -m set --match-set ssh_blacklist src -j DROP

之后只需 `ipset add` 即可快速封禁,且规则数量不影响性能。注意保存 ipset 规则:`ipset save > /etc/ipset.conf`,并设置开机恢复。

四、使用 AegisX 自动化封禁:配置与实战

AegisX 是一款轻量级服务器安全防护工具,支持实时监控 SSH 日志并自动封禁恶意 IP。安装后,编辑配置文件 `/etc/aegisx/aegisx.conf`:

[ssh]
enabled = true
log_path = /var/log/secure
threshold = 5
time_window = 300
ban_time = 3600
whitelist = 127.0.0.1, 192.168.1.0/24

参数说明:

  • threshold:300 秒内失败 5 次即触发封禁。
  • ban_time:封禁时长(秒),3600 表示 1 小时。
  • whitelist:白名单 IP 或网段,避免误封。

启动服务:`systemctl start aegisx && systemctl enable aegisx`。查看封禁列表:`aegisx list`。手动解封:`aegisx unban 192.0.2.1`。

AegisX 会自动调用 ipset 或 iptables 执行封禁,并记录日志到 `/var/log/aegisx.log`。建议先开启观察模式(`dry_run = true`),确认规则无误后再正式启用。

五、SSH 安全加固检查清单

封禁只是应急手段,长期防护需结合以下措施:

措施操作效果
修改默认端口编辑 `/etc/ssh/sshd_config`,设置 `Port 2222`减少自动化扫描
禁用 root 登录设置 `PermitRootLogin no`防止直接攻击最高权限
启用密钥认证设置 `PasswordAuthentication no`杜绝密码爆破
限制用户来源使用 `AllowUsers user@192.168.1.*`仅允许可信 IP 登录
安装防护工具部署 AegisX 或 Fail2Ban自动封禁恶意 IP

修改配置后记得重启 SSH 服务:`systemctl restart sshd`。同时定期更新系统补丁,关闭不必要的服务。

六、行动建议:立即检查并部署防护

不要等到服务器被入侵才行动。现在登录你的服务器,执行 `grep 'Failed password' /var/log/secure | wc -l` 查看失败次数。如果数字惊人,立即按照本文步骤部署 AegisX 自动封禁,并逐项完成加固清单。安全无小事,一次有效的封禁可能避免一场灾难。

常见问题(FAQ)

如何查看服务器是否正在被 SSH 暴力破解?

登录服务器后,执行 `grep 'Failed password' /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head`(CentOS)或 `grep 'Failed password' /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head`(Ubuntu)。输出中尝试次数最多的 IP 即为攻击源,可进一步用 `lastb` 查看失败登录记录。

AegisX 如何自动封禁 SSH 暴力破解 IP?

AegisX 通过实时监控 SSH 日志,识别高频失败登录。当某 IP 在设定时间窗口内失败次数超过阈值,自动调用防火墙接口将其加入黑名单。支持自定义阈值、封禁时长和白名单,无需手动编写脚本。

除了封 IP,还有哪些 SSH 安全加固措施?

建议修改默认 SSH 端口、禁用 root 密码登录、启用密钥认证、限制用户登录来源 IP,并安装 Fail2Ban 或 AegisX 等工具。同时定期更新系统补丁,关闭不必要的服务,降低攻击面。

封禁 IP 后如何避免误封正常用户?

设置白名单,将公司出口 IP、运维跳板机 IP 加入信任列表。调整封禁阈值,避免过于敏感。AegisX 支持观察模式,先记录不封禁,确认规则无误后再启用自动封禁。

AegisX 的封禁规则会持久化吗?重启服务器后是否失效?

AegisX 默认将封禁记录保存到数据库或本地文件,重启后自动恢复。若使用内存防火墙(如 ipset),需确保配置持久化,例如通过 `ipset save` 和 `ipset restore` 或系统服务实现开机加载。