埠轉發

埠轉發

埠轉發(Portforwarding)是安全殼(SSH)為網路安全通信使用的一種方法。SSH可以利用埠轉發技術來傳輸其他TCP/IP協議的報文,當使用這種方式時,SSH就為其他服務在客戶端和伺服器端建立了一條安全的傳輸管道。埠轉發利用本客戶機埠映射到伺服器埠來工作,SSH可以映射所有的伺服器埠到本地埠,但要設置1024以下的埠需要根用戶許可權。在使用防火牆的網路中,如果設置為允許SSH服務通過(開啟了22埠),而阻斷了其他服務,則被阻斷的服務仍然可以通過埠轉發技術轉發數據包。

基本介紹


在網吧通過路由器或者代理連接到外網,而在內網建立和運行網路伺服器或FTP伺服器是沒辦法使外網用戶直接訪問的,通過在路由上的NAT開啟建立相應埠轉發的映射,你可以指示路由器轉發對某一特定網埠(如80,為網路伺服器或21為FTP伺服器)所有的信息為本地網路。這意味著,如果一個外部主機試圖通過HTTP訪問外網的IP加相應埠,就可訪問到相應的內網建立的伺服器。外部訪問此伺服器的用戶並不知道伺服器是處於內部網路上的。這種方法被廣泛應用於網吧或通過NAT共享上網在內網建立伺服器的用戶。公安監控系統即通過此方法來監控網吧數據的。轉發埠,比用其它方法更安全更易用,企業內部可能有很多專業化的服務,比如ERP系統,監控系統,OA系統,CRM等等,用戶不需要移植或者更新現有的服務而單獨申請專用的外部IP地址,只需要簡單的配置一下網關路由的埠轉發功能,即可使網際網路上的用戶使用這些服務。
埠轉發一般常常用於虛擬機與宿主機之間通信時使用。最經常用的如:通過linux的ssh方式通信,本機埠轉發連接VMware虛擬機。再者:VirtualBox NAT設置和埠轉發等等。
埠轉發服務是由一組埠轉發規則定義的策略。一個埠轉發服務可以應用到一個或更多的虛擬機。然後虛擬機的入站網路訪問就根據埠轉發服務所定義的策略進行管理。可以根據需要指定一個或多個CIDR來過濾源lP地址,以允許來自特定IP地址的請求被轉發。
虛擬機可以應用任意數量的埠轉發服務。埠轉發服務也可以先定義好,但暫時不應用到虛擬機上。如果虛擬機屬於多個網路,則只有在默認網路中定義的埠轉發規則才會生效。
不能使用埠轉發打開彈性lP地址的埠。當使用彈性IP時,外部訪問通過使用安全組來控制。

特點


大多數的防火牆只能進行埠轉發,而埠轉發的一個特點就是“一對一”,不能復用。這個功能對於大多數用戶來說是可以滿足需求的,但對於Web伺服器來說,則不能滿足需求。例如,某單位內部有多個網站,如果這多個網站都放在同一台伺服器上(使用主機頭名區分),則防火牆只需要將TCP的80埠轉發到這個Web伺服器即可;如果多個網站放在內部的不同伺服器時,此時只支持埠轉發的防火牆將不能滿足需求。Forefront TMG(以及上個版本ISA Server)除了支持埠“一對一”轉發外,還支持基於“主機頭”名的方式發布Web伺服器,可以將內網的分佈在不同物理伺服器的Web伺服器,發布到Intemet並且各不衝突。

轉發


轉發是一種與其他網路應用程序交互的方式。在SSH連接的一端,SSH截取其他程序的服務請求,將其通過加密的SSH連接發送,傳給另一端的適當服務接收者。多數情況下,這一過程對連接的兩端而言都是透明的:每端都相信它在與對方直接對話,絲毫意識不到轉發的存在。SSH轉發還有更強大的功能,可以實現幾種原來無法實現的通信。

功能


因為某些原因,用戶只能經過一個非安全的主機才能連接到一個安全的主機,在這種情況下,ssh提供了一個名為埠轉發的功能。利用“埠轉發”功能,用戶就能夠加強連接路由上非安全路段的安全性。用戶需要做的只是簡單地在非安全主機上指定一個埠,非安全主機將通過這個埠與安全主機建立連接。這就在本地主機和遠程主機之間以那個非安全主機為跳板建立了一個直接的連接。用戶可以對遠程主機或者自己的本地主機上的埠設置埠轉發功能。如果是把遠程主機的一個埠轉發到本地主機上的某個埠,需要使用ssh命令的-R選項,後面分別跟著本地埠、遠程主機地址以及將要被轉發的遠程埠,彼此之間用冒號隔開。它的工作原理是分配一個套接字來監聽遠程方面的那個埠。只要有連接建立在這個埠上,該連接就會被轉發到一個安全的通道上,也就建立起一個從本地機器到遠程埠的連接。

lcx


在很多時候,由於伺服器處於內網之中,而外部網路中的計算機無法連接內部網路中的伺服器,因此,也就無法進行3389遠程連接。這時,就需要根據內網計算機雖然無法被外部計算機連接但卻可以連接外部計算機的特點進行反向連接。
所謂反向連接,簡單的理解就是將原本由本地計算機發送給遠程伺服器3389埠的數據讓遠程伺服器自己來向本地計算機請求,從而解決無法主動向內部股務器發送數據的問題。

埠映射


埠映射與埠轉發用於發布防火牆內部的伺服器或者防火牆內部的客戶端計算機,有的路由器也有埠映射與埠轉發功能。埠映射與埠轉發實現的功能類似,但又不完全一樣。埠映射是將外網的一個埠完全映射給內網一個地址的指定埠,而埠轉發是將發往外網的一個埠的通信完全轉發給內網一個地址的指定埠。埠映射可以實現外網到內網和內網到外網通信雙向,而映射轉發只能實現外網到內網的單向通信。
例如:一台防火牆有兩個埠,一個埠用於外網,設置的P地址為202.206.197.229,另一個埠用於內網,設置的IP地址為172.23.120。一台Web伺服器放置在內網,其IP地址為172.22.100.100,如果想讓這台伺服器對外提供Web服務,則可以在防火牆上將202.206.197.229TCP的80埠映射到172.22.100.100的80埠,這樣,當外網用戶訪問202.206.197.229的Web服務時,實際上訪問的是內網伺服器上提供的服務。如果在內網的172.22.100.100伺服器上提供Web服務的埠不是80而是另外的埠(如333),則需要在防火牆上將TCP的80埠映射到內網172.22.100.100的333埠。