香蕉视频APP下载iOS_麻豆免费精品视频_国产欧美一区二区三区在_三级高清久久精品_五月综合性爱网_亚洲国产日韩不卡综合_桃花无码视频在线观看_亚洲情趣精品无码_赤裸裸美女av在线网址_国产AV综合中文字幕

PPTP小知識(shí)

PPTP代理穿透分析

2021年06月16日 返回>>

大家好,現(xiàn)在是人靜時(shí)分,我公司人員都已溜光,只有我還在面對(duì)computer, 在經(jīng)過(guò)不解、迷惑、結(jié)論之后,現(xiàn)與大家分享結(jié)果,感謝朋友Zyliday,見(jiàn)賢思齊的實(shí)驗(yàn)幫助。

在研究技術(shù)原理之前,讓我們先了解幾個(gè)基本的概念。我們要了解NAT技術(shù),這個(gè)就不用多說(shuō)了吧!我們的主機(jī)大部分存在于一個(gè)內(nèi)部網(wǎng)絡(luò)中,有一個(gè)私有ip地址,所以所有去往Internet的數(shù)據(jù)包,都要將其源ip與端口轉(zhuǎn)換,來(lái)實(shí)現(xiàn)數(shù)據(jù)通信。讓我們感到幸運(yùn)的是,我們對(duì)于互聯(lián)網(wǎng)的服務(wù)應(yīng)用,大部分用tcpudp協(xié)議來(lái)傳輸,由于tcpudp協(xié)議中含有端口,所以往返的數(shù)據(jù)包很容易找到歸宿。但難免會(huì)有特殊出現(xiàn),pptp協(xié)議,l2tp協(xié)議,ftp 協(xié)議,ipsec 協(xié)議等,根據(jù)其各自協(xié)議特殊原因,均無(wú)法順利通過(guò)nat,俗話說(shuō)兵來(lái)將擋水來(lái)土掩,nat該怎么辦?

今天重點(diǎn)我們放到pptp協(xié)議身上。pptp是什么?pptp是其vpn隧道協(xié)議中的一種,加以其它協(xié)議的配合,成功實(shí)現(xiàn)了身份驗(yàn)證、加密數(shù)據(jù)和協(xié)議配置等問(wèn)題,為遠(yuǎn)程用戶創(chuàng)建了一條穿越公網(wǎng)的安全連接,下面讓我們?nèi)チ私?span style="font-family: Calibri;">PPTP協(xié)議。

PPTP流量由兩條連接產(chǎn)生:

? PPTP控制連接

這是一個(gè)邏輯連接,表示必須通過(guò)一系列PPTP消息創(chuàng)建、維持和終止的PPTP隧道。 PPTP控制連接流量使用PPTP客戶端上動(dòng)態(tài)分配的TCP端口,以及PPTP服務(wù)器上由IANA保留的TCP端口1723。

圖片1.png 

? PPTP數(shù)據(jù)連接

當(dāng)數(shù)據(jù)通過(guò)PPTP連接發(fā)送時(shí),PPP幀將使用通用路由封裝(Generic Routing Encapsulation,GRE)報(bào)頭進(jìn)行封裝,報(bào)頭包含用于識(shí)別該數(shù)據(jù)包的特定PPTP隧道的信息。

圖片2.png 

現(xiàn)在來(lái)分析下,由于控制連接用了端口1723,所以這條連接我們就大可放心了,根據(jù)nat發(fā)送原則,會(huì)成功將數(shù)據(jù)包轉(zhuǎn)發(fā)到pptp 服務(wù)器,如果你的vpn 服務(wù)器建立于內(nèi)網(wǎng)中,在路由上映射其1723端口到服務(wù)器就OK.

讓我們看下數(shù)據(jù)連接,我們發(fā)現(xiàn)以經(jīng)沒(méi)有了tcp協(xié)議參與,反而成了GRE協(xié)議包與PPP協(xié)議包,為什么它無(wú)法通過(guò)nat呢?來(lái)看下GRE協(xié)議格式:

1612604262691806.png 

每個(gè)字段的詳解:

1612604273155097.png 

