#31 RemoteAccessTech-004-SDP也是一種SSL VPN?
0、篇首語
近段時(shí)間以來,收到反饋想讓我講講接入技術(shù)的呼聲一直很高,而且確實(shí)隨著政策、疫情、攻防演練、業(yè)務(wù)發(fā)展、安全態(tài)勢(shì)等多方面的影響,企業(yè)對(duì)于接入安全也越來越重視。
而安全業(yè)界而言,零信任理念近幾年受多方加持越來越火熱,不論各家的零信任如何包裝粉飾,接入技術(shù)也是其無論如何也跳脫不開的基本線。
RemoteAccessTech系列不會(huì)討論零信任理念本身,但是會(huì)嘗試將遠(yuǎn)程接入技術(shù)拆開來盡量給大家講清楚。
1)、RemoteAccessTech-001-從互聯(lián)網(wǎng)邊界接入說起
2)、RemoteAccessTech-002-VPN技術(shù)發(fā)展史淺析(上)
3)、RemoteAccessTech-002-VPN技術(shù)發(fā)展史淺析(下)
4)、RemoteAccessTech-003-理解隧道協(xié)議
1、 SDP 也是一種SSL VPN ?(Comparsion Of RemoteTech)
在 RemoteAccessTech-002-VPN技術(shù)發(fā)展史淺析(下) 中的 第3.6.2小節(jié) 中所述:
所有通過SSL協(xié)議進(jìn)行加密傳輸?shù)腣PN即可稱之為SSL VPN,這也是它顯著有別于 GRE、IPSEC等VPN關(guān)鍵特征點(diǎn)。
顯而易見,由于SSL/TLS發(fā)展為了安全傳輸?shù)氖聦?shí)標(biāo)準(zhǔn),考慮安全,現(xiàn)行所有SDP在傳輸協(xié)議默認(rèn)均使用了SSL/TLS協(xié)議 ,故僅 從接入技術(shù)視角 ,SDP也是SSL VPN的一種實(shí)現(xiàn)。
注:SDP和SSLVPN在接入技術(shù)以外的對(duì)比,暫不在本系列相關(guān)篇幅中涉及,考慮后續(xù)系列再補(bǔ)充
2、SDP/SSL VPN的提供的接入能力
正如前面所說,在接入技術(shù)視角,SDP和SSL VPN其本質(zhì)是一致的,所以兩者可以一般看待。
那么,典型的SDP/SSL VPN都提供哪些接入能力呢?
再回到 RemoteAccessTech-003-理解隧道協(xié)議 中的 第2.2.5章節(jié) 中描述如下:
多數(shù)SSL VPN廠商都具備如下代理資源類型:
1)、WEB資源:乘客協(xié)議是7層。而傳輸協(xié)議,由于SSL VPN默認(rèn)使用SSL,一般認(rèn)為屬于5-6層。
2)、TCP資源/代理資源/端口轉(zhuǎn)發(fā)資源:多數(shù)情況下,這些模式下,只能發(fā)布TCP的IP域名。乘客協(xié)議為4層,傳輸協(xié)議同前,SSL屬于5-6層。
3)、IP資源: 該模式一般能夠發(fā)布UDP、TCP的IP域名+端口,通常還可以支持ICMP。乘客協(xié)議為3層,傳輸協(xié)議同前,默認(rèn)是SSL屬于5-6層。
上述資源分類,不僅對(duì)SSL VPN, 對(duì) SDP (其接入技術(shù)實(shí)現(xiàn)上也屬于SSL VPN類別) 也同樣生效。
3、問題來了,正向代理和反向代理
問題來了,既然SDP/SSL VPN都是提供代理能力,那么在提到代理能力時(shí),還有一個(gè)經(jīng)常被問及的問題:"XX資源是正向代理還是反向代理?"
也就意味著我們需要先區(qū)分清楚,什么是正向代理,什么是反向代理。
3.1、正向代理和反向代理的概念理解
我們知道,代理是一個(gè)中間層,兩端一定是要有Client(客戶端)和Server(服務(wù)供給方),至少需要3方才能形成一個(gè)完整的代理活動(dòng)。
那么,有的代理為需求方(Client) 工作 ,有的代理為服務(wù)響應(yīng)方(Serer) 工作,這兩者的區(qū)別就是 正反向代理 的區(qū)別。
1)、正向代理:為Client工作的稱之為正向代理,對(duì)客戶端負(fù)責(zé),最基礎(chǔ)的作用是 隱藏真實(shí)客戶端。
自然世界中,正向代理的場(chǎng)景類比有 代購(gòu)、跑腿 ,以及電影名場(chǎng)面:"請(qǐng)和我的律師談"。
2)、反向代理:為Server 工作的稱之為反向代理,對(duì)服務(wù)端負(fù)責(zé),最基礎(chǔ)的作用是 隱藏真實(shí)服務(wù)端。
自然世界中,反向代理的場(chǎng)景類比,較典型的就是 長(zhǎng)租公寓平臺(tái) ,可以簡(jiǎn)單理解為是 規(guī)?;亩繓|。長(zhǎng)租公寓平臺(tái)以一個(gè)長(zhǎng)期價(jià)格,向一手房東統(tǒng)一采購(gòu),加以改裝,分租給各個(gè)獨(dú)立租戶。租客(Client) 并不知道 房東(Server)是誰,而是和 長(zhǎng)租公寓平臺(tái)(代理) 通信、簽訂協(xié)議。
3.2、正向代理
回到技術(shù)視角,正向代理(Forward Proxy) ,通常稱為代理、代理服務(wù)器或 Web 代理,是位于一組客戶端計(jì)算機(jī)之前的服務(wù)器。
3.2.1、正向代理的典型場(chǎng)景和用途
1)、代理客戶端上網(wǎng):比如說內(nèi)網(wǎng)多臺(tái)PC,通過指定一臺(tái)代理網(wǎng)關(guān)代理可訪問互聯(lián)網(wǎng)。
2)、客戶端匿名上網(wǎng):實(shí)現(xiàn)匿名化訪問,讓服務(wù)方(Server)無法知道真實(shí)訪問者身份。
Proxyium 就是 匿名上網(wǎng) 的一種場(chǎng)景實(shí)現(xiàn),如下是其界面。
不論是代理上網(wǎng)還是匿名上網(wǎng)場(chǎng)景,因?yàn)?strong>正向代理是為客戶端服務(wù)的,所以客戶端事先都需要要知道正向代理的存在。
在代理上網(wǎng)場(chǎng)景,可能表現(xiàn)為 瀏覽器的代理設(shè)置中要填寫 正向代理的地址等信息;
在類似上述Proxyium的匿名上網(wǎng)中,就需要事先訪問代理站點(diǎn)的地址。
3.3、反向代理
反向代理 則是 位于一個(gè)或多個(gè)WEB服務(wù)器前面的代理服務(wù),用于代理客戶端的網(wǎng)絡(luò)請(qǐng)求,防止客戶端直接訪問服務(wù)器。
4.2.1、反向代理的典型場(chǎng)景和作用
參考 wiki ( HTTPS://en.wikipedia.org/wiki/Proxy_Server#Forward_proxies ),可以看到反向代理典型用途如下:
1)、 SSL加密/ SSL卸載:通過前置代理網(wǎng)關(guān),對(duì)互聯(lián)網(wǎng)發(fā)布HTTPS站點(diǎn),后端內(nèi)網(wǎng)服務(wù)只需要實(shí)現(xiàn)http,即可實(shí)現(xiàn)對(duì)外SSL加密、對(duì)內(nèi)SSL卸載。
2)、負(fù)載均衡:比如說 OA業(yè)務(wù)有3臺(tái)Server服務(wù)器,3個(gè)內(nèi)網(wǎng)IP,通過代理網(wǎng)關(guān)進(jìn)行輪詢負(fù)載,能夠既對(duì)互聯(lián)網(wǎng)提供統(tǒng)一服務(wù)、對(duì)內(nèi)實(shí)現(xiàn)多服務(wù)器間的負(fù)載均衡調(diào)度。
3)、緩存/加速:通過前置代理,對(duì)靜態(tài)資源(css、js、圖片、視頻等)進(jìn)行緩存和加速,降低真實(shí)業(yè)務(wù)Server的性能占用。
4)、防DDOS:當(dāng)前一些抗DDOS防護(hù),也會(huì)采用7層防護(hù),如Cloudflare的CDN,就可通過全球的CDN代理節(jié)點(diǎn),可對(duì)7層資源進(jìn)行DDOS防護(hù)。
如果正向代理相關(guān)場(chǎng)景,是客戶端需要感知到正向代理的存在;相對(duì)應(yīng)地,反向代理場(chǎng)景,則是服務(wù)端需要感知到反向代理的存在,感知項(xiàng)包括如:域名解析需要調(diào)整至反向代理、SSL證書需要配置至反向代理等等,需要完成一定的前置配置。
3.4、透明代理
透明代理在不同的場(chǎng)景下,可能會(huì)有不同的含義。一般如果無特殊說明,透明代理 是指 強(qiáng)制正向代理,即一種通過網(wǎng)絡(luò)層強(qiáng)制代理的機(jī)制。
參考wiki( https://en.wikipedia.org/wiki/Proxy_server#Transparent_proxy ),針對(duì)透明代理解釋如下:
透明代理也稱為攔截代理、內(nèi)聯(lián)代理或強(qiáng)制代理,它攔截正常的應(yīng)用程序?qū)?/span>[1]通信,而無需任何特殊的客戶端配置??蛻舳瞬恍枰来淼拇嬖凇M该鞔硗ǔN挥诳蛻舳撕虸nternet之間,代理執(zhí)行網(wǎng)關(guān)[2]或路由器[3]的某些功能。[注18]
RFC[4] 2616(超文本傳輸協(xié)議 - HTTP/1.1)提供了標(biāo)準(zhǔn)定義:
“'透明代理'是不會(huì)超出代理身份驗(yàn)證和識(shí)別所需的內(nèi)容修改請(qǐng)求或響應(yīng)的代理”?!?#39;非透明代理'是修改請(qǐng)求或響應(yīng)以便向用戶代理提供一些附加服務(wù)的代理,例如組注釋服務(wù),媒體類型轉(zhuǎn)換,協(xié)議減少或匿名過濾”。
典型的透明代理應(yīng)用,是上網(wǎng)行為管理類設(shè)備,此文不作展開。
4、小結(jié)
此時(shí),再回到最初的問題,"XX資源是正向代理還是反向代理?"
1)、隧道資源(Layer 4/Layer 3)相對(duì)明確,因?yàn)樗J(rèn)對(duì)服務(wù)端是透明的,需要客戶端主動(dòng)登錄后,代理訪問原本不可訪問的網(wǎng)段,屬于正向代理。
2)、WEB資源則要看情況了,多數(shù)情況下,廠商的WEB資源是只支持 代理企業(yè)內(nèi)部自有業(yè)務(wù)系統(tǒng),此時(shí)屬于 反向代理 。
但是部分廠商可能會(huì)提供額外的工作模式,即以7層WEB的方式支持代理訪問互聯(lián)網(wǎng)站點(diǎn),此時(shí),則屬于 正向代理。
其效果可能會(huì)類似如下站點(diǎn):
唔,最后再點(diǎn)一下題~
從嚴(yán)謹(jǐn)意義上:
雖然,從安全理念上,SDP被預(yù)期比SSL VPN更安全(實(shí)際上要看各家實(shí)現(xiàn),缺乏安全設(shè)計(jì)的SDP未必安全,此言也可參考HVV系列(如 #16 HVV-Learning-006-應(yīng)用安全與理解安全漏洞 ))
但是,從接入技術(shù)角度(限定前提),SDP確實(shí)是一種SSL VPN(基于SSL/TLS協(xié)議傳輸?shù)腣PN【具有VPN特性】即可稱為SSL VPN)。
部分參考:
https://www.cloudflare.com/zh-cn/learning/cdn/glossary/reverse-proxy/
https://en.wikipedia.org/wiki/Proxy_server#Forward_proxies
https://en.wikipedia.org/wiki/Reverse_proxy
https://datatracker.ietf.org/doc/html/rfc2616
參考資料
[1]OSI model: https://en.wikipedia.org/wiki/OSI_model#Layer_7:_Application_layer
[2]Gateway (computer networking): https://en.wikipedia.org/wiki/Gateway_(computer_networking)
[3]Router (computing): https://en.wikipedia.org/wiki/Router_(computing)
[4]RFC (identifier): https://en.wikipedia.org/wiki/RFC_(identifier)
好了,這篇文章的內(nèi)容發(fā)貨聯(lián)盟就和大家分享到這里,如果大家網(wǎng)絡(luò)推廣引流創(chuàng)業(yè)感興趣,可以添加微信:80709525 備注:發(fā)貨聯(lián)盟引流學(xué)習(xí); 我拉你進(jìn)直播課程學(xué)習(xí)群,每周135晚上都是有實(shí)戰(zhàn)干貨的推廣引流技術(shù)課程免費(fèi)分享!