通过公钥/私钥提高 ssh 登录的安全性:在路由器或服务器中使用端口转发?

use*_*395 0 ssh port-forwarding router

我想通过 SSH 从互联网访问我的 Ubuntu 服务器,并将客户端的公钥存储在该服务器上。

为了提高安全性,我想使用 22 以外的端口来降低侵入我的服务器的风险(因为脚本孩子必须猜测该端口号)。

在路由器中定义端口转发(如下图所示)还是在服务器上定义端口转发(如https://askubuntu.com/a/264048中所述)更好?

在此输入图像描述

use*_*186 5

(大部分)没关系

如果您只是想减少服务器系统日志中的登录尝试次数,则任何一种方法都可以。

具体来说,有两种方法:

  1. 您可以让路由器侦听端口 220022 并将其设置为将其转发到 IP 192.168.1.200 的端口 22。这样您就不必sshd_config在服务器中编辑。
  2. 您可以让路由器侦听端口 220022 并将其设置为将其转发到 IP 192.168.1.200 的端口 220022。这样你就必须编辑sshd_config服务器中的 ,使其不监听默认端口 22 并监听你选择的端口。

本地威胁又如何呢?

如果您担心家里有人侵入您的服务器,或者担心您家外面停着一辆黑色面包车的人侵入您的家庭 WiFi 网络,请尝试侵入您的服务器。那么仅仅更改默认端口可能无法拯救您。

其他措施

正如 Thomas Ward 在评论中指出的,将 ssh 访问限制为少数外部 IP 地址是更好的安全措施。请参阅限制用户对特定 IP 的 SSH 访问了解如何执行此操作。

如果您有几个远程位置(例如办公室和姐姐的地方)可供登录,则此方法有效。如果您经常旅行并且想要从所有酒店的互联网登录,情况就不同了。

VPN解决“酒店”问题

您将需要 VPN 服务,可以由您的雇主提供,也可以是消费级付费 VPN。然后,您可以将 VPN 服务器的 IP 地址(或 IP 地址范围)添加到允许的 IP 地址列表中。在路上(在酒店)时,首先连接到 VPN,然后连接到您的 ssh 服务器。

停止暴力

有多种工具可以阻止重复失败的 ssh 尝试(强力)。fail2ban并且sshguard都受到高度重视。

希望这可以帮助