五种防护方法可立即部署:一、禁用root远程登录;二、更改ssh端口;三、启用密钥认证并禁用密码登录;四、部署fail2ban封禁异常ip;五、限制ssh访问来源ip范围。

如果您的 linux 服务器面临频繁的 SSH 登录尝试,攻击者可能正试图通过穷举密码实施暴力破解。以下是多种可立即部署的防护方法:
一、禁用 root 用户远程登录
禁止 root 账户直接通过 SSH 远程登录,能显著降低高权限账户被爆破成功的风险,强制使用普通用户提权,增加攻击路径复杂度。
1、编辑 SSH 配置文件:sudo nano /etc/ssh/sshd_config
2、找到 PermitRootLogin 行,将其值修改为 no
3、保存文件后重启 SSH 服务:sudo systemctl restart sshd
二、更改默认 SSH 端口
将 SSH 服务从默认的 22 端口迁移至非标准端口,可过滤掉大量自动化扫描工具发起的无效连接请求,减少日志干扰和资源消耗。
1、在 /etc/ssh/sshd_config 中取消注释或添加 Port 2222(替换为 1024–65535 范围内未被占用的端口)
2、执行 sudo ufw allow 2222 开放新端口(若启用 UFW)
3、执行 sudo systemctl restart sshd 生效配置
三、启用密钥认证并禁用密码登录
公钥认证机制无需传输明文密码,且私钥难以被暴力获取,是比密码认证更安全的身份验证方式;同时关闭密码登录可彻底阻断基于字典或暴力的口令猜测行为。
1、在客户端生成密钥对:ssh-keygen -t ed25519 -C “admin@server”
2、将公钥复制到服务器:ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip -p 2222
3、编辑 /etc/ssh/sshd_config,设置 PubkeyAuthentication yes 和 PasswordAuthentication no
4、重启 SSH 服务:sudo systemctl restart sshd
四、部署 fail2ban 实时封禁异常 IP
fail2ban 可持续监控 SSH 日志,自动识别并临时屏蔽在设定时间内触发多次失败登录的 IP 地址,形成动态防御闭环。
1、安装 fail2ban:sudo apt install fail2ban(debian/ubuntu)或 sudo yum install epel-release && sudo yum install fail2ban(centos/RHEL)
2、复制默认配置:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
3、编辑 /etc/fail2ban/jail.local,确保 [sshd] 段中 enabled = true
4、启动服务并设为开机自启:sudo systemctl enable fail2ban && sudo systemctl start fail2ban
五、限制 SSH 访问来源 IP 范围
通过防火墙规则仅允许可信网络段(如公司办公网、运维跳板机 IP)访问 SSH 端口,从网络层切断不可信来源的连接能力。
1、若使用 UFW,执行:sudo ufw allow from 203.0.113.10 to any port 2222(替换为实际可信 IP)
2、拒绝所有其他 SSH 连接:sudo ufw deny 2222
3、启用防火墙:sudo ufw enable
4、验证规则:sudo ufw status verbose