第四章 實作技術與實驗結果
4.5 防⽕火牆⾃自動邏輯⽣生成實驗結果
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
安裝完成後,Snort的設定檔都在snort.conf裡。︒我們須先設定被保護之網段的 HOME_NET參數,此處為10.55.211.0/24,並設定測試所⽤用之規則。︒Snort同時也⽀支援圖 形化的操作介⾯面(ACIDBase),但由於本實驗中並未使⽤用到,故在此不安裝。︒Snort 提供 多種警告訊息輸出格式,分別為:unified2、︑alert_unified2、︑log_unified2、︑syslog、︑pcap 及MySQL,此處我們使⽤用pcap格式,並由Unix Domain Socket做出即時警告。︒
4.4.4 POX Controller安裝
POX是基於Python語⾔言開發的控制器,由於Linux Ubuntu已內建Python 2.7的版本,因 此只需安裝git並使⽤用git下載程式即可。︒
4.5 防⽕火牆⾃自動邏輯⽣生成實驗結果
為驗證防⽕火牆邏輯⾃自動⽣生成功能,在實驗開始前,交換機上並無設定任何資料流表項,
我們藉由下列指令進⾏行資料流表項之查詢:
查詢後結果如圖4.5所⽰示,顯⽰示資料流表內⽬目前沒有任何資料。︒
圖4.5 初始資料流表。︒
$sudo apt get install git
$sudo git clone http://github.com/noxrepo/pox
$sudo ovs-ofctl dump-flows br0
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
接下來在Client主機上使⽤用ping以及netcat等指令進⾏行測試,產⽣生ICMP、︑TCP、︑
UDP等封包,並配合不同的連接埠進⾏行3個測試案例。︒
1. 使⽤用ping指令送出ICMP封包至Server1進⾏行測試
此時由於資料流表內並無任何相符規則,因此交換機會將此封包轉發給控制器,
⽽而控制器收到此封包後,會分析該封包之內容,並向交換機下達指令,允許相同類型 之封包通過。︒此時我們可看到ping指令成功執⾏行,資料流表內也已新增相關表項,同 時會觸發觀測時間,以⽬目的地的IP address為依據,此⼀一時間內收到的封包均予以通⾏行,
時間到達後則將阻擋不存在於資料流表內的流量。︒
圖4.6 Client ping Server1成功畫⾯面。︒
圖4.7 資料流表項新增成功畫⾯面。︒
路由表項各欄位說明如下:
cookie:暫存值。︒
duration:表項時間。︒
$ping 10.211.55.7
‧
n_packets:此路由表項收到之封包數量。︒
n_bytes:此路由表項收到之封包總⼤大⼩小。︒
idle_age:閒置時間。︒
priority:優先序,值越⼤大代表優先權越⾼高。︒
protocol:通訊協定。︒
in_port:交換機上的實體埠號。︒
vlan_tci:vlan tag。︒
dl_src:封包來源之Mac address。︒
dl_dst:封包⽬目的之Mac address。︒
nw_src:封包來源之IP address。︒
nw_dst:封包⽬目的之IP address。︒
nw_tos:IPv4 Type of Service。︒
icmp_type:ICMP封包類型。︒
icmp_code:ICMP封包代碼。︒
action:執⾏行之動作。︒
output:封包傳送之實體傳送埠號。︒
2. 接下來以netcat指令向Server1送出TCP port:80的封包,模擬web流量以進⾏行測試,我 們可以看到交換機的flow table內也成功新增了相關flow entry。︒
$nc 10.211.55.7 80
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖4.8 資料流表新增TCP:80成功畫⾯面
3. 使⽤用netcat指令向Server2送出TCP port:20、︑22封包,產⽣生FTP、︑ SSH流量進⾏行測 試,可以看到交換機的flow table內也成功新增了相關flow entry。︒
圖4.9 資料流表新增SSH、︑FTP流量成功畫⾯面
$nc 10.211.55.8 20
$nc 10.211.55.8 22
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
接下來待所設定之觀測時間到達後,繼續進⾏行測試。︒如圖4.10所⽰示,可以看到交換 機上已經新增了對Server1、︑Server2 action = drop的表項,若是封包不存於路由表內,
則會被丟棄,不會再傳給控制器,以達到⾃自動防⽕火牆功效。︒
圖4.10 資料流表新增drop規則畫⾯面。︒
⾃自動防⽕火牆邏輯產⽣生後,我們透過直接傳送封包的⽅方式進⾏行測試,證明本研究所 提出之理論可⾏行,⾃自動產⽣生之邏輯正確無誤。︒⾸首先使⽤用Client ping Server1、︑Server2,
可以看到成功ping到Server1,但卻無法ping到Server2。︒接著利⽤用netcat對Server1主機產
⽣生TCP : 20、︑21、︑80進⾏行測試,如圖4.11-4.13所⽰示,只有在觀測時間內所允許之流量 可以通⾏行,其餘封包皆會被丟棄,達到⾃自動防⽕火牆之效果。︒
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖4.11 ⾃自動防⽕火牆測試結果(ping Server1,Server2)。︒
圖4.12 ⾃自動防⽕火牆測試結果(Server1 TCP port 20,21)。︒
圖4.13 ⾃自動防⽕火牆測試結果(Server1 TCP port 80)。︒