嘿嘿!!!!!!
今天有點晚,就不分享什么基礎設置了,來個案例吧。
今天說下曾經做過的一個通過VPN隧道進行多地協(xié)同辦公的案例吧,這個案例看懂的朋友可以做其他一些比較有意思的應用。
案例:多地通過VPN隧道組網協(xié)同辦公
某企業(yè)在全國各地都有分公司,每個公司都有電腦十多臺,整個公司用的都是同一家網絡運行商的寬帶。總部內部架設有一個協(xié)同辦公服務器,服務器已經針對員工分配權限。為防止員工私自在非辦公電腦和非工作時間訪問,以及賬號密碼外泄的可能,所以不考慮給每個員工分發(fā)VPN賬號。要求各分公司以VPN隧道連接方式到總部,且連接時候不影響各地分公司正常使用互聯網,可不需要其他任何操作訪問總部協(xié)同辦公服務器和打印設備等。
當前基本網絡情況
基于這個要求,需要實現以下基本功能:
1、總部網關上面有VPN服務端
2、協(xié)同辦公服務器連接至VPN服務端,但是禁止連接互聯網
3、各地分公司VPN終端撥號到總部時候根據賬號分配指定IP地址,并且綁定訪問MAC
4、各地分公司通過VPN連接到總部以后可以正常訪問到協(xié)同辦公室服務器和共享打印機
5、總部對于所有訪問以白名單方式開放協(xié)同辦公服務器的可訪問端口。
6、各地分公司電腦可同時正常訪問互聯網和訪問公司協(xié)同辦公服務器
當時該公司最初統(tǒng)一采購路由的時候,全部都用了ROS 的硬件路由,不貴,各地分公司買了普通的,也就是三百多元一臺,而正是這,發(fā)揮了幾千元設備的作用。下面來說說當時的組網配置。(時間有點長了,可能會有些出入,但是為了很好的還原,已經在模擬環(huán)境里面將大致的配置重新做了一遍,如果各位有什么疑問或者建議可以在評論區(qū)里面留言。)
VPN服務端配置
協(xié)同辦公服務器和共享打印機的IP地址和網關都已經配置好了的,這些大家可以參考之前的兩篇中的配置方法。
VPN服務端,我們采用PPTP
首先,我們建立一個給PPTP客戶端使用的IP 地址池
地址池我們用172.168.0.100-172.168.0.200
# ip pool add name=pptp-pool ranges=172.168.0.100-172.168.0.200
winbox 工具配置如圖:
PPTP用的IP地址池添加
開始配置PPTP 服務端
啟用 PPTP 服務端,如圖:
PPTP 服務端啟用配置
添加一條PPTP 策略
#ppp profile add name=pptp-s local-address=pptp-pool remote-address=pptp-pool change-tcp-mss=default only-one=yes
winbox工具配置如圖:
PPTP 策略模板配置
PPTP 策略模板配置
這里要注意兩點,根據要求,每個賬號只對應一臺設備,所以在設置的時候,"only-one" 這項一點要選"yes",策略的名字就自己決定了。
策略配置完成以后,開始添加用戶名賬號,因為需求要求賬號和用戶名和撥入MAC必須綁定,且分配固定IP地址,所以配置方式如下:
假設分配IP地址為172.168.0.120
# ppp secret add name=ppp1 password=a123456 service=pptp profile=pptp-s remote-address=172.168.0.120 caller-id=”輸入撥入設備的MAC地址”
注:“caller-id”這里的撥入設備的MAC地址就是各個分公司的ROS設備的外網口的MAC地址。策略模板名稱記住要選擇剛才設置的模板。
其他的賬號密碼依次類推
winbox 工具配置如圖:
賬號密碼添加
注:ROS 中PPTP服務端,如果終端是Windows系統(tǒng)的撥號上去以后,網關地址和獲取到的地址是一樣的,但是在ROS的PPTP客戶端中撥號上去以后網關地址和獲取到的地址是不同的,所以記住在添加路由之前一定要查看下撥號獲取到的地址和網關情況。
ROS 上PPTP客戶端撥號設置
PPTP撥號時候需要保證網絡已經正常連接。
PPTP的客戶端設置還是很簡單的
配置方式如下:
# interface pptp-client set connect-to=66.90.158.22 user=ppp1 password=a123456 allow=mschap1,mschap2,chap
,pap disabled=no
winbox 工具配置如圖:
分公司PPTP撥號設置
注:這里切勿選擇自動添加默認路由,pptp撥號以后的路由我們要選擇手工添加,并且要做路由標記。
另外要注意的是,這一次是因為明確知道了每次IP地址和網關都是固定的,所以在 router 中可以手工直接添加一條路由記錄,如果是隨機的網關和IP地址就需要寫腳本,從撥號獲取的地址中提取,然后再添加到 router 中。
添加路由
# ip route add dst-address=0.0.0.0/0 gateway=172.168.0.100 check-gateway=ping distance=1 routing-mark=x
winbox 工具配置如圖:
路由添加
將往總部協(xié)同辦公服務器所在網段的數據包做標記,讓這些被打上標簽的網絡數據包從 名稱為 X的那條路由通過。
配置方式如下:
先將目標地址,也就是協(xié)同辦公服務器所在網段的需要連接的IP地址添加到地址列表
# ip firewall address-list add list=pp address=100.100.100.99
winbox 工具配置如圖:
添加目標地址到地址列表
地址列表的分類名稱可以自己設置,IP地址可以是單個也可以是一個地址段
考慮到每個分公司不一定所有電腦都要連接,所以在地址列表里面可以再添加需要連接的電腦的IP,具體參考上面,但是類別名稱要修改掉。
給這些訪問請求進行標記,ROS在收到這些數據包轉發(fā)請求的時候會根據目標地址和源地址匹配進行標記。
ROS 只對已有規(guī)則進行匹配,沒有的全部按默認繼續(xù)。
配置如下:
# ip firewall mangle add chain=prerouting src-address=192.168.1.0/24 dst-address-list=pp action=mark-routing new-routing-mark=x disabled=no passthrough=yes
注:有些地方會說passthrough=yes 要選no ,但是我在實際的操作中發(fā)現yes的時候才可以使用。
winbox 工具配置如圖:
標記-源地址
標記-目標地址
標記 符合規(guī)則數據報文的路由選擇
添加路由表
#ip route rule add dst-address=100.100.100.99 action=lookup table=x
將需要訪問的目標IP地址全部加入到這里。
Winbox 配置如圖
路由表添加
配置到這里,網絡基本完成。剩下的很多都是防火墻上面的策略了,這里就先不發(fā)了。
注:一般情況配置完成以后就即時生效了,但是在策略路由時候,可能會出現配置完成,但是還是無法連通,這個時候請檢查下路由里面的是否有原來的連接請求在,具體可查看ip firewall connection ,如果發(fā)現有,可以先踢出,然后檢查是否全部正常。
寫在最后,其實這個辦法再配合上其他一些策略,還能玩出其他花樣。還是那句話,喜歡的朋友請關注和推薦,你們的關注和推薦,還有各種意見是我繼續(xù)分享的動力。
如有錯字,請指出,謝謝,我將不斷完善。
Yeslab講師 曹鑫磊
私有虛擬網絡(VPN)是在公用網絡基礎之上建立的私有加密通信隧道網絡,企業(yè)對于自管轄網絡中個人使用VPN軟件行為具有監(jiān)管責任,但技術上卻很難識別VPN的加密與通信方式,因此利用人工智能(AI)領域的神經網絡技術從網絡流量中識別VPN軟件行為是一種全新的檢測方法。這種方法完全跟VPN技術解耦,不論VPN軟件使用的加密技術如何復雜,神經網絡都可以站在VPN使用者的角度去識別VPN行為。在華為HCIA-AI與HCIP-AI認證中,神經網絡在被描述為核心技能,本文就將講解如何使用神經網絡來識別VPN流量。
根據我國互聯網相關法律,個人及企業(yè)在未備案前提下不允許私自建立與使用跨國際VPN線路與軟件。但實際情況是企業(yè)難以管理個人利用企業(yè)網絡使用各類VPN軟件,甚至自己搭建VPN通道連接至境外服務器。隨著VPN技術在不斷進步,這類監(jiān)管任務的難度也在不斷提升。
網絡行為是主機連接至網絡后,向網關或對端發(fā)送網絡數據包的行為,例如持續(xù)均等時間間隔的發(fā)包與發(fā)送一定流量后馬上停止一段時間就被認為是兩種不同的網絡行為。基于這種方法,我們使用的數據集體現了此類發(fā)包規(guī)律的明顯特征。
神經網絡是人工智能領域的流行算法,利用神經網絡模型與反向傳播技術可以對神經網絡進行基于數據的監(jiān)督學習訓練,完成訓練的模型會對某些數據的擬合度提高一些。用神經網絡搭建數據分類器是計算機視覺、自然語言處理等領域的常用方法,我們也使用這樣的方法來處理網絡行為數據。
數據
我們使用了公開的VPN流量數據集,該數據集由一家安全企業(yè)對近1000名員工的網絡數據進行抓包截取,并固化為一些行為特征。這份數據分兩個月抓取完成,第一個月由全體員工不連接任何VPN進行正常工作,其流量包含訪問公司信箱、OA系統(tǒng)、即時聊天、視頻網站、購物網站等。第二個月由全體員工按自己的方式連接VPN進行辦公,流量仍包含上述站點。這樣就抓取了兩份不同標簽的網絡數據(VPN | NOVPN)
抓取的數據以數據流為基本單位進行了特征提取,提取出來的數據特征如下所示:
· FIAT指標: 向前發(fā)送兩個數據包之間的時間(固化為四個指標:平均值,最大值,最小值,標準差)
· BIAT指標: 向后發(fā)送兩個數據包之間的時間(固化為四個指標:平均值,最大值,最小值,標準差)
· FLOWIAT: 形成數據流的兩個數據包之間的時間(固化為四個指標:平均值,最大值,最小值,標準差)
· ACTIVE: 時間量,在變成空閑之前的活躍時間
· IDLE: 時間量,在變成活躍之前的空閑時間
這份網絡流量數據最終被制作為23個數據屬性,1個標簽屬性,使用Pandas導入數據后如圖1所示:
圖1:示例數據展示
數據分布
通過觀察數據在各個值域的分布情況,可以對數據的質量有所掌握,數據的質量問題會導致模型訓練結果不太理想。例如某些數據可能存在部分值域數據非常多,而其他值域幾乎沒有數據的"一邊倒"情況,我們需要通過對數據質量的考察,來決定是否需要做一些數據增強、數據篩選與特征工程。神經網絡擁有非常龐大的參數空間,對特征工程的要求偏低。本文所使用的數據分布圖如圖2所示。
圖2:每項屬性的數據分布,大多數屬性存在上述"一邊倒"問題,也是在真實世界中捕獲網絡流量數據的正常現象
神經網絡模型
本文使用的神經網絡為多層感知器模型,通過前向傳播的線性計算與非線性激活來完成推理過程,推理結果與標簽計算獲得誤差,使用誤差通過反向傳播的偏微分計算獲得殘差并最終轉化為梯度來更新神經網絡的可學習參數。其數學過程不在這里詳細講解,這類知識可以在華為HCIA-AI認證、HCIP-AI認證與華為人才在線平臺中獲取。
模型結構
本文使用的神經網絡模型結構如下:
· 輸入層:(None, 23) 維度的數據輸入
· 第一個隱含層:32個神經元,激活函數為"ReLU"
· 第二個隱含層:32個神經元,激活函數為"ReLU"
· 第三個隱含層:16個神經元,激活函數為"ReLU"
· 輸出層:使用"Sigmoid"激活和函數做 (0-1) 范圍的單值輸出
· 誤差計算使用二值交叉熵
· 優(yōu)化算法使用"Adam"
· 學習速率:0.0007
神經網絡結構圖如圖3所示,模型參數如圖4所示。
圖3:本文使用的神經網絡架構,這種"先胖后瘦"的結構可以對信息特征的表達空間先做擴充,然后再進行壓縮,適用于小型數據集
圖4:模型參數
激活函數
激活函數是為神經網絡提供非線性輸出能力的關鍵因素,許多著名的神經網絡模型(如AlexNet與ResNet等)都非常考究激活函數的選擇過程。本文所描述的模型對于所有隱含層均使用ReLU作為激活函數,其函數曲線如圖5所示。輸出層則使用Sigmoid作為激活輸出,其函數曲線如圖6所示。
圖5:ReLU函數曲線
圖6:Sigmoid函數曲線
訓練過程
訓練數據樣本數量為16758,測試數據樣本數量為2000,訓練時先打亂訓練數據,并劃分出驗證數據集,完成全部訓練樣本數據的過程記為1次訓練,共訓練500次,其訓練誤差與驗證誤差曲線如圖7所示:
圖7:X軸為訓練次數,Y軸為誤差值,藍色曲線為訓練誤差,紅色曲線為驗證誤差
實驗結果
最終對測試數據的2000個樣本推理準確率為85.56%,本實驗的出發(fā)點為檢測企業(yè)中的VPN流量行為,在該人工智能模型支持下,配合人力二次檢測,可以有效發(fā)現企業(yè)中VPN軟件的使用情況,讓企業(yè)不用再耗費高成本采購專業(yè)監(jiān)管設備或服務。
從深度上講,如果能收集更多的數據,使用神經網絡來檢測VPN流量就會更加準確,從廣度上講,我們可以使用同類方法檢測異常流量、區(qū)分個性化應用流量以及預分類惡意流量等。華為的網絡人工智能 (NAIE智能體) 就包含了許多利用人工智能來協(xié)助運維人員完成問題檢測、指標固化、信號強度計算等許多復雜的案例。相信在不遠的未來,我們所使用的計算機網絡必定能夠依靠人工智能技術向每一個人提供更加個性化、差異化的服務。
作者簡介:
曹鑫磊,在華為授權合作伙伴(HALP)Yeslab負責華為人工智能和網絡自動化方向課程開發(fā)和授課,對華為認證有著獨到的見解,深受學員好評。