前幾天寫了一篇文章網絡安全建設如何做到安內攘外,其中核心思想之一爲安全與業務的融合是下一步趨勢,近期不斷思考如何讓安全更貼身的服務靈活多變的業務?如何通過模塊化、可插拔的方式與系統系統融合?如何讓業務中有安全,安全中有業務等問題。以此需求爲前提,本文通過Mininet模擬SDN架構網絡,通過Suricata實現IDS檢測,利用Floodlight下發流表策略對流量進行調度,目標是將防護設備形成防護能力,通過編排方式,快速切入業務,保障業務系統穩定運行。
名稱 | 版本 |
floodlight | 1.2 |
mininet | 2.2.2 |
suricata | 3.1 |
ubuntu | 16.04 |
本機性能有限,通過一臺虛擬機部署以上產品。文章不對產品部署及具體規則配置進行詳細描述。
一、防護流程介紹
通過ping指令進行簡單測試,初期IDS設備未採集h1與h2流量,後期通過策略下發,實現IDS快速切入主機流量,對主機流量進行實時檢測。本文采用開源產品搭建,操作效果不是太友好,後期可進行完善,通過可視化以拖拽形式實現安全快速編排。
二、模擬網絡環境搭建
2.1 通過mininet,搭建模擬測試環境,見下圖:
c0爲controller(SDN控制),s1爲OVS交換機,h1(10.0.0.1)、h2(10.0.0.2)、IDS(10.0.0.3)爲三臺模擬主機。
對mininet搭建環境進行ping測試,確定網絡暢通。
2.2 通過Floodlight進行訪問,Switches信息如下圖:
其中h1使用port1,h2使用port2,h3使用port3,流表爲默認。
網絡架構圖如下:
2.3 IDS主機部署Suricata後,對IDS添加ping指令檢測,語句如下:
alert icmp any any <> any any (msg:"PING TEST";icode:0;itype:8; sid:1000000; rev:3;)
具體icode與itype數值選擇,見下圖:
三、測試
初期IDS未採集h1相關流量,所以當h1對h2進行ping操作時,IDS不會進行流量監測。
利用floodlight,通過post形式對流表進行下發操作,將h1對h2的流量鏡像到IDS中,流表操作語句如下:
curl -X POST -d '{"switch":"00:00:00:00:00:00:00:01","name":"flow-mod-2","cookie":"123","priority":"32768","in_port":"1","eth_type":"0x0800","active":"true","actions":"output=2,3"}' http://127.0.0.1:8080/wm/staticflowpusher/json
通過Floodlight查看,流表已下發成功。
當我們通過h1主機再對h2進行ping操作時,見下圖:
IDS的告警信息fast.log,監測告警如下:
可見我們通過對流表操作,實現了對主機的流量鏡像採集,實現了安全能力快速切入。以此邏輯我們可將已有的安全設備進行整合(比如IPS、WAF等)納入至SDN架構中,將防護設備形成防護能力,通過可視化編排方式,快速切入業務,保障業務系統穩定運行。
四、說點其它
1.基於SDN架構的安全建設是後期發展趨勢之一。
2.SDN+安全系統虛擬化,才能發揮更大安全能力。
3.對醫療、教育、金融等行業落地使用還需進一步探討。