我即将通过 NAT 路由器对 SSH 服务进行端口转发,从而实现 WAN 端的访问。在端口转发之前,我应该采取哪些步骤来锁定 SSH 服务。
我目前:
- 使用强密码 - 我可以/应该使用密钥文件吗?
- 使用非标准端口
想法:
- 有什么方法可以“增强”加密密钥大小,例如从 1024 位增加到 2048 位,我不知道 SSH 使用的是哪个?
- 我可以实施任何类型的反暴力破解保护吗?
- 我可以/需要实现某种相互认证吗?
我还应该做什么?我在 Linux 上使用 OpenSSH。
答案1
•使用强密码——我可以/应该使用密钥文件吗?
密钥文件将提供比密码更多的保护 -如果您使用一个非常好的密码来保护您的私钥(您在客户端使用的密钥)。
•使用非标准端口
通过这样做,您可以大大减少尝试登录的随机攻击者的数量。这是“通过隐蔽性实现安全”,但可以确保您的日志文件更干净。我就是这么做的。
•有没有什么方法可以“增强”加密密钥大小,例如从 1024 位增加到 2048 位,我不知道 SSH 使用的是哪种?
当您使用该ssh-keygen
命令生成密钥时,您可以指定任意长度的密钥。较长的密钥会导致连接启动速度变慢。如果您与服务器的连接速度不快,那么过长的密钥可能会因超时(即通过蜂窝网络)而导致您无法连接。
•我可以实施任何类型的反暴力破解保护吗?
fail2ban
正如@Darth Android 上面提到的那样,这是一个好主意。
•我可以/是否需要实现某种相互认证?
使用的密钥系统ssh
已经提供了这一点。SSH 客户端应该会告诉您服务器的指纹,您应该将其与您之前记录的实际服务器指纹进行比较以进行验证。
您应该做的其他事情:
- 尽快应用所有 OpenSSH 更新
- 设置配置文件以禁止 root 登录。这样 root 访问需要 2 个密码,一个用于进入
ssh
,su
另一个用于进入后。