首页 / 服务器运维 / SSH被爆破怎么办:15分钟完成Li

SSH被爆破怎么办:15分钟完成Linux服务器安全加固与登录审计

Roxi
Roxi 加速器 — 稳定·快速·安全
全球节点覆盖,支持所有主流平台,一键连接无需配置。新用户免费试用。
立即体验 →

开场:先看攻击现场,再动手加固

方案A92方案B85方案C78方案D71方案E65

兄弟们,开机!这里是 eccfy,今天我们直接上服务器实操,不讲玄学。OK so,我屏幕左边开着终端,右边开着日志,先看一眼你的机器有没有被扫:

sudo grep "Failed password" /var/log/auth.log | tail -20

CentOS/Rocky 用:

sudo grep "Failed password" /var/log/secure | tail -20

我测试的一台公网 Ubuntu 22.04,开 22 端口 6 小时,失败登录 1843 次,主要用户名是 root、admin、test。接下来我们做一套 Linux服务器安全加固怎么做 的可复制流程:密钥登录、关 root、改 SSH 策略、上 Fail2ban、开防火墙。

第一章:SSH密钥登录教程,先留后路再锁门

注意!不要先断开当前 SSH 窗口。Now watch this,我们先在本地生成密钥:

ssh-keygen -t ed25519 -C "server-login" -f ~/.ssh/id_ed25519_server

把公钥推到服务器:

ssh-copy-id -i ~/.ssh/id_ed25519_server.pub user@你的服务器IP

如果没有 ssh-copy-id,就手动追加:

cat ~/.ssh/id_ed25519_server.pub | ssh user@IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

接下来开第二个终端验证:

ssh -i ~/.ssh/id_ed25519_server user@IP

能进去再改配置。打开文件:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

sudo nano /etc/ssh/sshd_config

把这些项改成这样:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 20
X11Forwarding no
AllowUsers user

如果你要改端口,比如 2222,加入:

Port 2222

先检查语法,别把自己锁外面:

sudo sshd -t

没输出就是通过。重载服务:

sudo systemctl reload ssh

这就是最核心的 Linux SSH配置教程:先验证密钥,再禁密码,不要反过来。

第二章:防火墙与Fail2ban怎么用,爆破直接拉黑

2020行业萌芽2021快速增长2022竞争加剧2023洗牌整合2024成熟稳定

OK so,接下来加门卫。Ubuntu 用 UFW:

sudo ufw allow 2222/tcp
sudo ufw enable
sudo ufw status numbered

如果你没改端口,就允许 22/tcp。Rocky/CentOS 用 firewalld:

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

接着安装 Fail2ban。很多人搜 fail2ban怎么用,其实最稳就是少改默认、多看日志:

sudo apt update && sudo apt install fail2ban -y

创建本地规则:

sudo nano /etc/fail2ban/jail.local

写入:

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 10m
bantime = 1h

CentOS/Rocky 的 logpath 改成 /var/log/secure。启动:

sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

顺手做基础更新和最小权限:

sudo apt upgrade -y
sudo adduser deploy
sudo usermod -aG sudo deploy

别用 root 跑业务;Docker、Nginx、数据库各自用独立用户。至于有人问 免费VPN安全风险、油管怎么看、翻墙软件下载 这类网络访问问题,我的建议是:不要在生产服务器上乱装未知代理客户端,更不要把它们和 SSH 私钥放同一台机器。

第三章:怎么验证修好了,现场看结果

接下来做验收,兄弟们盯住屏幕。第一,密码登录应该失败:

ssh user@IP -p 2222

如果它提示 Permission denied (publickey),说明密码入口关了。第二,用密钥应成功:

ssh -i ~/.ssh/id_ed25519_server user@IP -p 2222

第三,看 SSH 实际监听:

sudo ss -tlnp | grep ssh

第四,模拟 3 次错误登录后看封禁:

sudo fail2ban-client status sshd

第五,看最近登录:

last -a | head
sudo journalctl -u ssh --since "30 min ago"

Before/After 揭晓:我那台测试机从每小时约 300 次密码爆破,变成日志里只剩握手失败和 Fail2ban 封禁记录;SSH 登录耗时用 time ssh 测了 5 次,平均 210ms,没有明显变慢。

免费、官方、内置方案优先:OpenSSH、UFW/firewalld、Fail2ban 已经能解决 80% 暴露风险。若你还需要远程访问加密通道或跨网络调试,也可以把 Roxi 这类工具作为选项之一了解:wizzegroup.com。今天就到这,照着做完,把你的验证结果打在评论区,我们下期继续拆服务器运维硬核现场!