




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
量子業態零信任網關設計詳細文檔整體需求:終端上部署客戶端,安裝tap虛擬網卡。客戶端在控制器進行用戶認證后,為客戶端提供miyao-token,獲取用戶可訪問的應用列表。Tcp業務可以為域名,udp業務為ip地址在客戶端,對tcp業務,進行dns代理,提供的地址為私網地址,如/16.將tcp的業務訪問送到客戶端,客戶端做tcp代理,在與終端的應用建立tcp鏈接后,再和網關建立socket5鏈接,將域名地址、用戶miyao-token告知網關。客戶端將tcp的body內容通過socket轉發到網關,網關從控制器獲取域名的解析地址,與解析地址建立tcp鏈接,將報文發送tcp報文發送到應用。對udp業務,直接給客戶端提供ip地址,或者域名(如果是域名,需要從控制器獲取域名解析地址),客戶端直接將udp報文通過socket轉發到網關。過濾:在網關,從控制器獲取權限白名單,白名單為:域名:端口,或者ip地址端口;根據白名單進行過濾加密:客戶端和網關之間,支持ssl加密。并發:單個網關,并發用戶鏈接,希望2萬網關的配置:網關的代理地址設置,從控制器獲取,希望不用再nginx上設置開發內容:客戶端、網關。客戶端需求客戶端軟件需求支持windows7、windows10、window11客戶端集成tap-windows安裝包,在安裝客戶端時,可以同時安裝號tap虛擬網卡Python開發,多進程處理有安裝程序,可以通過安裝程序進行安裝客戶端功能需求客戶端用戶認證功能打開客戶端,彈出用戶頁面,用戶進行輸入賬號和密碼登錄,獲取用戶miyao-token。用戶認證API接口如下:https:域名/api/pc/userLogin請求方式:POST參數類型
:JSON請求示例:{ “userName”:“ittest”,//用戶名 “userPassword”:“xxxxxxxx”,//用戶密碼 “clientAid”:“xxxxxxxx”,//這個先空著就行 “clientSn”:“xxxxxxxx”,//需要從windows獲取下 “clientMac”:“xxxxxxx”,//需要從windows獲取下。可以多個 “clientOsType”:0,//操作系統類型 “clientPrivate”:“xxxxxxxxxxxx”,//私有屬性,先不管 “clientVersion”:“xxxxxx”//客戶端的版本}請求參數說明響應示例成功響應信息:{“success”:“False”,"code:"200","message":"","data":{ “clientAid”:“xxxxxxxx”,(首次登錄返回)//這個可以先不管,我們自己加 “clientKey”:“xxxxxxxx”,(首次登錄返回)//這個可以先不管,我們自己加 “usermiyao-token”:“xxxxxxxxxxxx” “gateways”:[{ “gatewayIp”:“xxxxxx”, “gatewayPort”:xxxx“tcpApp”:“domain1:port,domain2:port,……” “udpApp”:”ip1:port,ip2:port……”} { “gatewayIp”:“xxxxxx”, “gatewayPort”:xxxx“tcpApp”:“domain3:port,domain4:port,……” “udpApp”:”ip2:port,ip3:port……”} ],}}說明”網關可以有多個,返回的網關結構解釋如下:“gatewayIp”:“xxxxxx”,//網關的ip地址“gatewayPort”:xxxx//網關的端口“tcpApp”:“domain3:port,domain4:port,……”//網關的tcp應用域名+端口列表“udpApp”:”ip2:port,ip3:port……”//網關的udp應用域名+端口列表網關返回的用戶身份標識為usermiyao-token認證后的處理:在用戶認證成功后,打開瀏覽器,訪問portal頁面。https://控制器域名/portal?miyao-token=XXX客戶端DNS劫持功能在客戶端啟動后,拉起tap虛擬網卡,初始化dnsserver地址,初始化地址為:獲取當前終端的DNSServer地址,記錄地址設置主DNSServer為,使用戶終端業務的DNS服務請求主要在客戶端提供的DNS服務進行解析地址,解析地址為私網地址,如:/16.處理規則如下:提取dns請求的域名,匹配請求的域名是否為認證返回的tcpApp的值,如果是,進行解析,如果不是,返回域名解析失敗,使系統使用原有的域名服務器進行解析如果進行解析,設置域名解析地址為私網地址,如網段地址:/16。記錄解析的地址與域名的對應關系在關閉客戶端時,需要恢復終端在客戶端啟動時的DNSServer地址。客戶端路由設置功能根據用戶認證下發的tcpApp地址、udpApp的地址,需要設置路由,將tcp、udp的業務地址,路由到客戶端。客戶端TCP業務轉發功能客戶端做tcp代理功能。主要流程如下:終端應用進行業務訪問,域名訪問,進行域名解析,通過DNS劫持獲取到DNS代理提供的私網地址進行TCP鏈接,和客戶端的tcp代理建立tcp鏈接,鏈接建立后,和網關建立socket5,ssl加密通過socket5,將目的域名、端口、miyao-token發到網關,網關進行記錄將tcp的body通過socket轉發到網關,網關轉發到server端。在終端應用,tcp斷開鏈接,則將socket5也進行斷開客戶端從socket收到回應報文,經過虛擬網卡轉發到終端應用客戶端UDP業務轉發功能如果udp的地址為域名,通過向控制器發送dns獲取請求,獲取DNS地址。API接口地址如下:https://控制器域名/api/pc/getDnsIp類型:post參數:{“miyao-token”:”xxx”//用戶miyao-tokendata:[{“domainName”:”aaaaa”}{“domainName”:”qazwsx”}]成功返回值:binhao:200“success”:False“msg”:””data:[{“domainName”:”aaaaa”“ip”:””}{“domainName”:”qazwsx”“ip”:””//如果不存在,ip為”NULL”}]失敗返回值:binhao:201“success”:Flase“msg”:”失敗原因:xxx”客戶端收到UDP報文,判斷UDP是否為客戶端管控的udp,就是是否在”udpApp”列表中的,如果不在,丟棄。是在udp列表中的,將udp報文的ip報文(包含ip頭)通過加密的socket進行轉發(傳輸udp報文的socket只有一個)將從socket收到的報文,通過虛擬網卡的寫,發送到終端的具體應用。客戶端間隔一段時間(10分鐘)獲取白名單應用列表信息https:域名/api/pc/getAuth方法:POST參數:{“miyao-token”:”xxxx”}返回值:成功:{“code”:200“success”:False“Date”:[{ “gatewayIp”:“xxxxxx”, “gatewayPort”:xxxx“tcpApp”:“domain1:port,domain2:port,……” “udpApp”:”ip1:port,ip2:port……”} { “gatewayIp”:“xxxxxx”, “gatewayPort”:xxxx“tcpApp”:“domain3:port,domain4:port,……” “udpApp”:”ip2:port,ip3:port……”}]失敗:{“code”:201“success”:False“msg”:”失敗原因:xxx”}處理:對比處理的白名單,如過原來的白名單在現在的白名單中不存在,如domain1,則將該domain1的socket關閉,如果是tcp,則把相關的pcb刪除,不再轉發目的地址為domain1的報文。網關需求網關系統需求Linux操作系統Nginx的tcp/udp代理基礎上開發C/c++語音入、出端口不能為同一端口網關到控制器進行注冊https://控制器域名/api/gateway/register類型:post參數:{“sn”:”xxxx”//網關的sn碼“ip”:”xxx”//網關的ip地址}成功返回值:{binhao:200“success”:False“miyao-token”:”xxxx”//網關miyao-token“controlmiyao-token”:”xxx”//控制器miyao-token}失敗返回值:{binhao:201“success”:Flase}網關tcp代理功能網關啟動后,從控制器獲取tcp代理的配置。獲取接口:https://控制器域名/api/gateway/getGatewayInfo類型:post參數:{“miyao-token”:”xxxx”//網關miyao-token}成功返回值:binhao:200“success”:False“data”:{“tcpGatewayIp”:”xxxx” “tcpGatewayPort”:”xxxx”“udpGatewayIp”:”xxxx” “udpGatewayPort”:”xxxx”}失敗返回值:{binhao:201“success”:Flase“msg”:”失敗原因:xxxx”}網關獲取其防護的應用列表、默認策略https://控制器域名/api/gateway/getAppList類型:post參數:{“miyao-token”:”xxxx”}成功返回值:{binhao:200“success”:False“defaultAction”:0/1;0:為permit,1:為deny“data”:[{“type”:0/1,0:udp,1:tcp“domain”:”xxxx”,域名如果無域名,則為“NULL”“port”:xx//端口“ip”:“”,//ip地址“id”:x//應用的id號}]}失敗返回值:{binhao:201“success”:False“msg”:”失敗原因:xxx“}tcp代理監聽,建立鏈接:建立socket后,通過socket5協議,獲取到如下信息:目的域名目的端口miyao-token判斷域名+端口是否在網關獲取的應用列表,不在,則丟棄,如果在,獲取到應用id,如appId,繼續往下處理根據miyao-token查詢用戶的權限列表:確認是否已經有用戶權限列表緩存,如果沒有,從控制器獲取權限列表,API接口如下:https://控制器域名/api/gateway/getAuth類型:post參數:{“miyao-token”:”xxxx”“usermiyao-token”:”xxx”用戶的miyao-token信息}成功返回值:binhao:200“success”:False“data”:{“tcp”:”id1,id2……”“udp”:“id1,id2……”//端口}判斷appId是否在tcp的id列表中,如果在,則認為有權限。如果不在,則認為無權限,丟棄報文,向客戶端反饋json信息:{binhao:202Success:FalseMsg:”無權限訪問應用:xxxx”}獲取的信息,記錄緩存。如果有緩存,則匹配緩存,同時刷新miyao-token的老化時間。每間隔20分鐘,向控制器發送miyao-token老化時間續期請求。接口如下:https://控制器域名/api/gateway/miyao-tokenKeepAlive類型:post參數:{“miyao-token”:”xxxx”“usermiyao-token”:”xxx”用戶的miyao-token信息}成功返回值:{binhao:200“success”:False}失敗返回值:{binhao:202Success:FalseMsg:”無權限訪問應用:xxxx”}如果有權限,則根據域名對應的地址,將報文發送到真實的業務在接收到回應后,將報文body通過socket,在進行ssl加密后發送到客戶端。網關udp報文隧道轉發功能如果客戶端有udp業務,網關與客戶端建立一個udp隧道,socket隧道,ssl加密收到udp報文后,根據目的ip和目的端口,確認權限,處理如下:根據目的ip和目的端口,匹配udp應用列表,如果不匹配,直接丟棄,如果匹配根據miyao-token查詢用戶的權限列表:確認是否已經有用戶權限列表緩存,如果沒有,從控制器獲取權限列表,API接口如下:https://控制器域名/api/gateway/getAuth類型:post參數:{“miyao-token”:”xxxx”“usermiyao-token”:”xxx”用戶的miyao-token信息}成功返回值:{binhao:200“success”:False“data”:{“tcp”:”id1,id2……”“udp”:“id1,id2……”//端口}}判斷appId是否在tcp的id列表中,如果在,則認為有權限。如果不在,則認為無權限,丟棄報文,向客戶端反饋json信息:{binhao:202Success:FalseMsg:”無權限訪問應用:xxxx”}獲取的信息,記錄緩存。如果有緩存,則匹配緩存,同時刷新miyao-token的老化時間。每間隔20分鐘,向控制器發送miyao-token老化時間續期請求。接口如下:https://控制器域名/api/gateway/miyao-tokenKeepAlive類型:post參數:{“miyao-token”:”xxxx”“usermiyao-token”:”xxx”用戶的miyao-token信息}成功返回值:{binhao:200“success”:False}失敗返回值:{binhao:202Success:FalseMsg:”無權限訪問應用:xxxx”}3如果有權限,將udp報文直接進行轉發。網關持續監聽控制器的指令網關和控
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 橋梁工程預應力混凝土施工技術支持服務協議
- 文物博物館IP授權與文化旅游項目投資合作合同
- 小紅書店鋪運營策略分析與效果評估合同
- 線上線下票務代理合作協議及補充條款
- 美容美發連鎖品牌全國代理權授權合同
- 環保技術入股分紅比例及綠色產業合作協議
- 微信視頻號電商直播帶貨培訓與執行合同
- 高寒地帶混凝土冬季施工技術交流合同
- 小學生演講課件制作指南
- 美味飲料創意美術課件
- 機織產品工藝設計與計算改樣本
- 天津港橫道圖-繪制
- 人教版八年級數學下冊 第十九章 一次函數數學活動(課件)
- 病理學大體標本課件
- 皮膚科護士對皮膚科疾病突發事件的護理與處理
- 2023年4月浙江省自考06093人力資源開發與管理試題及答案含解析
- 企業員工安全教育管理制度
- 聚酯生產技術 聚酯現狀與發展趨勢
- 2023-2024學年小學語文作文歸類指導-想象類一(課件)統編版
- 社會調查方法問卷設計
- 銀行情況說明
評論
0/150
提交評論