SSH登录如何提高安全性_SSH登录安全性的强化配置指南

SSH登录如何提高安全性_SSH登录安全性的强化配置指南
最新回答
対你不够好り

2022-08-10 17:53:39

SSH登录安全性的强化可通过修改默认端口、禁用密码登录启用密钥认证、限制用户和IP访问、启用Fail2Ban及关闭root登录等措施实现,同时需同步配置防火墙并测试连接。 以下是具体配置指南:

  • 修改默认端口SSH默认使用22端口,易成为攻击目标。修改端口可减少自动扫描和爆破风险:

    编辑配置文件:/etc/ssh/sshd_config,找到Port 22,修改为非知名端口(如2222、4422)。

    保存后重启服务:systemctl restart sshd。

    关键点:确保防火墙放行新端口,并测试备用连接(如控制台登录)以防配置错误导致无法访问。

  • 禁用密码登录,启用密钥认证密码易被暴力破解,密钥认证更安全且支持免密登录:

    生成密钥对

    推荐使用ed25519算法:ssh-keygen -t ed25519(或RSA,至少2048位)。

    生成后,公钥(.pub文件)需上传至服务器~/.ssh/authorized_keys。

    配置SSH服务

    在sshd_config中设置:PasswordAuthentication noPubkeyAuthentication yes

    测试密钥登录成功后,再关闭密码验证,避免服务中断。

  • 限制用户与来源IP仅允许特定用户和可信IP访问,缩小攻击面:

    用户限制

    在sshd_config中设置:AllowUsers your_usernameAllowGroups ssh-access

    IP限制

    结合防火墙规则(如ufw或iptables)限制源IP。例如:ufw allow from 192.168.1.0/24 to any port 2222

  • 启用Fail2Ban防暴力破解Fail2Ban可监控日志,自动封禁多次失败的IP:

    安装与配置

    Debian/Ubuntu系统:apt install fail2ban。

    复制默认配置文件:cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local。

    在jail.local中启用SSH保护:[sshd]enabled = true

    启动服务:systemctl enable fail2ban && systemctl start fail2ban

  • 其他安全建议

    禁用root远程登录:在sshd_config中设置PermitRootLogin no,使用普通用户登录后通过su或sudo提权。

    避免使用常见用户名:如admin、root,降低被猜测的风险。

    设置登录超时:ClientAliveInterval 300 # 每300秒检查一次连接ClientAliveCountMax 2 # 最多允许2次无响应后断开

    定期更新系统与OpenSSH:修复已知漏洞,保持软件最新。

    开启SSH日志审计:在sshd_config中设置LogLevel VERBOSE,记录详细登录信息以便排查问题。

注意事项

  • 修改配置前建议备份原文件(如cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak)。
  • 每次修改后需重启SSH服务(systemctl restart sshd)使配置生效。
  • 测试时确保有备用访问方式(如控制台登录),避免因配置错误导致服务器无法管理。

通过以上措施,SSH登录的安全性将显著提升,有效防御暴力破解、中间人攻击等常见威胁。