我們發(fā)現(xiàn)根本沒(méi)有發(fā)現(xiàn)有端口這個(gè)字段,怎么映射?沒(méi)有就不做端口映射唄~~~就轉(zhuǎn)換ip不就得了。哈哈其實(shí)遠(yuǎn)遠(yuǎn)不是這樣的,這種非常理的數(shù)據(jù)包格式,對(duì)于nat是個(gè)問(wèn)題,對(duì)于防火墻也是個(gè)問(wèn)題。今天我們先論nat:先來(lái)分析如果一個(gè)位于內(nèi)部網(wǎng)絡(luò)中公網(wǎng)IP 2.2.2.2)的主機(jī)A 192.168.1.2pptp服務(wù)器5.5.5.5建立連接,控制連接成功建立,數(shù)據(jù)連接于由沒(méi)有端口,nat只做其ip的轉(zhuǎn)換,于是在2.2.2.2這個(gè)網(wǎng)絡(luò)的nat設(shè)備上有這樣的一個(gè)nat表:


ip

port

協(xié)議

公網(wǎng)ip

公網(wǎng)port

目標(biāo)ip

目標(biāo)port

192.168.1.2


GRE

2.2.2.2


5.5.5.5


192.168.1.3


GRE

2.2.2.2


5.5.5.5


 

當(dāng)2.2.2.2這個(gè)網(wǎng)絡(luò)收到來(lái)自于pptp服務(wù)器的數(shù)據(jù)流包時(shí),2.2.2.2網(wǎng)絡(luò)的nat設(shè)備發(fā)現(xiàn)來(lái)自于網(wǎng)絡(luò)5.5.5.5gre協(xié)議數(shù)據(jù)包,是給內(nèi)部主機(jī)192.168.1.2的,所以成功通信。分析如果位于2.2.2.2這個(gè)網(wǎng)絡(luò)中的主機(jī)B 192.168.1.3 也與5.5.5.5網(wǎng)絡(luò)中的pptp服務(wù)器通信,結(jié)果就不太理想了~~如果在nat表中還有一條到達(dá)主機(jī)192.168.1.3gre通信,到收到一個(gè)gre協(xié)議數(shù)據(jù)包時(shí),2.2.2.2網(wǎng)絡(luò)中的nat設(shè)備猶豫了,這個(gè)包給誰(shuí)呢?192.168.1.2?還是192.168.1.3呢?在此大家也不要忘了,我們的實(shí)驗(yàn)環(huán)境是只有一個(gè)公網(wǎng)ip,內(nèi)部主機(jī)AB出去的時(shí)候,源ip都轉(zhuǎn)換成了公網(wǎng)的ip 2.2.2.2,所以收到的數(shù)據(jù)包都是目標(biāo)ip2.2.2.2,然后nat設(shè)備根據(jù)端口的不同轉(zhuǎn)發(fā)到不同的主機(jī)。有兩個(gè)客戶端就無(wú)法通信,這就是網(wǎng)上說(shuō)的位于內(nèi)部的主機(jī)只能與同一服務(wù)器之間建立一個(gè)會(huì)話,不能有第二個(gè)客戶端。



vpn技術(shù)的流行,但技術(shù)上有約束,人們想辦法開(kāi)發(fā)能穿透nat的設(shè)備,實(shí)現(xiàn)多路復(fù)用。在細(xì)分析gre協(xié)議后,人們發(fā)現(xiàn)gre協(xié)議中有一個(gè)字段,可以拿來(lái)利用,那就是這個(gè)call id,這個(gè)值并不固定,可以改變。這個(gè)值是怎么回事呢?用來(lái)標(biāo)識(shí)唯一會(huì)話的。這個(gè)值最早出現(xiàn)在控制連接中,客戶端與服務(wù)器互相通告彼此的call id值,然后在其數(shù)據(jù)連接中,服務(wù)器call id值寫上客戶端的,客戶端寫上服務(wù)器的call id值。nat引入了一種技術(shù)nat編輯器,大家可以去看下我們的路由器,大部分自動(dòng)開(kāi)啟了對(duì)ipsec隧道與pptp隧道協(xié)議的支持。路由器對(duì)pptp隧道的建立實(shí)施全程監(jiān)控,并在每一臺(tái)PPTP客戶機(jī)的私有IP地址、CALL ID和公共IP地址以及PPTP服務(wù)器接收的CALL ID之間建立單獨(dú)的映射關(guān)系。我可以把call id值當(dāng)做端口來(lái)看,然后添加到nat表中。

