har*_*ari 29 freebsd ssh ssh-tunneling port-forwarding
我来自这个问题:https : //superuser.com/questions/359799/how-to-make-freebsd-box-accessible-from-internet
我想了解这整个过程port forwarding。
我读了很多东西,但我没能理解端口转发本身的基本概念。
我拥有的:
坐在我家的 freebsd 服务器。
网件路由器
这就是我想要实现的目标:
能够通过互联网从 Windows 机器访问 freebsd 服务器,以便能够打开网络浏览器并访问互联网。
我还想从我拥有的 ubuntu 机器访问这个 freebsd 盒子。
如果有人可以帮助我,那就太好了。
这是我为端口转发所做的 netgear 路由器设置。

roz*_*acz 56
你有:A- 你的 FreeBSD机器,B- 你的路由器和C- 一些可以上网的机器。这是它的样子:
.-----. .-----. .-----.
| A | == | B | - - ( Internet ) - - | C |
'-----' '-----' '-----'
\_________ ________/
v
`- this is your LAN
Run Code Online (Sandbox Code Playgroud)
请注意您的路由器通常是如何工作的:它允许从LAN上的机器连接到Internet(简单地说)。所以如果A(或局域网上的任何其他机器)想要访问互联网,它会被允许(再次,只谈基本的理解和配置):
.-----. .-----. .-----.
| A | == | B | - - ( Internet ) - - | C |
'-----' '-----' '-----'
`-->----' `--->--->---^
Run Code Online (Sandbox Code Playgroud)
而下面没有默认不允许的:
.-----. .-----. .-----.
| A | == | B | - - ( Internet ) - - | C |
'-----' '-----' '-----'
`--<----' `---<--- - - - - --<---<-----'
Run Code Online (Sandbox Code Playgroud)
(也就是说,路由器保护您 LAN 上的机器不被 Internet 访问。)请注意,路由器是您的 LAN 中唯一可以从Internet上看到的部分1)。
端口转发允许第三个模式发生。这包括告诉路由器2) 的什么连接应该连接到LAN 上的哪台机器。这是基于端口号完成的——这就是为什么它被称为端口转发。您可以通过指示路由器将来自 Internet 的给定端口上的所有连接都转到 LAN 上的某台机器来进行配置。这是转发到 machine 的端口 22 的示例:CA
.------. .-------. .-----.
| A | == | B | - - ( Internet ) - - | C |
| | | | '-----'
'-|22|-' ',--|22|' |
`--<-22---' `---<---- - - - - - --<-22---'
Run Code Online (Sandbox Code Playgroud)此类通过 Internet 的连接基于 IP 地址进行。因此,对上述示例的更精确表示将是:
.------. .-------. .-----.
| A | == | B | - - - - - ( Internet ) - - - - | C |
| | | | '-----'
'-|22|-' ',--|22|' |
`--<-A:22--' `--<-YourIP:22 - - - - --<-YourIP:22--'
Run Code Online (Sandbox Code Playgroud)
如果您没有使用静态IP的 Internet 连接,那么您必须以某种方式了解 ISP 当前分配给您的路由器的 IP。否则,C将不知道它必须连接到哪个 IP 才能到达您的路由器(以及进一步连接到A)。要以简单的方式解决此问题,您可以使用称为动态 DNS的服务。这将使您的路由器定期向一个特殊的DNS 服务器发送信息,该服务器将跟踪您的 IP 并为您提供一个域名。有很多免费的动态 DNS 提供商。许多路由器都带有配置选项,可以轻松地与它们联系。
1)这又是一种简化——互联网上看到的实际设备是调制解调器——它通常可以与路由器集成,但也可能是一个单独的盒子。
2)或任何其他具有 Internet 连接的机器。
简单地允许 ssh 从 Internet 访问您的机器是一个坏主意。破解者设置了数以千计的机器人,它们在 Internet 上搜索具有开放 SSH 端口的机器。他们通常会“敲”尽可能多的 IP 的默认 SSH 端口,一旦他们发现 SSH 守护进程在某处运行,就会尝试获得对机器的暴力访问。这不仅是潜在入侵的风险,而且在机器被暴力破解时也会导致网络速度减慢。
如果你真的需要这样的访问,你至少应该
确保您为所有用户帐户设置强密码,
禁止通过 SSH 进行 root 访问(您始终可以以普通用户身份登录,su或者sudo然后),
更改 SSH 服务器运行的默认端口,
引入一种禁止多次 SSH 登录尝试的机制(增加了等待后续尝试的时间 - 我不记得这是怎么称呼的 - 我前段时间在 FreeBSD 上启用了它,我记得这很容易 - 尝试搜索一些有关保护 SSH 的 FreeBSD 论坛等,您会找到它。)
如果可能,仅当您知道您将在不久的将来访问该机器时才尝试运行 ssh 守护程序,然后将其关闭
习惯于浏览您的系统日志。如果您开始注意到任何可疑内容,请引入额外的安全机制,例如IP 表或端口敲门。