技巧 5:SSH 后門
有很多次,我所在的站點需要某人的遠程支持,而他卻被公司防火強阻擋在外。很少有人意識到,如果能通過防火墻到達外部,那么也能輕松實現讓外部的信息進來。
從本意講,這稱為 “在防火墻上砸一個洞”。我稱之為 SSH 后門。為了使用它,必須有一臺作為中介的連接到 Internet 的機器。
在本例中,將這樣臺機器稱為 blackbox.example.com。公司防火墻后面的機器稱為 ginger。此技術支持的機器稱為 tech。圖 4 解釋了設置過程。
圖 4. 在防火墻上砸一個洞

以下是操作步驟:
- 檢查什么是允許做的,但要確保您問對了人。大多數人都擔心您打開了防火墻,但他們不明白這是完全加密的。而且,必須破解外部機器才能進入公司內部。不過,您可能屬于 “敢作敢為” 型的人物。自己進行判斷應該選擇的方式,但不如意時不抱怨別人。
- 使用
-R
標記通過 SSH 從 ginger 連接到 blackbox.example.com。假設您是 ginger 上的根用戶,tech 需要根用戶 ID 來幫助使用系統。使用-R
標記將 blackbox 上端口 2222 的說明轉發到 ginger 的端口 22 上。這就設置了 SSH 通道。注意,只有 SSH 通信可以進入 ginger:您不會將 ginger 放在無保護的 Internet 上。可以使用以下語法實現此操作:
~# ssh -R 2222:localhost:22 thedude@blackbox.example.com
進入 blackbox 后,只需一直保持登錄狀態。我總是輸入以下命令:
thedude@blackbox:~$ while [ 1 ]; do date; sleep 300; done
使機器保持忙碌狀態。然后最小化窗口。
- 現在指示 tech 上的朋友使用 SSH 連接到 blackbox,而不需要使用任何特殊的 SSH 標記。但必須把密碼給他們:
root@tech:~# ssh thedude@blackbox.example.com
. - tech 位于 blackbox 上后,可以使用以下命令從 SSH 連接到 ginger:
thedude@blackbox:~$: ssh -p 2222 root@localhost
- Tech 將提示輸入密碼。應該輸入 ginger 的根密碼。
- 現在您和來自 tech 的支持可以一起工作并解決問題。甚至需要一起使用屏幕。▍⒁ 技巧 4)。
![]() ![]() |
![]()
|
技巧 6:通過 SSH 通道進行遠程 VNC 會話
VNC 或虛擬網絡計算已經存在很長時間了。通常,當遠程服務器上的某類圖形程序只能在此服務器上使用時,我才需要 VNC。
例如,假設在 技巧 5 中,ginger 是一臺存儲服務器。許多設備都使用 GUI 程序來管理存儲控制器。這些 GUI 管理工具通常需要通過一個網絡直接連接到存儲服務器,而這個網絡有時保存在專用的子網絡中。因此,只能通過 ginger 訪問這個 GUI。
可以嘗試使用 -X
選項通過 SSH 連接到 ginger 并啟動它,但這對帶寬要求很高,您需要忍受等待的痛苦。VNC 是一個網絡友好的工具,幾乎適用于所有操作系統。
假設設置與技巧 5 中的一樣,但希望 tech 能訪問 VNC 而不是 SSH。對于這種情況,需要進行一些類似的操作,不過轉發的是 VNC 端口。執行以下操作步驟:
- 在 ginger 上啟動一個 VNC 服務器會話。運行以下命令:
root@ginger:~# vncserver -geometry 1024x768 -depth 24 :99
這些選項指示啟動服務器,分辨率為 1024x768,像素深度為每像素 24 位。如果使用較慢的連接設置,8 也許是更好的選項。使用
:99
指定可訪問 VNC 服務器的端口。VNC 協議在 5900 處啟動,因此:99
表示服務器可從端口 5999 訪問。啟動該會話時,要求您指定密碼。用戶 ID 與啟動 VNC 服務器時的用戶相同(本例中就是根用戶)。
- 從 ginger 連接到 blackbox.example.com 的 SSH 將 blackbox 上的端口 5999 轉發到 ginger。這通過運行以下命令在 ginger 中完成:
root@ginger:~# ssh -R 5999:localhost:5999 thedude@blackbox.example.com
運行此命令后,需要將此 SSH 會話保持為打開狀態,以便保留轉發到 ginger 的端口。此時,如果在 blackbox 上,那么運行以下命令即可訪問 ginger 上的 VNC 會話:
thedude@blackbox:~$ vncviewer localhost:99
這將通過 SSH 將端口轉發給 ginger,但我們希望通過 tech 讓 VNC 訪問 ginger。為此,需要另一個通道。
- 在 tech 中,打開一個通道,通過 SHH 將端口 5999 轉發到 blackbox 上的端口 5999。這通過運行以下命令完成:
root@tech:~# ssh -L 5999:localhost:5999 thedude@blackbox.example.com
這次使用的 SSH 標記為
-L
,它不是將 5999 放到 blackbox,而是從中獲取。到達 blackbox 后,需要保持此會話為打開狀態,F在即可在 tech 中使用 VNC 了! - 在 tech 中,運行以下命令使 VNC 連接到 ginger:
root@tech:~# vncviewer localhost:99
.Tech 現在將擁有一個直接到 ginger 的 VNC 會話。
設置雖然有點麻煩,但比為修復存儲陣列而四處奔波強多了。不過多實踐幾次這就變得容易了。
對此技巧我還要補充一點:如果 tech 運行的是 Windows® 操作系統,并且沒有命令行 SSH 客戶端,那么 tech 可以運行 Putty。Putty 可以設置為通過查找側欄中的選項來轉發 SSH 端口。如果端口是 5902 而不是本例中的 5999,則可以輸入圖 5 中的內容。
圖 5. Putty 可以轉發用作通道的 SSH

如果進行了此設置,那么 tech 就可以使用 VNC 連接到 localhost:2,如同 tech 正在 Linux 操作系統上運行一樣。
文章來源于領測軟件測試網 http://www.kjueaiud.com/