我来自这个问题:https://superuser.com/questions/359799/how-to-make-freebsd-box-accessible-from-internet
我想了解这整个过程port forwarding
。
我读了很多东西,但无法理解端口转发本身的基本概念。
我拥有的:
我家有一台 freebsd 服务器。
网件路由器
这就是我想要实现的目标:
能够通过互联网从 Windows 机器访问 freebsd 服务器,以便能够打开网络浏览器并访问互联网。
我还想从我拥有的 ubuntu 机器访问这个 freebsd 盒子。
如果有人能帮助我,那就太好了。
这是我为端口转发所做的 netgear 路由器设置。
答案1
我将从原始事实开始:
你有:
A
- 你的 FreeBSD 盒子,B
- 你的路由器和C
- 一些可以访问互联网的机器。它是这样的:.-----. .-----. .-----. | A | == | B | - - ( Internet ) - - | C | '-----' '-----' '-----' \_________ ________/ v `- this is your LAN
注意你的路由器如何通常情况下有效:它允许连接从LAN 上的机器到互联网(简单地说)。因此,如果
A
(或局域网上的任何其他机器)想要访问互联网,它将被允许(同样,仅谈论基本理解和配置):.-----. .-----. .-----. | A | == | B | - - ( Internet ) - - | C | '-----' '-----' '-----' `-->----' `--->--->---^
以下是不是默认允许:
.-----. .-----. .-----. | A | == | B | - - ( Internet ) - - | C | '-----' '-----' '-----' `--<----' `---<--- - - - - --<---<-----'
(即路由器保护LAN 上的计算机无法从 Internet 访问。)请注意,路由器是 LAN 中唯一可见的部分从互联网1) .
端口转发是允许第三种模式发生的原因。这包括告诉路由器什么
C
2)的连接应该转到哪个局域网上的机器。这是基于端口号- 这就是为什么它被称为转发端口。您可以通过指示路由器将来自 Internet 的给定端口上的所有连接发送到 LAN 上的特定计算机来进行配置。以下是将端口 22 转发到机器的示例A
:.------. .-------. .-----. | A | == | B | - - ( Internet ) - - | C | | | | | '-----' '-|22|-' ',--|22|' | `--<-22---' `---<---- - - - - - --<-22---'
这种通过 Internet 的连接是基于 IP 地址进行的。因此,上面的例子的更精确的表示是:
.------. .-------. .-----. | A | == | B | - - - - - ( Internet ) - - - - | C | | | | | '-----' '-|22|-' ',--|22|' | `--<-A:22--' `--<-YourIP:22 - - - - --<-YourIP:22--'
如果您没有互联网连接静止的IP,那么您必须以某种方式了解 ISP 当前分配给您的路由器的 IP。否则,
C
将不知道它必须连接到什么 IP 才能到达您的路由器(以及进一步到达A
)。要以简单的方式解决此问题,您可以使用名为的服务动态域名解析。这将使您的路由器定期发送信息到一个特殊的DNS服务器它将跟踪您的 IP 并为您提供域名。有不少免费的动态 DNS 提供商。许多路由器都带有配置选项,可以轻松地与这些路由器进行联系。
1)这又是一种简化——互联网上看到的实际设备是调制解调器——它通常可以与路由器集成,但也可能是一个单独的盒子。
2)或任何其他具有互联网连接的机器。
现在你想要什么:
简单地允许 ssh 从 Internet 访问您的计算机是一个坏主意。有数千个机器人由饼干在 Internet 上搜索具有开放 SSH 端口的计算机。他们通常会“敲击”尽可能多的 IP 的默认 SSH 端口,一旦他们发现某处运行着 SSH 守护进程,就会尝试获取暴力破解访问机器。这不仅存在潜在的入侵风险,而且还存在机器被暴力破解时网络速度减慢的风险。
如果你确实需要这样的访问权限,你至少应该
保证你有强的所有用户帐户的密码,
禁止通过 SSH 进行 root 访问(您始终可以以普通用户身份登录,或者
su
然后sudo
),更改 SSH 服务器运行的默认端口,
引入一种禁止多次 SSH 登录尝试的机制(增加后续尝试的等待时间 - 我不记得这到底是怎么称呼的 - 我前段时间在 FreeBSD 上启用了它,我记得这很容易 - 尝试搜索一些 FreeBSD 论坛等有关保护 SSH 的内容,您就会找到它。)
如果可能,仅当您知道您将在不久的将来访问计算机时才尝试运行 ssh 守护程序,然后将其关闭
习惯浏览系统日志。如果您开始注意到任何可疑的情况,请引入额外的安全机制,例如IP表或者端口敲门。
答案2
有几种方法可以实现这一点。最简单的可能是设置所谓的 DMZ。然而,更安全的方法是在路由器上在端口 22 上设置到服务器 IP 的静态路由。
资源:
- 端口转发是如何配置的?(NETGEAR 页面的存档副本)
- 如何转发以获得更快的互联网 (上述内容的当前但不完整的副本,位于 TechRadar)
- VPN 案例研究常见问题解答