CentOS SSH安全加固技巧
导读:CentOS SSH 安全加固清单 基础加固 保持系统与安全组件为最新:执行 sudo yum update -y,并定期更新 OpenSSH 软件包,及时修复已知漏洞。 仅使用 SSH 协议 2:在 /etc/ssh/sshd_conf...
CentOS SSH 安全加固清单
基础加固
- 保持系统与安全组件为最新:执行
sudo yum update -y,并定期更新 OpenSSH 软件包,及时修复已知漏洞。 - 仅使用 SSH 协议 2:在
/etc/ssh/sshd_config中设置Protocol 2,避免存在设计缺陷的 SSHv1。 - 禁止空密码登录:设置
PermitEmptyPasswords no,降低被暴力尝试的风险。 - 限制认证尝试次数:设置
MaxAuthTries 3~5,减少暴力破解窗口。 - 启用详细日志并持续监控:确保 SSH 日志写入 /var/log/secure,并定期检查失败登录与异常行为。
认证与访问控制
- 禁用 root 直接登录:将
PermitRootLogin no;如确需临时保留密钥登录能力,可设为PermitRootLogin prohibit-password,但更推荐完全禁用。 - 创建具备 sudo 权限的普通用户:例如
sudo usermod -aG wheel < user>,确保可通过sudo执行管理命令。 - 使用 SSH 密钥认证 替代密码:生成密钥对
ssh-keygen -t rsa -b 4096,使用ssh-copy-id < user> @< host>分发公钥,服务器端启用PubkeyAuthentication yes。 - 完全禁用密码登录(在密钥可用且测试通过后):设置
PasswordAuthentication no,显著降低暴力破解成功率。 - 精细化访问控制:通过
AllowUsers < user> @< ip/网段>或AllowGroups < group>限制来源与账户;必要时使用DenyUsers/DenyGroups拒绝特定主体。
网络与端口
- 修改默认端口:在
/etc/ssh/sshd_config中设置Port < 新端口>(如 2222/2025),减少面向 22 端口的自动化扫描与噪声。 - 同步开放防火墙端口:使用
firewall-cmd --permanent --add-port=< 新端口> /tcp & & firewall-cmd --reload;如使用传统 iptables,需新增对应放行规则。 - 变更端口后的回退策略:建议先保留
Port 22与新端口并存,完成连通性与登录测试后再移除 22,避免失联。 - 如启用 SELinux:新增端口需执行
semanage port -a -t ssh_port_t -p tcp < 新端口>,否则sshd可能无法绑定新端口。 - 可选的网络层限制:在边界防火墙或云安全组层面仅允许可信 IP/网段 访问 SSH 端口。
会话与入侵防护
- 空闲会话超时:设置
ClientAliveInterval 300与ClientAliveCountMax 3,在连续 15 分钟无响应后自动断开,降低会话劫持风险。 - 防暴力破解:部署 Fail2Ban,启用
[ssh]监狱,设置maxretry=3、bantime=600,并将port指向实际监听端口;日志路径使用 /var/log/secure。 - 可选增强:启用 双因素认证(2FA),为关键账户增加第二层校验,提高账户劫持难度。
变更与验证流程
- 操作前准备:备份配置
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak;保留一个已登录的 root 或管理会话作为“逃生通道”。 - 配置生效:执行
sudo systemctl restart sshd并检查状态sudo systemctl status sshd;必要时使用ss -tnlp | grep :< 端口>或netstat -ntpl验证监听端口。 - 逐项验证:从新端口测试登录、验证密钥登录与
sudo权限、确认root无法登录、检查 Fail2Ban 是否命中;确认无误后再关闭 Port 22。 - 持续运维:定期审计 /var/log/secure,关注失败登录与异常来源;保持系统与 OpenSSH 的及时更新。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS SSH安全加固技巧
本文地址: https://pptw.com/jishu/760705.html
