tunnel

tunnel

tunnel是計算機網路使用協議,當一個網路協議(傳輸協議)封裝不同的有效載荷協議。通過使用tunnel1(例如)進行了一個不兼容的交付網路的有效載荷,或通過一個不受信任的網路提供一個安全的路徑。

基本介紹


tunnelOSI或TCP/IP分層協議模型如那些通常對比。傳遞協議通常(但不總是)在更高層次的模型相比,有效載荷的協議,或在同一水平。
要了解一個特定的協議棧網路工程師必須了解的有效載荷和傳遞協議集。
通過網路層網路層的一個例子,通用路由封裝(GRE),在IP上運行的協議(IP協議號47),往往是進行IP數據包,在使用公共網際網路傳遞數據包RFC1918私有地址,IP地址。在這種情況下,交付和有效載荷協議是兼容的,但有效載荷與交付網路的地址是不相容的。
相反,一個IP有效載荷可能相信它看到一個數據鏈路層傳遞,當它內部進行的第2層隧道協議(L2TP)“,這似乎作為協議的有效載荷數據鏈路層機制。L2TP協議,然而,實際運行過使用運輸層的用戶數據報協議(UDP),通過IP。供貨協議的IP地址,可以運行在任何數據鏈路協議IEEE802.2與IEEE802.3標準(即,基於標準的乙太網)點的點對點協議(PPP)的撥號數據機連接。
tunnel協議可以使用數據加密傳輸過不安全的公共網路(如Internet)的有效載荷協議,從而提供VPN功能。IPSec有一個終端到終端的運輸方式,但也可以在隧道模式下操作,通過一個值得信賴的安全網關
tunnel繞過防火牆策略
用戶還可以使用隧道通過“防火牆”偷渡,使用的協議,防火牆通常會阻止,但“包裝”內部防火牆不會阻止例如,HTTP協議。如果防火牆策略並沒有明確排除這一種“包裝”,這一招可以發揮預期的防火牆政策得到解決。
另一種基於HTTP隧道的方法,使用HTTPCONNECT方法/命令。客戶端發出的HTTP連接HTTP代理的命令。代理,然後以一個特定的伺服器的TCP連接埠,該伺服器之間的中繼數據埠和客戶端連接。因為這將創建一個安全漏洞,能夠連接HTTP代理通常限制CONNECT方法的訪問。代理只允許訪問的具體授權伺服器白名單。
安全殼tunnel
安全shell(SSH)隧道由創建一個加密的隧道通過SSH協議連接。用戶可以設置SSH隧道傳輸加密在網路上的流量通過加密通道。例如,MicrosoftWindows機器可以使用伺服器消息塊(SMB)協議,非加密協議共享文件。如果一個人安裝一個MicrosoftWindows文件系統,通過網際網路遠程連接上,有人窺探,可以看到傳輸的文件。要安裝Windows的文件系統安全,可以建立一個SSH隧道通過加密通道路由到遠程文件伺服器的所有SMB流量。雖然SMB協議本身不包含任何加密,加密的SSH通道,通過它傳播提供安全。
建立一個SSH隧道,配置SSH客戶端指定的本地埠轉發到遠程機器上的埠。一旦已建立SSH隧道,用戶可以連接到指定的本地埠訪問網路服務。本地埠不必有相同的埠號為遠程埠。
SSH隧道提供了一種方法來繞過防火牆,禁止某些網際網路服務-只要一個站點允許傳出連接。例如,組織可能會禁止用戶直接訪問網際網路網頁(埠80),沒有通過組織的代理篩選器(提供組織監測和控制哪些用戶通過網路看到的一種手段)。但是,用戶可能不希望有自己的網站流量監視或阻止由該組織的代理篩選器。如果用戶可以連接到外部的SSH伺服器,他們可以自己本地機器上的一個特定的埠轉發到80遠程Web伺服器上創建一個SSH隧道。訪問遠程Web伺服器,用戶將他們的瀏覽器指向到本地埠從http://localhost/。
一些SSH客戶端支持動態埠轉發,允許用戶創建一個SOCKS4/5代理。在這種情況下,用戶可以配置自己的應用程序來使用他們的本地SOCKS代理伺服器。這給人以上如前所述到一個單一的埠建立一個SSH隧道的靈活性。襪子可以釋放用戶只連接到一個預定義的遠程埠和伺服器的限制。如果應用程序不支持SOCKS,可以使用“socksifier”重定向到本地SOCKS代理伺服器的應用。一些“socksifiers”支持SSH直接,從而避免需要一個SSH客戶端。