小弟是互聯網發燒友一隻,曾經傻呆呆的覺得互聯網上的環境很乾淨,沒有病毒和***,因而乎本身買了一臺雲服務器就搭建了一個***網關,和本身家的電腦組成混合雲,大概架構就是雲主機作***-server,家裏的一臺機器作網關,這個「網關」經過***協議鏈接至這個雲主機的***服務上,這樣的話全部機器均可以經過這個雲主機的ip+端口映射到家裏的機器上。剛爽了沒幾天,服務器就被攻陷了,連帶家裏全部聯網的設備所有淪陷,當時的心情比吃了屎還難受,全部資料所有被加密,包括我數十年的照片,論文……聽到這裏,相信您必定會爲我哀傷1秒吧。可是哀傷之餘慶幸的是個人重要資料都有備份,而且是脫機備份!這裏我要強調吖,必定要脫機備份,什麼RAID0、RAID1、RAID10、RAID11在病毒面前都是文件,通通吃掉,那種東西能夠防止硬件錯誤致使的資料丟失,可是卻防不住軟件病毒帶來的損失,因此必定必定要脫機備份!!nginx
固然今天的主題就是,如何能夠創建相對更加安全的混合雲網關,或者說幾種***方式的對比。算法
通過個人調研,混合雲的意思就是把公有云,好比AWS,阿里雲等公司的雲服務器和自建機房的服務器打通,把關鍵數據放到自建機房,互聯網入口例如nginx放到公有云上,實現節約成本、彈性伸縮等需求。那麼創建混合雲的關鍵一點就是如何把私有云和公有云打通。目前廣泛的作法只有兩種,一種是找運營商拉專線,直接在機器上增長路由,在自建機房的機器上指定去往公有云VPC的網段的走專線;另外一種就是構建×××網絡。安全
固然兩者的對比也就出來了,專線的「專」是很昂貴的,須要藉助運營商,雲服務提供商等多方面進行配合纔可以作到,那麼對於小型企業可能未必用的起這麼高大上的線路,那麼×××的優點就體現出來了,×××網關是基於internet封裝的私網通道,價格便宜,作到公網的價格,私網的享受。×××網關在安全性上雖然比高速通道等物理專線稍弱,可是×××網關認證數據來源,且傳輸過程是加密的,即便被竊取也沒法破解數據內容。另外還提供防篡改抗重放能力。×××的便捷也是其優點之一,即開即用,快速搭建,無需多方協調。×××在可靠性上也是值得信賴的,×××網關節點雙機熱備,實時同步,自動切換。若是使用專線爲了可靠開兩條專線,那費用估計不是通常企業能負擔得起的。服務器
好了。那麼言歸正傳,說說如何創建更加安全的×××線路。網絡
提及***那就更多了,PPTP***,Ipsec×××,L2TP***,Open×××等等,PPTP最簡單,可是安全性最低,Open×××最安全,可是須要藉助特定的軟件才能登錄,又比較複雜。session
經過親自試驗,IKEv2類型的***須要建立證書,使用起來較爲複雜,而且須要在哪一個機器上登陸就要把證書拷到哪一個機器上,而且還須要保證該設備可以安裝證書,普適性差一些,而且有一些小問題,好比有的網站能打開,有的網站卻打不開,很難排錯。架構
而後使用L2TP方式也部署了一遍,手機端仍是順利連上,可是win7電腦端死活連不上,經查詢資料發現對於WIN7還要修改註冊表,見該連接:https://blog.csdn.net/u010750668/article/details/62057603ssh
鑑於公司電腦資料較重要,不敢修改註冊表關鍵信息,不知道會有什麼連帶後果,因此沒有進行操做,可是無論怎樣,這個方式普適性也不太好。ide
那就剩最後一個最容易卻最不×××全的PPTP ***了,那既然你們都說他不安全,咱們就探究一下爲何不安全,能不能主動進行修補漏洞。測試
根據資料顯示,所謂的「不安全」是指數據在傳輸過程當中容易被截獲,而後破譯出其中的內容,是由於PPTP所使用的加密協議已經被破解,認證過程爲mschapv2,總key 長度爲 2^56 x2 = 57bits,FPGA之類的專用硬件大概23小時內搞定。
MPPE的128位session key是基於mschapv2的hash生成的,套了幾回md4和sha1而已,若是得到了初始認證的key,若是對整個pptp ***抓包了的話,能夠推出後續的session key從而解密整個pptp ***流量。
因此說PPTP ***缺少forward secrecy,一旦key被破解就能夠解密所有以前的流量,可是ipsec的ike握手用的是diffie hellman key exchange,每次隨機產生的session key能夠提升forward secrecy。
雖然我也聽不太懂,總之是能夠被破解,可是要不要破解你那就看你的利用價值了,可是對於通常的我的使用,我倒認爲不會有人費盡心機去破解你的數據。
此外,即便破解,破解的也是傳輸的明文數據,對於ssh,https之類的自己加密數據仍然是沒法破解的。下面我用一個小實驗來探究一下。
實驗環境:A機器:×××客戶端1,外網IP地址爲220.*.*.176,內網IP爲10.31.162.113
B機器:阿里雲服務器,×××服務器 115.*.*.200,內網IP爲10.31.160.110
C機器:×××客戶端2,外網IP地址爲117.*.*.253,內網IP爲10.31.162.111
D網站:
實驗拓撲1:經過×××訪問外網網站的抓包分析
這樣創建鏈接後A訪問http網站D,在A端進行抓包,發現所有都是PPP包,數據所有是加密後的樣子,沒法直接看到http報文內容。可是在B端抓包,能夠看到,在解密後會發送普通的HTTP數據,也就能夠看到HTTP報文明文數據,以下圖所示:
作一個簡單分析:32,33號數據包爲DNS請求,請求www.51cto.com的IP地址,並獲得地址爲59.110.244.199,以後36,37,41號數據包爲B機器與D網址的TCP三次握手,接下來42號數據包就是明文的HTTP報文了,能夠看到Host地址是什麼。從這個實驗中能夠看出***隧道其實是加密的,經過抓包是沒法直接看到數據內容的,固然破解另說,可是到達***服務端以後,再去訪問網站,則使用的不加密的明文數據報發送,起不到加密做用。
實驗拓撲2:經過×××訪問公司內網網站的抓包分析。
至關於兩位出差人員A和C同時使用公司×××連入公司內網,而後測試A與C之間的通訊是否加密。爲了方便測試,在A上創建一個簡單的HTTP網站nginx,而後從C上訪問。
抓包結果圖忽略,總之沒有任何一個HTTP包,均爲PPP Comp和GRE數據包,那也就證實了,使用×××網絡在公網段是所有加密的,只是不一樣的×××協議對數據加密的算法不同,因此在這個意義上,使用PPTP ×××在數據不是很重要的場景下仍是可使用的,若是數據極其重要,仍是建議不要使用這種搭建方式了。