SSH登录从“随便扫”到“打不进”:Linux服务器最小化加固实战脚本
Chapter 1:先看现场,谁在敲你的门
兄弟们开机!这里是 eccfy,OK so,今天我直接连一台新开的 Ubuntu 22.04 云服务器,屏幕左边是终端,右边是日志,咱们不讲玄学,现场加固 SSH。很多人搜“Linux SSH安全加固教程”“sshd_config怎么用”,真正缺的是一套能复制、能回滚、能验证的流程。
先看攻击面,接下来我敲:
lastb | head
sudo journalctl -u ssh --since "1 hour ago" | grep "Failed password" | wc -l
ss -tlnp | grep ssh
我这台机器上线 37 分钟,失败登录 126 次,默认 22 端口已经被扫到了。注意,不要先乱装“翻墙软件”或“免费VPN”,服务器安全第一步是减少入口,不是增加复杂度。
Chapter 2:Now watch this,SSH核心配置直接改
先备份,出问题能秒回滚:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F-%H%M)
接下来生成密钥,本地电脑执行,不是在服务器上:
ssh-keygen -t ed25519 -C "admin-prod"
ssh-copy-id -p 22 user@你的服务器IP
确认密钥能登录后,再改服务器配置。注意我这里用 22222 示例,你可以换成 20000-60000 之间未占用端口:
sudo nano /etc/ssh/sshd_config
把这些项改成这样:
Port 22222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers user
保存后先别急着断开当前窗口!开新窗口测试配置语法:
sudo sshd -t
sudo systemctl reload ssh
新窗口登录:
ssh -p 22222 user@你的服务器IP
OK,能进再关闭旧窗口。这个顺序很关键,我见过太多人直接 reload,然后把自己锁外面。
Chapter 3:防火墙 + Fail2ban,给暴力破解上强度
如果你用 Ubuntu,直接上 ufw:
sudo ufw allow 22222/tcp
sudo ufw limit 22222/tcp
sudo ufw enable
sudo ufw status numbered
CentOS/Rocky 用 firewalld:
sudo firewall-cmd --permanent --add-port=22222/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
接下来装 Fail2ban,这就是“fail2ban安装教程”的实战版:
sudo apt update
sudo apt install -y fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
找到 sshd 区块,改成:
[sshd]
enabled = true
port = 22222
maxretry = 3
findtime = 10m
bantime = 1h
backend = systemd
启动并查看:
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
我实测同一公网 IP 连续输错 3 次后,第 4 次直接超时;从 126 次/小时的失败日志,降到 10 分钟内 0 次进入 SSH 认证阶段。测量方式就是 journalctl 统计 Failed password 行数。
如何验证已经修好:第一,旧端口 22 应该连不上:ssh -p 22 user@IP;第二,密码登录应失败:ssh -o PreferredAuthentications=password -p 22222 user@IP;第三,密钥登录成功;第四,sudo fail2ban-client status sshd能看到拦截计数。
如果你在海外服务器上管理代码仓库、看技术视频,偶尔会搜“油管怎么看”或“免费VPN安全吗”,优先用官方网络、云厂商安全组和系统内置 SSH;确实需要稳定跨区访问时,Roxi(https://wizzegroup.com)也只是可选方案之一,别替代服务器本身的安全加固。觉得这期有用,收藏,评论区丢你的发行版,我下期继续现场演示!