




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
量子業(yè)態(tài)零信任網關設計詳細文檔整體需求:終端上部署客戶端,安裝tap虛擬網卡??蛻舳嗽诳刂破鬟M行用戶認證后,為客戶端提供miyao-token,獲取用戶可訪問的應用列表。Tcp業(yè)務可以為域名,udp業(yè)務為ip地址在客戶端,對tcp業(yè)務,進行dns代理,提供的地址為私網地址,如/16.將tcp的業(yè)務訪問送到客戶端,客戶端做tcp代理,在與終端的應用建立tcp鏈接后,再和網關建立socket5鏈接,將域名地址、用戶miyao-token告知網關??蛻舳藢cp的body內容通過socket轉發(fā)到網關,網關從控制器獲取域名的解析地址,與解析地址建立tcp鏈接,將報文發(fā)送tcp報文發(fā)送到應用。對udp業(yè)務,直接給客戶端提供ip地址,或者域名(如果是域名,需要從控制器獲取域名解析地址),客戶端直接將udp報文通過socket轉發(fā)到網關。過濾:在網關,從控制器獲取權限白名單,白名單為:域名:端口,或者ip地址端口;根據白名單進行過濾加密:客戶端和網關之間,支持ssl加密。并發(fā):單個網關,并發(fā)用戶鏈接,希望2萬網關的配置:網關的代理地址設置,從控制器獲取,希望不用再nginx上設置開發(fā)內容:客戶端、網關??蛻舳诵枨罂蛻舳塑浖枨笾С謜indows7、windows10、window11客戶端集成tap-windows安裝包,在安裝客戶端時,可以同時安裝號tap虛擬網卡Python開發(fā),多進程處理有安裝程序,可以通過安裝程序進行安裝客戶端功能需求客戶端用戶認證功能打開客戶端,彈出用戶頁面,用戶進行輸入賬號和密碼登錄,獲取用戶miyao-token。用戶認證API接口如下:https:域名/api/pc/userLogin請求方式:POST參數類型
:JSON請求示例:{ “userName”:“ittest”,//用戶名 “userPassword”:“xxxxxxxx”,//用戶密碼 “clientAid”:“xxxxxxxx”,//這個先空著就行 “clientSn”:“xxxxxxxx”,//需要從windows獲取下 “clientMac”:“xxxxxxx”,//需要從windows獲取下。可以多個 “clientOsType”:0,//操作系統(tǒng)類型 “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為,使用戶終端業(yè)務的DNS服務請求主要在客戶端提供的DNS服務進行解析地址,解析地址為私網地址,如:/16.處理規(guī)則如下:提取dns請求的域名,匹配請求的域名是否為認證返回的tcpApp的值,如果是,進行解析,如果不是,返回域名解析失敗,使系統(tǒng)使用原有的域名服務器進行解析如果進行解析,設置域名解析地址為私網地址,如網段地址:/16。記錄解析的地址與域名的對應關系在關閉客戶端時,需要恢復終端在客戶端啟動時的DNSServer地址??蛻舳寺酚稍O置功能根據用戶認證下發(fā)的tcpApp地址、udpApp的地址,需要設置路由,將tcp、udp的業(yè)務地址,路由到客戶端。客戶端TCP業(yè)務轉發(fā)功能客戶端做tcp代理功能。主要流程如下:終端應用進行業(yè)務訪問,域名訪問,進行域名解析,通過DNS劫持獲取到DNS代理提供的私網地址進行TCP鏈接,和客戶端的tcp代理建立tcp鏈接,鏈接建立后,和網關建立socket5,ssl加密通過socket5,將目的域名、端口、miyao-token發(fā)到網關,網關進行記錄將tcp的body通過socket轉發(fā)到網關,網關轉發(fā)到server端。在終端應用,tcp斷開鏈接,則將socket5也進行斷開客戶端從socket收到回應報文,經過虛擬網卡轉發(fā)到終端應用客戶端UDP業(yè)務轉發(fā)功能如果udp的地址為域名,通過向控制器發(fā)送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進行轉發(fā)(傳輸udp報文的socket只有一個)將從socket收到的報文,通過虛擬網卡的寫,發(fā)送到終端的具體應用??蛻舳碎g隔一段時間(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”}處理:對比處理的白名單,如過原來的白名單在現(xiàn)在的白名單中不存在,如domain1,則將該domain1的socket關閉,如果是tcp,則把相關的pcb刪除,不再轉發(fā)目的地址為domain1的報文。網關需求網關系統(tǒng)需求Linux操作系統(tǒng)Nginx的tcp/udp代理基礎上開發(fā)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代理監(jiān)聽,建立鏈接:建立socket后,通過socket5協(xié)議,獲取到如下信息:目的域名目的端口miyao-token判斷域名+端口是否在網關獲取的應用列表,不在,則丟棄,如果在,獲取到應用id,如appId,繼續(xù)往下處理根據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分鐘,向控制器發(fā)送miyao-token老化時間續(xù)期請求。接口如下:https://控制器域名/api/gateway/miyao-tokenKeepAlive類型:post參數:{“miyao-token”:”xxxx”“usermiyao-token”:”xxx”用戶的miyao-token信息}成功返回值:{binhao:200“success”:False}失敗返回值:{binhao:202Success:FalseMsg:”無權限訪問應用:xxxx”}如果有權限,則根據域名對應的地址,將報文發(fā)送到真實的業(yè)務在接收到回應后,將報文body通過socket,在進行ssl加密后發(fā)送到客戶端。網關udp報文隧道轉發(fā)功能如果客戶端有udp業(yè)務,網關與客戶端建立一個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分鐘,向控制器發(fā)送miyao-token老化時間續(xù)期請求。接口如下:https://控制器域名/api/gateway/miyao-tokenKeepAlive類型:post參數:{“miyao-token”:”xxxx”“usermiyao-token”:”xxx”用戶的miyao-token信息}成功返回值:{binhao:200“success”:False}失敗返回值:{binhao:202Success:FalseMsg:”無權限訪問應用:xxxx”}3如果有權限,將udp報文直接進行轉發(fā)。網關持續(xù)監(jiān)聽控制器的指令網關和控
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農民專業(yè)合作社培訓指南
- 停車場智能收費系統(tǒng)招標
- 客戶需求調查表-個性化需求分析
- 統(tǒng)編三年級下冊《趙州橋》公開課課件(有配套教案)
- 跨境電商 的物流
- 建筑施工現(xiàn)場安全監(jiān)督指南
- 外科總論練習卷附答案
- 高職護理婦產科復習試題
- 醫(yī)療機構運營與管理作業(yè)指導書
- 辦公區(qū)裝修活動策劃方案
- GB/T 5455-2014紡織品燃燒性能垂直方向損毀長度、陰燃和續(xù)燃時間的測定
- GB/T 5117-2012非合金鋼及細晶粒鋼焊條
- GB/T 3782-2006乙炔炭黑
- 大國醫(yī)魂:800年滋陰派與600年大德昌課件
- 女性外陰腫瘤
- 真核生物的轉錄
- 《電商企業(yè)財務風險管理-以蘇寧易購為例開題報告》
- 公司組織架構圖(可編輯模版)
- 中小學綜合實踐活動課程指導綱要
- 清淤工程施工記錄表
- 黃河上游歷史大洪水市公開課金獎市賽課一等獎課件
評論
0/150
提交評論