讓大家看一個(gè)今天做的一個(gè)實(shí)例圖(pptp客戶端路由器NAT)pptp數(shù)據(jù)連接我們可以認(rèn)為它有兩條nat映射記錄,一個(gè)用于數(shù)據(jù)包的發(fā)送,一個(gè)用于數(shù)據(jù)包的接收。


ip

port

協(xié)議

公網(wǎng)ip

公網(wǎng)port

目標(biāo)ip

目標(biāo)port

192.168.1.10

5000

TCP

59.173.163.119

50001

221.217.151.68

1723

192.168.1.10

30061

GRE

59.173.163.119

32769

221.217.151.68

進(jìn)

192.168.1.10

256

GRE

59.173.163.119

256

221.217.151.68

192.168.1.11

10000

TCP

59.173.163.119

50002

221.217.151.68

1723

192.168.1.11

5868

GRE

59.173.163.119

32770

221.217.151.68

進(jìn)

192.168.1.11

512

GRE

59.173.163.119

512

221.217.151.68


nat把客戶端的call id值當(dāng)做源端口,然后告訴服務(wù)器一個(gè)假的call id(應(yīng)該叫轉(zhuǎn)換后的call id,客戶端跟端口轉(zhuǎn)換一樣)來(lái)充當(dāng)轉(zhuǎn)換后的端口。這個(gè)修改是在控制連接中修改的,然后做nat記錄后發(fā)送給服務(wù)器。(說(shuō)到此我說(shuō)下,前兩天在彎曲評(píng)論上看到了一文章,作者寫到nat對(duì)其服務(wù)器的call id也轉(zhuǎn)換)我認(rèn)為不轉(zhuǎn)換服務(wù)器的call id值。

在我們實(shí)驗(yàn)的時(shí)候,一開(kāi)始我讓多個(gè)不同外網(wǎng)的朋友建立vpn連接,連接我這邊內(nèi)部vpn服務(wù)器主機(jī),抓包發(fā)現(xiàn)服務(wù)器通告的call id都一樣,不解?如果在同一個(gè)內(nèi)部網(wǎng)絡(luò)中,有兩個(gè)客戶端連接進(jìn)來(lái),服務(wù)器通告的call id不改變,通信將出故障?今天又與見(jiàn)賢思齊做了一個(gè)同一內(nèi)部網(wǎng)絡(luò)中,多個(gè)客戶端連接情況,抓包發(fā)現(xiàn)服務(wù)器對(duì)于同一個(gè)ip多個(gè)客戶機(jī)的連接分配了不同的call id值,所以直接修改其客戶端call id便可實(shí)現(xiàn)流量多路復(fù)用,vpn服務(wù)器自動(dòng)解決了這個(gè)同一ip不同call  id值問(wèn)題。

客戶端192.168.1.10的連接:

服務(wù)器方抓包分析如下:


1612604308766181.png 


上圖:客戶端在控制連接中,告訴服務(wù)器它的call id值為32769。


1612604326307883.png 


上圖:服務(wù)器控制連接中告訴客戶端它的call id值為256

客戶端抓包分析如下:


1612604339322727.png 


上面客戶端告訴服務(wù)器它的call id30061。


1612604351673639.png 


服務(wù)器告訴客戶端它的call id值為256

看了以后大家知道nat做數(shù)據(jù)包做了什么處理了吧,客戶端12的連接我就不貼圖了,道理一樣。這樣的端口改變還可以避免不同的客戶端告訴服務(wù)器相同的call id,因?yàn)樗鼰o(wú)法意識(shí)到另一個(gè)主機(jī)也用了此call id ,如果nat不加轉(zhuǎn)換,將出現(xiàn)問(wèn)題。