首页 / 服务器运维 / Ubuntu/Debian SSH加

Ubuntu/Debian SSH加固现场演示:禁用密码、限流爆破、10分钟完成基线配置

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

第1章:OK so,先看攻击面——你的SSH到底在被谁扫?

⚙️STEP 1环境搭建📋STEP 2编码实现🎯STEP 3测试验证🚀STEP 4部署上线

兄弟们开机!这里是eccfy,今天我们不讲玄学安全,直接上服务器屏幕。我的测试机是Debian 12,公网IP新开不到24小时,auth.log里已经有312次失败登录。这就是为什么“Linux服务器安全加固教程”第一步不是装一堆工具,而是先看证据。

接下来你跟我敲:

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

sudo ss -tulpn | grep ssh

lastb | head

Now watch this:如果你看到root、admin、test这种用户名疯狂失败,说明机器人在扫。根因通常就三个:22端口暴露、允许密码登录、root可直接登录。注意,改端口不是安全本体,它只是降噪;真正有效的是密钥登录、禁密码、限制来源、Fail2ban限流。

第2章:接下来动手改SSH——先留后门,再切配置

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

重要提醒:别一上来就断开当前SSH!先开第二个终端保持登录,防止把自己锁外面。下面是“ssh密钥登录配置”的稳定流程。

  1. 本地生成密钥:ssh-keygen -t ed25519 -C "ops@eccfy" -f ~/.ssh/eccfy_ed25519

  2. 上传公钥:ssh-copy-id -i ~/.ssh/eccfy_ed25519.pub user@你的服务器IP

  3. 编辑配置:sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak,然后执行 sudo nano /etc/ssh/sshd_config

把这些项改成这样,做“SSH端口修改教程”的同学注意端口别和业务冲突:

Port 22222

PermitRootLogin no

PasswordAuthentication no

PubkeyAuthentication yes

MaxAuthTries 3

ClientAliveInterval 300

AllowUsers user

配置检查,不报错再重载:

sudo sshd -t && sudo systemctl reload ssh

接着开防火墙。Debian/Ubuntu用ufw最省事:

sudo ufw allow 22222/tcp

sudo ufw allow 80,443/tcp

sudo ufw enable

sudo ufw status numbered

如果你用云厂商安全组,记得同步放行22222,否则服务器里开了也连不上。这里很多人会搜“免费VPN远程服务器安全吗”,我的建议是:生产SSH不要依赖来路不明免费VPN,它解决不了账号爆破和弱口令问题,还可能引入不稳定出口IP。

第3章:Fail2ban限流爆破,并验证真的修好了

OK,最后上“fail2ban怎么用”实战。安装:

sudo apt update && sudo apt install -y fail2ban

新建本地规则:

sudo nano /etc/fail2ban/jail.local

写入:

[sshd]

enabled = true

port = 22222

filter = sshd

logpath = /var/log/auth.log

maxretry = 3

findtime = 10m

bantime = 1h

启动并查看:

sudo systemctl enable --now fail2ban

sudo fail2ban-client status sshd

我的实测:改之前22端口在6小时内记录到184次失败登录;改端口、禁密码、开Fail2ban后,同样6小时只有7次连接尝试,失败密码记录为0。测量方式就是对比 grep "Failed password" /var/log/auth.log | wc -l 的时间窗口。

怎么验证它生效:第一,用新终端执行 ssh -i ~/.ssh/eccfy_ed25519 -p 22222 user@IP 能登录;第二,执行 ssh -p 22222 root@IP 应该被拒;第三,密码方式 ssh -o PubkeyAuthentication=no -p 22222 user@IP 应该失败;第四,sudo fail2ban-client status sshd 能看到监控状态。搞定的话,在评论区打个“已加固”。如果你确实需要跨地区稳定远程管理,官方线路、云厂商堡垒机、WireGuard自建都可以;付费工具也只是选项之一,例如 Roxi:https://wizzegroup.com。