端口轉(zhuǎn)發(fā)(Portforwarding)是安全殼(SSH)為網(wǎng)絡(luò)安全通信使用的一種方法。SSH可以利用端口轉(zhuǎn)發(fā)技術(shù)來(lái)傳輸其他TCP/IP協(xié)議的報(bào)文,當(dāng)使用這種方式時(shí),SSH就為其他服務(wù)在客戶端和服務(wù)器端建立了一條安全的傳輸管道。端口轉(zhuǎn)發(fā)利用本客戶機(jī)端口映射到服務(wù)器端口來(lái)工作,SSH可以映射所有的服務(wù)器端口到本地端口,但要設(shè)置1024以下的端口需要根用戶權(quán)限。在使用防火墻的網(wǎng)絡(luò)中,如果設(shè)置為允許SSH服務(wù)通過(開啟了22端口),而阻斷了其他服務(wù),則被阻斷的服務(wù)仍然可以通過端口轉(zhuǎn)發(fā)技術(shù)轉(zhuǎn)發(fā)數(shù)據(jù)包。
基本介紹
在網(wǎng)吧通過路由器或者代理連接到外網(wǎng),而在內(nèi)網(wǎng)建立和運(yùn)行網(wǎng)絡(luò)服務(wù)器或斷點(diǎn)續(xù)傳服務(wù)器是沒辦法使外網(wǎng)用戶直接訪問的,通過在路由上的NAT開啟建立相應(yīng)端口轉(zhuǎn)發(fā)的映射,你可以指示路由器轉(zhuǎn)發(fā)對(duì)某一特定網(wǎng)端口(如80,為網(wǎng)絡(luò)服務(wù)器或21為FTP服務(wù)器)所有的信息為本地網(wǎng)絡(luò)。這意味著,如果一個(gè)外部主機(jī)試圖通過HTTP訪問外網(wǎng)的IP加相應(yīng)端口,就可訪問到相應(yīng)的內(nèi)網(wǎng)建立的服務(wù)器。外部訪問此服務(wù)器的用戶并不知道服務(wù)器是處于內(nèi)部網(wǎng)絡(luò)上的。這種方法被廣泛應(yīng)用于網(wǎng)吧或通過NAT共享上網(wǎng)在內(nèi)網(wǎng)建立服務(wù)器的用戶。公安監(jiān)控系統(tǒng)即通過此方法來(lái)監(jiān)控網(wǎng)吧數(shù)據(jù)的。轉(zhuǎn)發(fā)端口,比用其它方法更安全更易用,企業(yè)內(nèi)部可能有很多專業(yè)化的服務(wù),比如ERP系統(tǒng),監(jiān)控系統(tǒng),OA系統(tǒng),CRM等等,用戶不需要移植或者更新現(xiàn)有的服務(wù)而單獨(dú)申請(qǐng)專用的外部IP地址,只需要簡(jiǎn)單的配置一下網(wǎng)關(guān)路由的端口轉(zhuǎn)發(fā)功能,即可使互聯(lián)網(wǎng)上的用戶使用這些服務(wù)。
端口轉(zhuǎn)發(fā)一般常常用于虛擬機(jī)與宿主機(jī)之間通信時(shí)使用。最經(jīng)常用的如:通過Linux的ssh方式通信,本機(jī)端口轉(zhuǎn)發(fā)連接VMware虛擬機(jī)。再者:VirtualBox NAT設(shè)置和端口轉(zhuǎn)發(fā)等等。
端口轉(zhuǎn)發(fā)服務(wù)是由一組端口轉(zhuǎn)發(fā)規(guī)則定義的策略。一個(gè)端口轉(zhuǎn)發(fā)服務(wù)可以應(yīng)用到一個(gè)或更多的虛擬機(jī)。然后虛擬機(jī)的入站網(wǎng)絡(luò)訪問就根據(jù)端口轉(zhuǎn)發(fā)服務(wù)所定義的策略進(jìn)行管理。可以根據(jù)需要指定一個(gè)或多個(gè)CIDR來(lái)過濾源lP地址,以允許來(lái)自特定IP地址的請(qǐng)求被轉(zhuǎn)發(fā)。
虛擬機(jī)可以應(yīng)用任意數(shù)量的端口轉(zhuǎn)發(fā)服務(wù)。端口轉(zhuǎn)發(fā)服務(wù)也可以先定義好,但暫時(shí)不應(yīng)用到虛擬機(jī)上。如果虛擬機(jī)屬于多個(gè)網(wǎng)絡(luò),則只有在默認(rèn)網(wǎng)絡(luò)中定義的端口轉(zhuǎn)發(fā)規(guī)則才會(huì)生效。
不能使用端口轉(zhuǎn)發(fā)打開彈性lP地址的端口。當(dāng)使用彈性IP時(shí),外部訪問通過使用安全組來(lái)控制。
特點(diǎn)
大多數(shù)的防火墻只能進(jìn)行端口轉(zhuǎn)發(fā),而端口轉(zhuǎn)發(fā)的一個(gè)特點(diǎn)就是“一對(duì)一”,不能復(fù)用。這個(gè)功能對(duì)于大多數(shù)用戶來(lái)說(shuō)是可以滿足需求的,但對(duì)于Web服務(wù)器來(lái)說(shuō),則不能滿足需求。例如,某單位內(nèi)部有多個(gè)網(wǎng)站,如果這多個(gè)網(wǎng)站都放在同一臺(tái)服務(wù)器上(使用主機(jī)頭名區(qū)分),則防火墻只需要將TCP的80端口轉(zhuǎn)發(fā)到這個(gè)Web服務(wù)器即可;如果多個(gè)網(wǎng)站放在內(nèi)部的不同服務(wù)器時(shí),此時(shí)只支持端口轉(zhuǎn)發(fā)的防火墻將不能滿足需求。Forefront TMG(以及上個(gè)版本ISA Server)除了支持端口“一對(duì)一”轉(zhuǎn)發(fā)外,還支持基于“主機(jī)頭”名的方式發(fā)布Web服務(wù)器,可以將內(nèi)網(wǎng)的分布在不同物理服務(wù)器的Web服務(wù)器,發(fā)布到Intemet并且各不沖突。
轉(zhuǎn)發(fā)
轉(zhuǎn)發(fā)是一種與其他網(wǎng)絡(luò)應(yīng)用程序交互的方式。在SSH連接的一端,SSH截取其他程序的服務(wù)請(qǐng)求,將其通過加密的SSH連接發(fā)送,傳給另一端的適當(dāng)服務(wù)接收者。多數(shù)情況下,這一過程對(duì)連接的兩端而言都是透明的:每端都相信它在與對(duì)方直接對(duì)話,絲毫意識(shí)不到轉(zhuǎn)發(fā)的存在。SSH轉(zhuǎn)發(fā)還有更強(qiáng)大的功能,可以實(shí)現(xiàn)幾種原來(lái)無(wú)法實(shí)現(xiàn)的通信。
功能
因?yàn)槟承┰颍脩糁荒芙?jīng)過一個(gè)非安全的主機(jī)才能連接到一個(gè)安全的主機(jī),在這種情況下,ssh提供了一個(gè)名為端口轉(zhuǎn)發(fā)的功能。利用“端口轉(zhuǎn)發(fā)”功能,用戶就能夠加強(qiáng)連接路由上非安全路段的安全性。用戶需要做的只是簡(jiǎn)單地在非安全主機(jī)上指定一個(gè)端口,非安全主機(jī)將通過這個(gè)端口與安全主機(jī)建立連接。這就在本地主機(jī)和遠(yuǎn)程主機(jī)之間以那個(gè)非安全主機(jī)為跳板建立了一個(gè)直接的連接。用戶可以對(duì)遠(yuǎn)程主機(jī)或者自己的本地主機(jī)上的端口設(shè)置端口轉(zhuǎn)發(fā)功能。如果是把遠(yuǎn)程主機(jī)的一個(gè)端口轉(zhuǎn)發(fā)到本地主機(jī)上的某個(gè)端口,需要使用ssh命令的-R選項(xiàng),后面分別跟著本地端口、遠(yuǎn)程主機(jī)地址以及將要被轉(zhuǎn)發(fā)的遠(yuǎn)程端口,彼此之間用冒號(hào)隔開。它的工作原理是分配一個(gè)套接字來(lái)監(jiān)聽遠(yuǎn)程方面的那個(gè)端口。只要有連接建立在這個(gè)端口上,該連接就會(huì)被轉(zhuǎn)發(fā)到一個(gè)安全的通道上,也就建立起一個(gè)從本地機(jī)器到遠(yuǎn)程端口的連接。
lcx
在很多時(shí)候,由于服務(wù)器處于內(nèi)網(wǎng)之中,而外部網(wǎng)絡(luò)中的計(jì)算機(jī)無(wú)法連接內(nèi)部網(wǎng)絡(luò)中的服務(wù)器,因此,也就無(wú)法進(jìn)行3389遠(yuǎn)程連接。這時(shí),就需要根據(jù)內(nèi)網(wǎng)計(jì)算機(jī)雖然無(wú)法被外部計(jì)算機(jī)連接但卻可以連接外部計(jì)算機(jī)的特點(diǎn)進(jìn)行反向連接。
所謂反向連接,簡(jiǎn)單的理解就是將原本由本地計(jì)算機(jī)發(fā)送給遠(yuǎn)程服務(wù)器3389端口的數(shù)據(jù)讓遠(yuǎn)程服務(wù)器自己來(lái)向本地計(jì)算機(jī)請(qǐng)求,從而解決無(wú)法主動(dòng)向內(nèi)部股務(wù)器發(fā)送數(shù)據(jù)的問題。
端口映射
端口映射與端口轉(zhuǎn)發(fā)用于發(fā)布防火墻內(nèi)部的服務(wù)器或者防火墻內(nèi)部的客戶端計(jì)算機(jī),有的路由器也有端口映射與端口轉(zhuǎn)發(fā)功能。端口映射與端口轉(zhuǎn)發(fā)實(shí)現(xiàn)的功能類似,但又不完全一樣。端口映射是將外網(wǎng)的一個(gè)端口完全映射給內(nèi)網(wǎng)一個(gè)地址的指定端口,而端口轉(zhuǎn)發(fā)是將發(fā)往外網(wǎng)的一個(gè)端口的通信完全轉(zhuǎn)發(fā)給內(nèi)網(wǎng)一個(gè)地址的指定端口。端口映射可以實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)和內(nèi)網(wǎng)到外網(wǎng)通信雙向,而映射轉(zhuǎn)發(fā)只能實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的單向通信。
例如:一臺(tái)防火墻有兩個(gè)端口,一個(gè)端口用于外網(wǎng),設(shè)置的P地址為202.206.197.229,另一個(gè)端口用于內(nèi)網(wǎng),設(shè)置的IP地址為172.23.120。一臺(tái)Web服務(wù)器放置在內(nèi)網(wǎng),其IP地址為172.22.100.100,如果想讓這臺(tái)服務(wù)器對(duì)外提供Web服務(wù),則可以在防火墻上將202.206.197.229TCP的80端口映射到172.22.100.100的80端口,這樣,當(dāng)外網(wǎng)用戶訪問202.206.197.229的Web服務(wù)時(shí),實(shí)際上訪問的是內(nèi)網(wǎng)服務(wù)器上提供的服務(wù)。如果在內(nèi)網(wǎng)的172.22.100.100服務(wù)器上提供Web服務(wù)的端口不是80而是另外的端口(如333),則需要在防火墻上將TCP的80端口映射到內(nèi)網(wǎng)172.22.100.100的333端口。
參考資料 >