CentOS 7.4 的 sshd 服务默认监听 22 端口,核心配置文件位于 /etc/ssh/sshd_config,若需提升安全性,必须禁用 root 直接登录、强制使用密钥认证并修改默认端口。
作为曾经 Linux 服务器领域的“黄金标准”,CentOS 7.4 虽然在 2024 年已正式停止维护(EOL),但在大量遗留系统、内网隔离环境及特定工业控制场景中,它依然扮演着关键角色,对于运维工程师而言,如何在不再接收安全补丁的背景下,通过优化 sshd 配置来构建最后一道防线,是当前的核心痛点。
sshd 核心配置与安全加固策略
在 CentOS 7.4 环境中,SSH 服务的安全性直接取决于 /etc/ssh/sshd_config 文件的配置逻辑,根据 2026 年网络安全行业最佳实践,仅依靠系统默认配置已无法满足等保 2.0 及现代云原生安全基线要求。
访问控制与身份验证
默认配置允许密码登录且允许 root 远程登录,这是导致服务器被暴力破解的首要原因,建议执行以下关键修改:
- 禁用 Root 直接登录:将
PermitRootLogin设置为no,这是防止攻击者直接针对最高权限账户进行爆破的第一道屏障。 - 强制密钥认证:将
PasswordAuthentication设为no,仅保留PubkeyAuthentication yes,密钥对(RSA 4096 位或 Ed25519)的破解难度远高于暴力密码,且能彻底杜绝字典攻击。 - 限制登录用户:使用
AllowUsers或AllowGroups指令,仅授权特定运维账号(如ops_admin)或运维组进行 SSH 连接,实现最小权限原则。
连接参数优化
合理的连接参数不仅能提升体验,更能抵御资源耗尽型攻击(DoS)。
- 修改默认端口:将
Port从默认的22修改为高位端口(如2222或随机高位端口),虽然这不是绝对安全手段,但能过滤掉 90% 以上的自动化扫描脚本。 - 调整超时与重试:
LoginGraceTime 60:将登录超时时间缩短至 60 秒,减少僵尸会话占用。MaxAuthTries 3:将最大认证尝试次数限制为 3 次,快速切断恶意连接。ClientAliveInterval 300和ClientAliveCountMax 2:实现空闲连接自动断开,释放服务器资源。
CentOS 7.4 与主流系统的对比及迁移考量
许多用户询问 CentOS 7.4 sshd 配置与 Ubuntu 22.04 或 Rocky Linux 9 有何不同,虽然底层 OpenSSH 版本逻辑相似,但包管理器和默认安全策略存在差异。
| 特性 | CentOS 7.4 (OpenSSH 7.4) | Ubuntu 22.04 / Rocky 9 (OpenSSH 8.8+) |
|---|---|---|
| 默认加密算法 | 支持较旧的 SHA1 和 MD5 (需手动禁用) | 默认禁用弱算法,强制使用 SHA256/SHA512 |
| 密钥格式 | 默认 RSA,支持 DSA (已废弃) | 默认 Ed25519,兼容性更强 |
| 配置语法 | 传统 sshd_config 语法 | 新增 Match 块更灵活,支持更细粒度控制 |
| 安全更新 | 已停止,需依赖第三方补丁或自编译 | 持续接收 Canonical/Red Hat 官方安全补丁 |
专家建议:2026 年的行业共识是,CentOS 7.4 不应作为新业务的生产环境首选,若因业务兼容性必须使用,建议将其置于内网 DMZ 区,并通过防火墙(Firewalld)严格限制源 IP 白名单,而非仅依赖 sshd 配置。
实战故障排查与性能调优
在实际运维中,修改配置后常遇到连接超时或权限拒绝问题,以下是基于大量实战案例归纳的排查路径。
配置生效与语法检查
每次修改 /etc/ssh/sshd_config 后,必须验证语法正确性,否则可能导致服务无法启动,造成服务器失联。
# 检查配置文件语法 sshd t # 重载配置(不中断现有连接) systemctl reload sshd # 重载配置(中断所有现有连接,慎用) systemctl restart sshd
日志分析与权限问题
若配置无误但仍无法登录,请检查以下日志:
- /var/log/secure:记录认证失败、权限拒绝等详细日志,重点关注
Failed password或Permission denied条目。 - SELinux 状态:CentOS 7.4 默认开启 SELinux,若修改了 SSH 端口或密钥路径,需调整 SELinux 上下文,否则会被静默拦截,可使用
semanage port l | grep ssh查看允许端口,或使用restorecon修复文件上下文。
性能调优参数
对于高并发服务器,可适当调整以下参数以提升吞吐量:
MaxStartups 10:30:60:设置未认证连接的最大数量为 10,30% 概率丢弃,达到 60 后全部丢弃。UseDNS no:禁用反向 DNS 查询,避免因 DNS 响应慢导致的登录延迟。
常见问题解答 (FAQ)
Q1: CentOS 7.4 停止维护后,sshd 还有安全补丁吗?
A: 官方已不再提供安全更新,建议通过编译最新版本的 OpenSSH 源码替换系统自带版本,或迁移至 AlmaLinux/Rocky Linux 等社区维护的替代品。Q2: 如何在不重启 sshd 服务的情况下应用新配置?
A: 使用 `systemctl reload sshd` 命令,该命令会向 sshd 主进程发送 SIGHUP 信号,使其重新读取配置文件,已建立的连接不会断开。Q3: 修改 SSH 端口后,防火墙如何配置?
A: 若使用 firewalld,需执行 `firewallcmd permanent addport=新端口/tcp` 和 `firewallcmd reload`,若使用 iptables,需添加 `iptables A INPUT p tcp dport 新端口 j ACCEPT`。如果您在配置过程中遇到具体的报错代码,欢迎在评论区留言,我们将提供针对性解答。
参考文献
- Red Hat, Inc. (2024). CentOS Linux 7 End of Life Date. Red Hat Customer Portal. 指出 CentOS 7 于 2024 年 6 月 30 日结束生命周期,建议用户迁移。
- OpenSSH Project. (2026). OpenSSH Security Best Practices. OpenSSH Official Documentation. 提供最新的加密算法推荐及配置安全基线。
- 中国信息安全测评中心. (2025). 网络安全等级保护基本要求 (GB/T 222392019) 实施指南. 国家标准化管理委员会. 关于远程访问控制及身份鉴别的技术规范。
- Lin, T., & Zhang, Y. (2025). Legacy Linux Systems Security Hardening Strategies in Cloud Environments. Journal of Cybersecurity Research, 12(3), 4558. 探讨遗留系统在现代云环境下的隔离与加固方案。

