LinuxSSH被暴力破解防护_安全防御方案

6次阅读

四步ssh防护策略可阻挡95%自动化攻击:改端口(如22222)、禁root登录并建普通管理员账户、强制密钥认证禁密码登录、部署fail2ban自动封禁异常ip。

LinuxSSH被暴力破解防护_安全防御方案

linux 服务器暴露在公网时,SSH 是最常被暴力破解的目标。防护不是靠某一项措施,而是多层策略协同生效:改端口降低扫描量、禁用高危账户、强制密钥认证、自动封禁异常IP——这四步能挡住超过95%的自动化攻击。

修改默认 SSH 端口(避开常见扫描)

默认端口 22 是所有扫描器的起点。改成高位端口(如 22222、31891)虽不能防定向攻击,但能大幅减少无效连接和日志噪音。

  • 编辑 /etc/ssh/sshd_config,取消注释并修改:
    Port 22222
  • 若使用防火墙(如 firewalld 或 ufw),必须同步放行新端口:
    sudo firewall-cmd –add-port=22222/tcp –permanent && sudo firewall-cmd –reload
  • 重启服务前,务必新开一个终端窗口,用新端口测试登录成功后再关闭原会话,避免锁死

禁用 root 登录 + 创建普通管理员账户

root 是攻击者首要目标。禁止其远程登录,同时创建一个有 sudo 权限的普通用户,既能日常管理,又大幅提高攻击门槛。

  • 添加用户并设强密码:
    sudo useradd -m -s /bin/bash adminuser && sudo passwd adminuser
  • 赋予管理员权限:
    sudo usermod -aG sudo adminuserubuntu/debian)或 sudo usermod -aG wheel adminusercentos/RHEL)
  • /etc/ssh/sshd_config 中设置:
    PermitRootLogin no
    AllowUsers adminuser

强制 SSH 密钥认证,彻底关闭密码登录

密码再复杂也扛不住离线字典爆破;而私钥本地保管、加密码保护,安全性高出几个数量级。

  • 在客户端生成密钥对(推荐 ed25519):
    ssh-keygen -t ed25519 -C “your_email@example.com”
  • 上传公钥到服务器:
    ssh-copy-id -p 22222 adminuser@your-server-ip
  • /etc/ssh/sshd_config 中确认以下配置启用且未被注释:
    PubkeyAuthentication yes
    PasswordAuthentication no
    ChallengeResponseAuthentication no

部署 fail2ban 自动封禁失败尝试 IP

即使做了前面三步,仍可能遇到试探性攻击。fail2ban 能实时分析日志,在连续失败后自动调用防火墙规则封禁源 IP,是最后一道动态防线。

  • 安装(Ubuntu/Debian):
    sudo apt install fail2ban
    (CentOS/RHEL):
    sudo yum install epel-release && sudo yum install fail2ban
  • 新建 /etc/fail2ban/jail.local,写入基本配置:
    [default]
    ignoreip = 127.0.0.1/8 your_trusted_ip/32
    bantime = 86400
    findtime = 600
    maxretry = 3

    [sshd]
    enabled = true
    filter = sshd
    logpath = /var/log/auth.log # Ubuntu/Debian
    # logpath = /var/log/secure # CentOS/RHEL
    port = 22222

  • 启动并启用开机自启:
    sudo systemctl enable fail2ban && sudo systemctl start fail2ban
text=ZqhQzanResources