首页 帮助中心 香港云服务器 生产环境Ubuntu服务器SSH安全加固:必做的10个技巧
生产环境Ubuntu服务器SSH安全加固:必做的10个技巧
时间 : 2026-10-28 10:03:15
编辑 : 华纳云
阅读量 : 22

对于任何部署在公网的生产环境服务器而言,SSH(Secure Shell)是运维人员管理系统的核心通道,同时也是攻击者最常瞄准的突破口。

一台刚刚上线、使用默认配置的Ubuntu服务器,在接入公网后的几分钟内,就会迎来全球各地自动化脚本的密集探测和暴力破解尝试。如果SSH防护不到位,轻则服务器资源被恶意占用(如被植入木马),重则数据泄露、业务瘫痪。在生产环境中,SSH的安全性不能靠“运气”,必须靠系统性的配置加固。

以下10个技巧,从身份认证、访问控制到系统底层,构成了Ubuntu生产环境SSH安全的完整防线。

1.禁用密码登录,强制使用SSH密钥

这是所有加固措施中最重要、也是必须第一步完成的操作。密码存在被暴力破解或字典攻击的风险,而SSH密钥认证基于非对称加密,从根本上免疫了密码猜测。

操作:在本地生成密钥对(推荐使用Ed25519算法:`ssh-keygen-t ed25519`),将公钥上传至服务器的`~/.ssh/authorized_keys`文件中。然后编辑`/etc/ssh/sshd_config`,将`PasswordAuthentication`设为`no`,并确保`PubkeyAuthentication yes`已启用。重启SSH服务前,务必保持当前会话不要断开,新开一个终端验证密钥登录成功后再关闭旧会话。

2.禁止Root用户直接登录

Root用户拥有系统的最高权限。允许Root直接通过SSH登录,等于把系统的“万能钥匙”暴露在公网上。攻击者一旦猜中密码,就能立刻接管整台服务器。

操作:在`sshd_config`中设置`PermitRootLogin no`。日常运维应使用普通用户(如`deploy`)登录,需要执行特权命令时通过`sudo`提权,这样还能留下清晰的审计日志。

3.修改默认的SSH端口

SSH默认监听22端口,绝大多数自动化扫描脚本和暴力破解工具只针对默认端口进行探测。将端口改为1024到65535之间的高位端口(如2222、5022),能直接过滤掉90%以上的无差别攻击噪音。

操作:在`sshd_config`中修改`Port`参数。切记:修改端口后,必须先在Ubuntu的防火墙(UFW)或云平台的安全组中放行新端口,确认新端口能连接成功后,再去关闭旧端口,否则会导致服务器彻底失联。

4.限制允许登录的用户和组

如果你的服务器上运行了多个应用,创建了多个系统用户,但这些用户并不都需要远程登录权限。通过白名单机制,只允许特定的运维账号通过SSH登录。

操作:在`sshd_config`中添加`AllowUsers deploy admin`或`AllowGroups ssh-users`。配置后,任何不在白名单中的用户即便拥有正确的密钥,也会被直接拒绝连接。

5.利用云安全组限制来源IP

软件层面的防护之外,网络层的第一道关卡同样重要。如果你的运维团队有固定的办公IP,或者通过跳板机(Bastion Host)访问,完全没有必要将SSH端口开放给全球。

操作:在华纳云控制台的安全组(防火墙规则)中,将SSH端口的入站规则限制为特定的IP地址或网段。这种“白名单”机制能将攻击面缩小到极致,让未授权的来源连TCP握手都无法完成。

6.部署Fail2Ban自动封禁暴力破解

即便修改了端口、禁用了密码,服务器依然会收到尝试连接失败的日志。Fail2Ban是一个轻量级的入侵防御工具,它会实时监控系统日志,一旦发现某个IP在短时间内多次尝试连接失败,就自动调用`iptables`或`ufw`将其封禁一段时间。

