让你的ssh连接更安全

缘起 最近服务器日志有一些ssh的暴力破解登录记录。所以尝试使用下面几个方案来保证ssh的安全。 修改ssh配置 对 SSH 进行安全加固可以通过多种不同的策略和手段来实行,以下是一些有效的措施: 禁用 Root 登录: 修改 SSH 配置文件 /etc/ssh/sshd_config 中的 PermitRootLogin 选项,将其设置为 no,以防止通过 SSH 使用 root 用户直接登录服务器。 使用公钥加密: 如前所述,通过使用基于密钥的认证来替代密码认证可以极大地提高安全性。 限制用户 SSH 访问: 在 /etc/ssh/sshd_config 中使用 AllowUsers 或 AllowGroups 指令来限制那些用户或者组可以通过 SSH 登录。同样,可以使用 DenyUsers 或 DenyGroups 以禁止特定用户或用户组的访问。 SSH 协议版本: 确保使用的是 SSH-2,因为 SSH-1 已知存在安全漏洞。 更改默认 SSH 端口: 修改配置文件中的 Port 选项,将 SSH 服务的监听端口从默认的 22 更改到其他值。 使用 TCPWrappers 限制访问: 通过 /etc/hosts.allow 和 /etc/hosts.deny 控制哪些 IP 地址允许或拒绝访问。 设置连接超时: 设置自动注销用户的超时时间,避免定期保持未使用的 SSH 会话。使用参数 ClientAliveInterval 和 ClientAliveCountMax 控制这些设置。 使用 Two-Factor Authentication(两因素认证): 安装并配置像 Google Authenticator 这样的两因素认证系统,要求用户在登录时提供密码以及来自手机或其他设备的一次性密码(OTP)。 使用 iptables 或 ufw 防火墙: 配置 Linux 防火墙以只允许特定的 IP 地址或 IP 范围来进行 SSH 连接。 限制最大登录尝试次数: 在 /etc/ssh/sshd_config 文件中设置 MaxAuthTries 限制登录尝试的次数。 使用复杂且定期更新的密码: 再次强调即使在启用密钥登录的情况下,也应该使用强密码并定期更新。 监控 SSH 访问日志: 定期查看 /var/log/auth.log 文件,分析与 SSH 相关的身份验证尝试和其他可能的安全问题。 配置 syslog 以检测 SSH 访问尝试: 使用 syslog 或其他日志管理工具进行安全监测,你可以设置触发器来警报异常 SSH 活动。 设置只读用户: 为需要通过 SSH 访问服务器但不需要修改任何内容的用户设置只读访问权限。 使用安全套接字隧道协议(SFTP)代替 FTP: 对于文件传输,使用 SFTP 替代不安全的 FTP 协议。 修改sshd监听端口 备份配置文件: 在更改任何配置之前,建议先对原始文件进行备份。 sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup 编辑 SSH 配置文件: 打开 /etc/ssh/sshd_config 文件以编辑。你可以使用 nano 或你喜欢的任何文本编辑器进行编辑。 sudo nano /etc/ssh/sshd_config 查找并更改端口号: 在 sshd_config 文件中,找到带有 Port 22 的行。如果这一行以 # 开头,表示它被注释掉了。你需要取消注释(删除 #)并更改为你想用的新端口号。例如,如果你想将 SSH 端口更改为 2222,则对应行应类似于: Port 2222 确保所选的新端口不与系统中任何其他服务的端口冲突,且在 /etc/services 中没有列出。 ...

2024-04-02 · 3 分钟 · czyt