我想通过 HTTPS 和 SSH 远程访问我的私人本地 LAN 中的 Linux 服务器。
服务器连接到我的 DSL 路由器(德国 Fritz!Box)。由于这个原因,我无法直接访问我的服务器,因此我配置了 NAT 端口转发到端口 443 和 22。
我没有考虑到 NAT 端口转发的缺点:在我的本地服务器上,我只能看到我的路由器的 IP 作为每个包裹的发送者。
我操作一个小型虚拟 Linux 服务器,在其中我使用 fail2ban 和一些 iptables 规则来防止某些攻击(例如,限制连接到我国的允许 IP 地址),fail2ban 会自动阻止登录尝试失败次数过多的 IP 地址。
由于 NAT,我无法对本地服务器执行相同操作(或者可以吗?)。那么我该怎么办?
我考虑将虚拟服务器用作中继:从本地服务器打开到公共虚拟服务器的 SSH 连接,并创建两个反向 SSH 隧道。然后虚拟服务器可以应用一些防火墙规则。
这是一种合理的方法吗?您能给出一些其他可行的建议吗?
答案1
根据我使用 Fritz!Box 设备的经验,我也遇到过类似的 NAT 问题。某些型号似乎将源地址更改为自己的 LAN 地址。
您可以尝试将所需主机设置为 DMZ,为此,请删除该主机的所有端口转发,然后创建新的端口转发,但您必须从“暴露主机”列表中选择。请注意,这将重定向全部端口到选定的主机,因此请记住在目标机器上设置防火墙,因为这会将其暴露在几乎所有端口上的互联网上(设备中集成服务的某些端口可能会被 Fritz!Box 内部使用,因此不会转发)。