20211913-馮馨茹-2021-2022-2 《網路攻防實踐》實驗五
一、實驗內容
防火牆配置
(1)過濾ICMP資料包,使得主機不接收Ping包; (2)只允許特定IP地址(kali192.168.200.4),訪問主機的某一網路(Ubuntu192.168.200.3)服務,而其他的IP地址(Win2k)無法訪問。Snort
使用Snort對給定pcap檔案進行入侵檢測,並對檢測出的攻擊進行說明。在kali上使用Snort,對給定的pcap檔案進行入侵檢測,獲得報警日誌。分析配置規則
分析虛擬網路攻防環境中蜜網閘道器的防火牆和IDS/IPS配置規則,說明蜜網閘道器是如何利用防火牆和入侵檢測技術完成其攻擊資料捕獲和控制需求的。二、實驗過程
防火牆配置
1、通過過濾ICMP資料包,使主機不接受ping包
在虛擬機器Ubuntu上ping虛擬機器kali,此時是聯通的
在虛擬機器kali中輸入命令iptables -L
,檢視預設規則
在kali中執行iptables -A INPUT -p icmp -j DROP
指令使主機不接受icmp的資料包。
其中-A
是追加新規則於指定鏈的尾部,INPUT
表示資料包入口(規則),-p
用於匹配協議,-j
用於指定如何處理(ACTION)。
再次通過命令iptables -L
檢視規則,發現多了一條icmp針對任何位置不允許訪問的規則,即在INPUT鏈中新增將所以有ping連線產生的icmp資料包丟失的規則。
再次回到Ubuntu虛擬機器,重新ping虛擬機器kali,我的Ubuntu過了很久都沒有響應,應該是ping不通了
執行iptables -D INPUT -p icmp -j DROP
指令除去剛才的過濾規則:(也可使用iptables -F
刪除自定義規則)
再次通過命令iptables -L
檢視規則,發現已經除去
再次回到Ubuntu虛擬機器ping kali,發現可以ping通了
2、只允許特定IP訪問主機網路服務
在這裡只允許kali(192.168.200.4)訪問Ubuntu(192.168.200.3)的telnet
在虛擬機器kali中輸入命令telnet 192.168.200.3
,使kali與Ubuntu進行telnet連線,此時可以連線
在Win2k虛擬機器中也輸入命令telnet 192.168.200.3
先在Ubuntu中提取root許可權,然後輸入命令iptables -P INPUT DROP
使所有的資料包都無法流入
此時在kali中再次嘗試與Ubuntu進行連線,發現無法連線成功
然後在Ubuntu中輸入命令iptables -A INPUT -p tcp -s 192.168.200.4 -j ACCEPT
表示接受來自kali的資料包。
然後再次在kali中嘗試與Ubuntu進行telnet連線,發現可以連線成功了
再在Win2k中嘗試與Ubuntu進行telnet連線,發現無法連線成功
最後在Ubuntu中輸入命令iptables -F
和iptables -P INPUT ACCEPT
恢復之前的狀態。
3、Snort
Snort執行命令提示如下:- ①從離線的pcap檔案讀取網路日誌資料來源
- ②在snort.conf中配置明文輸出報警日誌檔案
- ③指定報警日誌log目錄(或預設log目錄=/var/log/snort)
使用之前實驗中儲存在kali虛擬機器的Downloads中的listen.pcap檔案,在root許可權下輸入命令snort -r /home/kali//Downloads/listen.pcap -c /etc/snort/snort.conf -K ascii
對 listen.pacp 進行入侵檢測, 其中-K ascii
是用來指定輸出日誌檔案的為ASCII編碼。
得到輸出裡檢測出的資料包
然後輸入命令cd /var/log/snort
進入報警日誌目錄
輸入命令vim snort.alert.fast
在這裡我的alert是空的,但是在alert.fast中找到了日誌檔案。
分析配置規則
分析虛擬網路攻防環境中蜜網閘道器的防火牆和IDS/IPS配置規則,說明蜜網閘道器是如何利用防火牆和入侵檢測技術完成其攻擊資料捕獲和控制需求的。
開啟蜜罐HoneyWall虛擬機器,在root許可權下輸入命令vim /etc/init.d/rc.firewall
檢視防火牆檔案,可以看到建立了黑名單和白名單的規則鏈,還建立了很多協議資料包的處理規則鏈
輸入命令iptables -L
檢視實際規則列表,這裡我用Shift+Fn+PgUp/PgDn進行上下翻頁,可以看到預設的規則入INPUT、FORWARD、OUTPUT都已經被關閉了。
執行命令vim /etc/init.d/snortd
查詢snort檔案,可以看到些引數的選項:預設使用預設目錄下的snort.conf規則,預設監聽網絡卡為eth0,預設儲存日誌路徑為/var/log/snort
執行命令vim /etc/init.d/hw-snort_inline
開啟snort_inline的指令碼檔案,可以看到實際執行的引數
執行命令chkconfig --list
檢視服務情況,如果從0~6全是off,那就不自動啟動。可以看到防火牆和NIPS(snort_inline)是自動啟動的,NIDS要手動啟動:
使用命令vim /etc/honeywall.conf
開啟配置檔案,找到update variables,可以看到其值為no,不自動更新:
三、學習中遇到的問題及解決
問題一:對 listen.pacp 進行入侵檢測輸入命令時, 其中-K ascii
輸成了-k ascii
沒有細心區分大小寫。
問題二:在檢視日誌檔案時發現是空的,問了同學也有出現類似的情況,最後在alert.fast檔案中找到了。
四、學習感想和體會
此次實驗主要學習了防火牆的配置,以及對配置規則進行分析。實驗很複雜耗時很久,並且出現的問題比較多,而且不能中途停止不然需要從頭開始。並且在輸入命令時因為粗心出現錯誤,以後的實驗中應多加註意。