ssh 埠轉發以從任何地方訪問我的家用機器
我來自這個問題:https ://superuser.com/questions/359799/how-to-make-freebsd-box-accessible-from-internet
我想了解整個過程
port forwarding
。我讀了很多東西,但無法理解埠轉發本身的基本概念。
我擁有的:
我家中的一台freebsd伺服器。
網件路由器
這就是我想要實現的目標:
能夠通過網際網路從 Windows 機器訪問 freebsd 伺服器,以便能夠打開網路瀏覽器並訪問網際網路。
我還想從我擁有的 ubuntu 機器上訪問這個 freebsd 盒子。
如果有人可以幫助我,那就太好了。
這是我為埠轉發所做的 netgear 路由器設置。
我將從原始事實開始:
- 你有:
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---'
- 通過 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)或任何其他有網際網路連接的機器。
現在你想要什麼:
- 簡單地允許 ssh 從 Internet 訪問您的電腦是一個壞主意。破解者設置了數千個機器人,它們在 Internet 上搜尋具有開放 SSH 埠的機器。他們通常會“敲”盡可能多的 IP 的預設 SSH 埠,一旦他們發現某個地方執行著 SSH 守護程序,就會嘗試獲得對機器的暴力訪問。這不僅是潛在的闖入風險,而且是在機器被暴力破解時網路速度變慢的風險。
- 如果你真的需要這樣的訪問,你至少應該
- 確保您擁有所有使用者帳戶的強密碼,
- 禁止通過 SSH 進行 root 訪問(您始終可以以普通使用者身份登錄,
su
然後sudo
),- 更改執行 SSH 伺服器的預設埠,
- 引入一種禁止多次 SSH 登錄嘗試的機制(增加了等待後續嘗試的時間 - 我不記得這到底是怎麼稱呼的 - 我前段時間在 FreeBSD 上啟用了它,我記得這很容易 - 試試搜尋一些關於保護 SSH 的 FreeBSD 論壇等,你會發現它。)
- 如果可能,僅在您知道您將在不久的將來訪問機器時嘗試執行 ssh 守護程序,然後將其關閉
- 習慣於瀏覽您的系統日誌。如果您開始注意到任何可疑情況,請引入額外的安全機制,例如IP 表或埠敲擊。