只需 3 个步骤,使用堡垒主机保护您的网络

您的内部网络上是否有需要从外部访问的机器? 使用堡垒主机作为网络的看门人可能是解决方案。

什么是堡垒主机?

堡垒字面意思是一个坚固的地方。 用计算机术语来说,它是您网络上的一台机器,可以作为传入和传出连接的看门人。

您可以将堡垒主机设置为接受来自 Internet 的传入连接的唯一机器。 然后,依次将网络上的所有其他计算机设置为仅接收来自堡垒主机的传入连接。 这有什么好处?

最重要的是,安全。 堡垒主机,顾名思义,可以有非常严密的安全性。 这将是抵御任何入侵者的第一道防线,并确保您的其他机器受到保护。

它还使您的网络设置的其他部分更加容易。 您只需将一个传入端口转发到您的堡垒主机,而不是在路由器级别转发端口。 从那里,您可以分支到您需要在您的专用网络上访问的其他机器。 不要害怕,这将在下一节中介绍。

图表

这是个 example 典型的网络设置。 如果您需要从外部访问您的家庭网络,您可以通过互联网进入。 然后,您的路由器会将该连接转发到您的堡垒主机。 连接到堡垒主机后,您将能够访问网络上的任何其他计算机。 同样,除了堡垒主机之外,将无法直接从 Internet 访问机器。

拖够了,是时候使用堡垒了。

1.动态DNS

你们当中的精明人士可能想知道如何通过互联网访问您的家庭路由器。 大多数互联网服务提供商 (ISP) 会为您分配一个临时 IP 地址,该地址经常更改。 如果您想要静态 IP 地址,ISP 往往会收取额外费用。 好消息是,现代路由器倾向于在其设置中加入动态 DNS。

动态 DNS 以设定的时间间隔使用新 IP 地址更新您的主机名,确保您始终可以访问您的家庭网络。 有许多提供上述服务的供应商,其中之一是 无IP,甚至有免费层. 请注意,免费套餐将要求您每 30 天确认一次主机名。 这只是一个 10 秒的过程,他们提醒无论如何都要这样做。

注册后,只需创建一个主机名。 您的主机名必须是唯一的,仅此而已。 如果您拥有 Netgear 路由器,他们会提供免费的动态 DNS,无需每月确认。

现在登录到您的路由器,并查找动态 DNS 设置。 这会因路由器而异,但如果您没有发现它隐藏在高级设置下,请查看制造商的用户手册。 您通常需要输入的四个设置是:

  1. 提供者
  2. 域名(您刚刚创建的主机名)
  3. 登录名(用于创建动态 DNS 的电子邮件地址)
  4. 密码

如果您的路由器没有动态 DNS 设置,No-IP 提供软件,您可以 安装在本地机器上 达到同样的效果。 这台机器必须在线,以使动态 DNS 保持最新。

2.端口转发或重定向

路由器现在需要知道将传入连接转发到哪里。 它根据传入连接上的端口号执行此操作。 一个好的做法是不要将默认的 SSH 端口(即 22)用于面向公众的端口。

不使用默认端口的原因是黑客有专门的端口嗅探器。 这些工具会不断检查您网络上可能打开的知名端口。 一旦他们发现您的路由器正在接受默认端口上的连接,他们就会开始使用常用用户名和密码发送连接请求。

虽然选择一个随机端口不会完全阻止恶意嗅探器,但它会大大减少进入路由器的请求数量。 如果您的路由器只能转发相同的端口,那不是问题,因为您应该将堡垒主机设置为使用 SSH 密钥对身份验证,而不是用户名和密码。

路由器的设置应如下所示:

  1. 服务名称,可以是 SSH
  2. 协议(应设置为 TCP)
  3. 公共端口(应该是不是 22 的高端口,使用 52739)
  4. 私有 IP(堡垒主机的 IP)
  5. 私有端口(默认 SSH 端口,即 22)

堡垒

您的堡垒唯一需要的是 SSH。 如果在安装时未选择此项,只需键入:

sudo apt install OpenSSH-client
sudo apt install OpenSSH-server

安装 SSH 后,请确保将 SSH 服务器设置为使用密钥而不是密码进行身份验证。 确保您的堡垒主机的 IP 与上述端口转发规则中设置的 IP 相同。

我们可以进行快速测试以确保一切正常。 要模拟在您的家庭网络之外,您可以在使用移动数据时将智能设备用作热点。 打开终端并键入,将 替换为堡垒主机上帐户的用户名,将 替换为上述步骤 A 中设置的地址:

ssh -p 52739 <username>@<dynamicDNSaddress>

如果一切设置正确,您现在应该会看到堡垒主机的终端窗口。

3. 隧道

您几乎可以通过 SSH 隧道传输任何东西(在合理范围内)。 为了 example,如果您想从 Internet 访问家庭网络上的 SMB 共享,请连接到您的堡垒主机并打开通往 SMB 共享的隧道。 只需运行以下命令即可完成此魔法:

ssh -L 15445:<IPAddressOfSMB>:445 -p 52739 <username>@<dynamicDNSAddress>

一个实际的命令看起来像:

ssh - L 15445:10.1.2.250:445 -p 52739 [email protected] 

分解这个命令很容易。 这将通过路由器的外部 SSH 端口 52739 连接到服务器上的帐户。发送到端口 15445(任意端口)的任何本地流量都将通过隧道发送,然后转发到 IP 为 10.1.2.250 的机器和 SMB端口 445。

如果你想变得非常聪明,我们可以通过键入以下命令为整个命令设置别名:

alias sss='ssh - L 15445:10.1.2.250:445 -p 52739 [email protected]'

现在您只需在 sss 中输入终端,而 bob 是您的叔叔。

建立连接后,您可以使用以下地址访问您的 SMB 共享:

smb://localhost:15445

这意味着您将能够像在本地网络上一样从 Internet 浏览该本地共享。 如前所述,您几乎可以使用 SSH 进入任何东西。 即使是启用了远程桌面的 Windows 机器也可以通过 SSH 隧道访问。

回顾

本文涵盖的不仅仅是堡垒主机,而且您已经做得很好。 拥有堡垒主机将意味着具有暴露服务的其他设备将受到保护。 它还确保您可以从世界任何地方访问这些资源。 一定要喝咖啡、巧克力或两者兼而有之。 我们介绍的基本步骤是:

  • 设置动态 DNS
  • 将外部端口转发到内部端口
  • 创建隧道以访问本地资源

您需要从 Internet 访问本地资源吗? 您目前是否使用 VPN 来实现此目的? 您以前使用过 SSH 隧道吗?

图片来源:TopVectors/Depositphotos