封禁暴力破解SSH的攻击IP

1. 从 /var/log/secure 里提取所有攻击 IP + 去重 + 统计次数

复制代码
grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' /var/log/secure | sort | uniq -c | sort -nr

统计了最近的几次访问的ip

最多访问的几个ip 搜索看上去都有问题 先拉黑这些

ip拉黑吧

2.用 grep 就能精准统计出每个账号被尝试登录的次数

复制代码
统计所有登录尝试的账号(含失败、无效用户)

grep -E "(Failed password|Invalid user)" /var/log/secure \
  | awk '{
      if ($0 ~ /Invalid user/) print $8;
      else if ($0 ~ /Failed password/) print $9;
    }' \
  | sort | uniq -c | sort -nr

只统计「root」账号被暴力破解的次数

grep "Failed password for root" /var/log/secure | wc -l


只统计「无效用户名」的尝试次数(比如不存在的账号)

grep "Invalid user" /var/log/secure \
  | awk '{print $8}' \
  | sort | uniq -c | sort -nr


按「用户名 + IP」维度统计(看哪个 IP 在猜哪个账号)
grep -E "(Failed password|Invalid user)" /var/log/secure \
  | awk '{
      if ($0 ~ /Invalid user/) {user=$8; ip=$10}
      else if ($0 ~ /Failed password/) {user=$9; ip=$11}
      print user " " ip
    }' \
  | sort | uniq -c | sort -nr

3.只允许你自己的 IP 登录 SSH(最有效)

在阿里云安全组里:

  • 允许 222.76.14.104/32 访问 22 端口
  • 删除 0.0.0.0/0 允许规则

这样全世界任何人都无法再扫描、破解你的服务器。

4.安装 fail2ban 自动拉黑攻击 IP

复制代码
yum install -y fail2ban
systemctl start fail2ban
systemctl enable fail2ban

验证防护是否生效

你可以用下面的命令查看当前被封禁的 IP:

复制代码
fail2ban-client status sshd
  • 默认配置下,fail2ban 会监控 SSH 登录失败次数,短时间内多次输错密码的 IP 会被自动封禁一段时间
  • 你之前的暴力破解攻击,现在会被 fail2ban 自动拦截,不用再手动拉黑了
  • 服务已经设置为开机自启(systemctl enable fail2ban),重启服务器后也会自动生效

报错 Sorry but the jail 'sshd' does not exist 说明:

  • fail2ban 服务虽然启动了,但默认没有启用 sshd 防护规则(jail)
  • 所以你查询 sshd 状态时会提示不存在,也看不到封禁数据

启用 sshd 防护规则

复制代码
# 复制默认配置文件
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# 编辑配置文件,启用sshd防护
vi /etc/fail2ban/jail.local

在文件中找到 [sshd] 部分,修改为:

复制代码
[sshd]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = %(sshd_log)s
bantime = 86400   # 封禁1天(可自定义)
findtime = 3600    # 1小时内
maxretry = 5       # 失败5次就封禁

重启 fail2ban 使配置生效

复制代码
systemctl restart fail2ban

验证是否生效

复制代码
# 查看所有启用的jail
fail2ban-client status

# 再查看sshd状态
fail2ban-client status sshd

现在没有攻击 IP,所以没有封禁记录 → 不是没效果,是目前没人在攻击你!

相关推荐
Apipi*6 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP7 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
运维行者_7 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
hz567899 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC9 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
优橙教育9 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
BLUcoding10 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
AIgorithmGEEK10 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil20810 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)10 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障