Ssh

ssh 埠轉發以從任何地方訪問我的家用機器

  • November 10, 2019

我來自這個問題: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 上的機器連接Internet(簡單地說)。所以如果A(或區域網路上的任何其他機器)想要訪問網際網路,它會被允許(再次,只是談論基本的理解和配置):

.-----.      .-----.                        .-----.
|  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
'-----'      '-----'                        '-----'
     `-->----'  `--->--->---^  

並且預設情況下不允許以下內容:

.-----.      .-----.                        .-----.
|  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
'-----'      '-----'                        '-----'
     `--<----'  `---<--- - - - - --<---<-----'

(也就是說,路由器保護您 LAN 上的機器不被 Internet 訪問。)請注意,路由器是您 LAN 中唯一可以Internet看到的部分1)。 2. 埠轉發是允許第三模式發生的原因。這包括告訴路由器來自2)的哪個連接應該連接到LAN 上的哪台機器。這是根據埠號完成的——這就是它被稱為埠轉發的原因。您可以通過指示路由器將來自 Internet 的給定埠上的所有連接都轉到 LAN 上的某台機器來配置它。以下是埠 22 轉發到 machine 的範例:C``A

.------.     .-------.                        .-----.
|  A   | ==  |   B   |  - - ( Internet ) - -  |  C  |
|      |     |       |                        '-----'
'-|22|-'     ',--|22|'                          |
   `--<-22---'    `---<---- - - - - - --<-22---'
  1. 通過 Internet 進行的此類連接基於 IP 地址。所以上面例子的更精確的表示是:
.------.      .-------.                                .-----.
|  A   |  ==  |   B   | - - - - - ( Internet ) - - - - |  C  |
|      |      |       |                                '-----'
'-|22|-'      ',--|22|'                                   |
   `--<-A:22--'    `--<-YourIP:22 - - - - --<-YourIP:22--'

如果您沒有使用靜態IP 的 Internet 連接,那麼您必須以某種方式了解 ISP 目前為您的路由器分配的 IP。否則,C將不知道它必須連接到什麼 IP 才能到達您的路由器(以及進一步,到A)。要以簡單的方式解決此問題,您可以使用名為動態 DNS的服務。這將使您的路由器定期將資訊發送到一個特殊的DNS 伺服器,該伺服器將跟踪您的 IP 並為您提供域名。有很多免費的動態 DNS 提供商。許多路由器都帶有配置選項,可以輕鬆地與它們聯繫。

1)這又是一種簡化——網際網路上看到的實際設備是調製解調器——它通常可以與路由器集成,但也可能是一個單獨的盒子。

2)或任何其他有網際網路連接的機器。


現在你想要什麼:

  1. 簡單地允許 ssh 從 Internet 訪問您的電腦是一個壞主意。破解者設置了數千個機器人,它們在 Internet 上搜尋具有開放 SSH 埠的機器。他們通常會“敲”盡可能多的 IP 的預設 SSH 埠,一旦他們發現某個地方執行著 SSH 守護程序,就會嘗試獲得對機器的暴力訪問。這不僅是潛在的闖入風險,而且是在機器被暴力破解時網路速度變慢的風險。
  2. 如果你真的需要這樣的訪問,你至少應該
  • 確保您擁有所有使用者帳戶的密碼,
  • 禁止通過 SSH 進行 root 訪問(您始終可以以普通使用者身份登錄,su然後sudo),
  • 更改執行 SSH 伺服器的預設埠,
  • 引入一種禁止多次 SSH 登錄嘗試的機制(增加了等待後續嘗試的時間 - 我不記得這到底是怎麼稱呼的 - 我前段時間在 FreeBSD 上啟用了它,我記得這很容易 - 試試搜尋一些關於保護 SSH 的 FreeBSD 論壇等,你會發現它。)
  • 如果可能,僅在您知道您將在不久的將來訪問機器時嘗試執行 ssh 守護程序,然後將其關閉
  1. 習慣於瀏覽您的系統日誌。如果您開始注意到任何可疑情況,請引入額外的安全機制,例如IP 表埠敲擊

引用自:https://unix.stackexchange.com/questions/19620