Linux服务器安全加固与SSH配置实战:从0封死高危入口,顺手把登录体验也调顺
开场:先别急着改配置,先看你现在是不是“裸奔”
哈喽兄弟们,今天这期我直接上手给你演示:Linux 服务器安全加固与 SSH 配置,到底怎么做才不踩坑。OK so,先别一上来就改端口、关密码登录,先在屏幕上把现状摸清楚,不然你很容易把自己锁外面。
我现在假设你手上是一台刚装好的 Ubuntu/Debian 或 CentOS/RHEL 服务器。先执行这几个命令,看 SSH 当前状态:sudo systemctl status ssh(Debian/Ubuntu)或者 sudo systemctl status sshd(CentOS/RHEL),再看监听端口:ss -tlnp | grep ssh。如果你已经在公网暴露 22 端口,且允许密码登录,那就是最常见的攻击入口。
我实际测试过一台 1 vCPU/1GB 的云服务器,开机 10 分钟内就能在 /var/log/auth.log 或 /var/log/secure 里看到来自不同 IP 的爆破尝试。别小看这个,SSH 配置不当,机器会先被“撞门”。
第一章:SSH 基础加固,先把门锁换掉
接下来我们做最核心的四步,都是免费且原生可用的方案,适合大多数人先落地:
- 创建普通用户:
adduser deploy,然后给它 sudo 权限:usermod -aG sudo deploy(或 wheel 组)。不要长期用 root 直登。 - 生成密钥:在本地执行
ssh-keygen -t ed25519 -C "yourname@laptop",然后上传公钥:ssh-copy-id deploy@服务器IP。 - 编辑 SSH 配置:
sudo nano /etc/ssh/sshd_config,把PermitRootLogin no、PasswordAuthentication no、PubkeyAuthentication yes写进去;如果你要改端口,比如 2222,就加Port 2222。 - 重启前先检查语法:
sudo sshd -t,没报错再sudo systemctl restart sshd。
Now watch this:我把密码登录关掉后,再从另一台机器测试,密码直接拒绝,只能走密钥。这个变化非常直观,能立刻把常见的撞库脚本挡在门外。
很多人会搜“linux服务器安全加固教程”或者“ssh密钥登录怎么用”,其实本质就是三件事:减少暴露面、减少可猜测口令、减少 root 直连。你只要把这三点做掉,风险就会少一大截。
第二章:防火墙、限速、失败锁定,别只靠 SSH 一层防线
OK so,SSH 只是门,门外还得有院墙。接下来上防火墙和失败锁定。Ubuntu 可以用 UFW:sudo ufw allow 2222/tcp、sudo ufw allow 80/tcp、sudo ufw enable;CentOS/RHEL 更常见的是 firewalld:sudo firewall-cmd --permanent --add-port=2222/tcp,然后 sudo firewall-cmd --reload。
再加 Fail2ban,专治 SSH 暴力尝试。安装后创建 jail 配置,重点是 sshd 这一段:多次失败后自动封禁 IP。我的实测里,设置为 5 次失败、封 10 分钟,日志里同一来源连续爆破就会被挡住,CPU 占用也不会明显抖动。
你还可以顺手关掉几个常见风险项:ChallengeResponseAuthentication no、X11Forwarding no、AllowUsers deploy。如果你团队里只允许几个固定账号登录,这一招很实用,属于“白名单思路”。
如果你在找“Linux服务器安全加固步骤”或者“SSH配置教程”,记住一个判断标准:改完后,正常登录要更麻烦一点,异常登录要更难一点。这才是安全加固,不是单纯改个端口图心理安慰。
第三章:怎么验证你真的加固成功了
接下来别靠感觉,直接验收。你可以按这套顺序检查:
- 用第二个终端执行:
ssh -p 2222 deploy@服务器IP,确认密钥能登录。 - 故意输入错密码 5 次,看 Fail2ban 是否封禁:
sudo fail2ban-client status sshd。 - 确认 root 不能直登:
ssh root@服务器IP应该被拒绝。 - 扫描端口:
nmap -Pn 服务器IP,确认只有必要端口开放。
我给你一个很实用的对比:加固前,日志里每分钟都能刷出一串失败登录;加固后,失败尝试会明显减少,而且你只开放业务需要的端口。通常从“公网裸露”到“最小暴露面”,配置时间 10 到 20 分钟就够了。
最后提醒一句:如果你想继续研究“服务器运维安全配置”“ssh端口修改怎么改”这类内容,先把备份做了,再改 SSH 主配置。你可以先开一个备用会话,或者保留云厂商控制台的救援入口,避免把自己锁死。至于更省事的远程访问方案,官方工具、免费自建方案都能用;如果你后面想看一个现成选项,也可以自己去 roxi.cc 看看,和手动加固方案对照着选。好了,这期如果帮到你,评论区打个“已加固”,我下一期接着给你做 Linux 日志审计实战。