操作:通过`apt install fail2ban`安装后,复制`/etc/fail2ban/jail.conf`为`jail.local`。在`[sshd]`模块中配置`maxretry=3`(允许失败3次)和`bantime=3600`(封禁1小时)即可。

7.启用双因素认证(2FA)

对于金融、政企等高安全要求的生产环境,仅仅依赖密钥可能还不够(如果私钥文件被盗)。引入双因素认证(2FA),要求在提供密钥的同时,输入由手机验证器App(如Google Authenticator)生成的动态验证码。

操作:安装`libpam-google-authenticator`,按照指引生成密钥并绑定手机。随后在`/etc/pam.d/sshd`中添加`auth required pam_google_authenticator.so`,并在`sshd_config`中设置`KbdInteractiveAuthentication yes`和`AuthenticationMethods publickey,keyboard-interactive`。

8.设置空闲超时与最大尝试次数

避免因为运维人员离开座位忘锁屏,导致未授权的物理访问;同时限制单次连接的最大认证尝试次数。

操作:在`sshd_config`中设置`ClientAliveInterval 300`(每5分钟发送一次保活信号)和`ClientAliveCountMax 0`(如果无响应,立即断开)。同时设置`MaxAuthTries 3`,限制每次连接最多尝试3次认证。

9.禁用不必要的SSH端口转发功能

SSH协议自带TCP端口转发、X11转发等功能。在生产服务器上,如果不涉及相关的图形界面转发需求,建议关闭这些功能,防止服务器被作为内网穿透的跳板。

操作:在`sshd_config`中明确禁用:

AllowTcpForwarding no

X11Forwarding no

AllowAgentForwarding no

10.保持OpenSSH软件与系统内核最新

这是所有安全防线的基石。OpenSSH本身也偶尔会被爆出高危漏洞(如著名的regreSSHion漏洞)。生产环境不能长期不更新系统。

操作:定期执行`sudo apt update&&sudo apt upgrade`。可以配置`unattended-upgrades`自动安装安全更新。在升级内核或OpenSSH后,记得重启`sshd`服务。

软件层面的安全,离不开稳定的底层网络底座

这10个技巧可以将Ubuntu服务器的SSH防护提升到企业级标准。但在生产环境中,SSH的稳定性还与服务器的网络链路质量息息相关。

如果服务器遭遇了DDoS攻击导致网络瘫痪,或者因为跨境链路晚高峰丢包严重导致SSH频繁超时断连,此时再去谈“安全配置”就失去了意义——因为你的管理通道已经不可用了。

华纳云的云服务器方案,从基础设施维度为生产环境的SSH安全与管理提供了可靠的底座:

-稳定不回源的管理链路:华纳云香港及美国节点全系接入CN2 GIA精品线路,三网直连优化。这意味着从国内办公网络SSH连接生产服务器时,延迟极低且不会因为晚高峰拥塞而丢包,确保你在执行`sshd_config`修改时,不会因为网络意外中断而把服务器“锁”在门外。

-云安全组双层防御:华纳云提供可视化控制台的安全组功能。结合上文第5点,你可以直接在控制台层面完成端口的精细化入站限制,与服务器内部的UFW形成“云网协同”的双重防护网。

-企业级I/O性能保障:Fail2Ban高频扫描日志、SSH记录审计日志都依赖磁盘I/O。华纳云标配的企业级NVMe SSD保障了这些安全组件的写入不会成为系统瓶颈。

-透明的成本控制:华纳云坚持“续费同价”政策。安全加固是一个长期的运维过程,一台续费稳定、性能可靠的服务器,让你无需在次年面临成本翻倍的压力。

SSH安全加固的核心逻辑是:让不该进来的人进不来,让该进来的人连得稳。完成上述配置后,再用一台网络底座扎实的服务器来承载你的业务。

相关内容
客服咨询
7*24小时技术支持
技术支持
渠道支持