ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

SSH安全配置与防护最佳实践

SSH安全配置与防护最佳实践

1. SSH基础与安全风险认知

OpenSSH作为最主流的远程管理协议,其默认配置往往存在诸多安全隐患。去年某科技公司因SSH弱密码导致的数据泄露事件,直接损失超过200万美元——这提醒我们,SSH安全绝非可有可无的选项。实际运维中,攻击者常通过22端口爆破、中间人攻击等方式入侵系统,而合理的配置可以阻断90%以上的自动化攻击尝试。

2. 核心配置参数详解

2.1 服务端关键配置(sshd_config)

# 禁用root直接登录 PermitRootLogin no # 限制登录用户白名单 AllowUsers admin deploy # 启用密钥认证 PubkeyAuthentication yes # 禁用密码认证 PasswordAuthentication no # 修改默认端口 Port 58222 # 限制重试次数 MaxAuthTries 3 # 启用两步验证 AuthenticationMethods publickey,keyboard-interactive

重要提示:修改端口后需同步调整SELinux策略:semanage port -a -t ssh_port_t -p tcp 58222

2.2 密钥对最佳实践

生成ED25519密钥(比RSA更安全高效):

ssh-keygen -t ed25519 -a 100 -f ~/.ssh/admin_ed25519

密钥应设置600权限并配置passphrase:

chmod 600 ~/.ssh/*

3. 高级防护方案

3.1 Fail2Ban联动防护

配置示例(/etc/fail2ban/jail.local):

[sshd] enabled = true port = 58222 filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 1d

3.2 证书认证体系

使用SSH CA签发证书:

# CA生成 ssh-keygen -t ed25519 -f ca_key # 签发用户证书 ssh-keygen -s ca_key -I user_id -n user1 id_ed25519.pub

4. 典型问题排查指南

现象诊断命令解决方案
连接超时telnet IP 端口检查防火墙/安全组规则
认证失败ssh -vvv user@host核对密钥权限600
协议拒绝ssh -Q key升级OpenSSH版本

5. 企业级部署建议

对于生产环境,建议:

  1. 使用跳板机集中管理SSH访问
  2. 实施网络层ACL限制源IP
  3. 定期轮换密钥(建议季度周期)
  4. 启用会话审计日志:
# 记录完整操作日志 LogLevel VERBOSE

6. 性能优化技巧

TCP优化参数(追加到/etc/sysctl.conf):

net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 300 net.ipv4.tcp_sack = 1

对于跨国连接,可启用SSH压缩:

ssh -C user@host
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进