使用 SSH 端口轉(zhuǎn)發(fā)安全地連接到遠(yuǎn)程系統(tǒng)
SSH 本地端口轉(zhuǎn)發(fā)功能允許您在客戶端和服務(wù)器之間創(chuàng)建隧道,加密該客戶端和服務(wù)器之間指定端口上的所有通信。防火墻和其他網(wǎng)絡(luò)工具通常無(wú)法看到這些隧道內(nèi)部——它們只能看到客戶端和服務(wù)器(或網(wǎng)關(guān))之間加密的 SSH(TCP 端口 22)流量。作為安全操作員,您將希望以符合您的安全策略的方式檢測(cè)和管理 SSH 的使用。例如,如果某些用戶的規(guī)則阻止或過(guò)濾 HTTP 和 HTTPS 但不阻止 SSH,則某些用戶可能會(huì)使用 SSH 端口轉(zhuǎn)發(fā)來(lái)繞過(guò)防火墻。
配置 SSH 端口轉(zhuǎn)發(fā)
通過(guò) SSH 的隧道協(xié)議非??焖偾乙子谠O(shè)置和使用。可以集中管理像 OpenSSH 這樣的 SSH 實(shí)現(xiàn),以提供身份驗(yàn)證和加密功能。例如,您的組織可能會(huì)在 Internet 上安裝強(qiáng)化的 SSH 服務(wù)器,該服務(wù)器僅偵聽運(yùn)行 SSH 的單個(gè)端口。用戶連接到此端口,使用證書、密碼或其他批準(zhǔn)的身份驗(yàn)證方法進(jìn)行身份驗(yàn)證。然后他們可以使用 SSH 隧道連接到該服務(wù)器上的資源,或者被定向到他們?cè)趯S镁W(wǎng)絡(luò)上的目的地。但是,盡管 SSH 隧道很有用,但它確實(shí)有局限性,而且它幾乎無(wú)法提供專用虛擬專用網(wǎng)絡(luò) (VPN) 設(shè)備的功能數(shù)量。SSH 隧道在特定情況下很有用,例如專用 VPN 解決方案可能有些矯枉過(guò)正的情況。例如,
您可以為本地或遠(yuǎn)程端口轉(zhuǎn)發(fā)配置 SSH 隧道。本地端口轉(zhuǎn)發(fā)允許您與遠(yuǎn)程服務(wù)器建立連接,然后將指定的網(wǎng)絡(luò)流量從您的客戶端轉(zhuǎn)發(fā)到該服務(wù)器或其他服務(wù)器。
配置本地端口轉(zhuǎn)發(fā)
圖 1顯示了本地端口轉(zhuǎn)發(fā)的一個(gè)簡(jiǎn)單示例。在此示例中,客戶端連接到防火墻,防火墻將 SSH 連接轉(zhuǎn)發(fā)到 SSH 網(wǎng)關(guān),SSH 網(wǎng)關(guān)通過(guò) SSH 隧道代理與其他內(nèi)部服務(wù)器和設(shè)備的通信。您必須將防火墻配置為將 SSH 網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)到運(yùn)行 SSH 服務(wù)器軟件(也稱為 SSH 守護(hù)程序)的設(shè)備。在許多情況下,不需要其他防火墻規(guī)則,也不需要額外的端口轉(zhuǎn)發(fā)。通常,OpenSSH 服務(wù)器軟件也不需要任何特殊配置。
圖 1:SSH 本地端口轉(zhuǎn)發(fā)的簡(jiǎn)單配置。
要連接到遠(yuǎn)程服務(wù)器,命令如下所示:
ssh -L 8080:remoteserver:80 username@FirewallExternalInterfaceIP
當(dāng)您在連接互聯(lián)網(wǎng)的客戶端上運(yùn)行此命令時(shí),它將在 SSH(默認(rèn) TCP 端口 22)上連接到防火墻的外部 IP 地址(在上面的選項(xiàng)中記為 FirewallExternalInterfaceIP),它將 SSH 流量轉(zhuǎn)發(fā)到 SSH網(wǎng)關(guān)。SSH 網(wǎng)關(guān)對(duì)用戶(在我們的示例中為用戶名)進(jìn)行身份驗(yàn)證,并在客戶端和 SSH 網(wǎng)關(guān)之間建立安全的加密通道。
在幕后。SSH 客戶端現(xiàn)在靜靜地監(jiān)聽端口 8080 上的新連接。要連接到遠(yuǎn)程服務(wù)器,客戶端打開他們的 Web 瀏覽器并連接到 https://localhost:8080。這指示瀏覽器連接到端口 8080 上的客戶端計(jì)算機(jī),這是 SSH 客戶端應(yīng)用程序偵聽新連接的端點(diǎn)。SSH 客戶端軟件攔截此調(diào)用并將其沿著加密隧道發(fā)送到 SSH 網(wǎng)關(guān)。SSH 網(wǎng)關(guān)解密通信并將其轉(zhuǎn)發(fā)到 TCP 端口 80 上的遠(yuǎn)程服務(wù)器(根據(jù)選項(xiàng) remoteserver:80)。遠(yuǎn)程服務(wù)器認(rèn)為它正在接收來(lái)自 SSH 網(wǎng)關(guān)的請(qǐng)求并響應(yīng)它。網(wǎng)關(guān)加密此響應(yīng)并將其發(fā)送回封裝在 SSH 協(xié)議 (TCP 22) 中的客戶端。
本地端口轉(zhuǎn)發(fā)不僅限于網(wǎng)絡(luò)請(qǐng)求和瀏覽器。作為另一個(gè)示例,這里是通過(guò)遠(yuǎn)程桌面協(xié)議(RDP、TCP 3389)遠(yuǎn)程連接到 Windows 服務(wù)器的命令。
ssh -L 1234:remoteserver:3389 username@FirewallExternalInterfaceIP
要建立連接,請(qǐng)啟動(dòng)您的 RDP 客戶端并建立一個(gè)到 localhost:1234 的新 RDP 連接。ssh 本地端口轉(zhuǎn)發(fā)將激活,并將導(dǎo)致與指定為 remoteserver 的服務(wù)器建立新的 RDP 連接。
請(qǐng)注意,在第二個(gè)示例中,客戶端只需運(yùn)行單獨(dú)的 ssh 命令即可連接到不同應(yīng)用程序上的不同服務(wù)器,并且不需要額外的防火墻或 SSH 網(wǎng)關(guān)服務(wù)器配置。
配置遠(yuǎn)程端口轉(zhuǎn)發(fā)
遠(yuǎn)程端口轉(zhuǎn)發(fā)類似但相反。使用遠(yuǎn)程端口轉(zhuǎn)發(fā),您的 ssh 客戶端連接到遠(yuǎn)程服務(wù)器,然后其他人到該遠(yuǎn)程服務(wù)器的連接將通過(guò) SSH 隧道轉(zhuǎn)發(fā)回您的客戶端。您可以使用遠(yuǎn)程端口轉(zhuǎn)發(fā)使您筆記本電腦上的網(wǎng)站對(duì)互聯(lián)網(wǎng)上的其他人可見,而無(wú)需重新配置網(wǎng)絡(luò)。
了解有關(guān)配置復(fù)雜或?qū)S?SSH 隧道的更多信息
這些非常簡(jiǎn)單的示例描述了使用 SSH 隧道是多么容易,但對(duì)于更復(fù)雜或特定的實(shí)現(xiàn)也有細(xì)微差別和注意事項(xiàng),您需要了解您的具體實(shí)現(xiàn)。查看 https://ssh.com 等資源站點(diǎn)以獲取更多信息。
結(jié)論
SSH 端口轉(zhuǎn)發(fā)功能強(qiáng)大、靈活、易于設(shè)置,非常適合您需要安全、遠(yuǎn)程訪問(wèn)服務(wù)器或網(wǎng)絡(luò)的某些情況。
關(guān)鍵點(diǎn):
- SSH 標(biāo)準(zhǔn)和工具支持本地和遠(yuǎn)程端口轉(zhuǎn)發(fā),以啟用客戶端和網(wǎng)關(guān)或服務(wù)器之間的協(xié)議安全隧道。
- 將 SSH 用于協(xié)議的安全隧道讓您可以利用其加密和身份驗(yàn)證功能。
- SSH 隧道提供了一種遠(yuǎn)程連接到設(shè)備或網(wǎng)關(guān)的快速方法。
審核編輯:湯梓紅
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9123瀏覽量
85324 -
端口
+關(guān)注
關(guān)注
4文章
963瀏覽量
32051 -
SSH
+關(guān)注
關(guān)注
0文章
188瀏覽量
16335
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論