1. 程式人生 > 其它 ># 20212908 2021-2022-2 《網路攻防實踐》實踐五報告

# 20212908 2021-2022-2 《網路攻防實踐》實踐五報告

一、實踐內容

1.防火牆

1.1防火牆
從技術範疇上說,防火牆屬於一種網路上的訪問控制機制,通過在不同的網路安全域之間建立起安全控制點,對通過的網路傳輸資料進行檢查,根據具體的安全需求和策略設定決定是否允許網路訪問通過防火牆,達到保護特定網路安全域免受非法訪問和破壞的安全目標。

  • Linux開源防火牆:netfilter/iptables
    工作原理:在nefilter/iptables防火牆系統中,netfilter 元件位於Linux的核心空間中,實現了靜態包過濾和狀態報文檢查(即動態包過濾)基本防火牆功能,此外也支援一個靈活可擴充套件的框架,支援NAT網路地址轉換等其他額外功能,並提供了多層API介面以支援第三方擴充套件,nefilter具備構建防火牆、NAT共享上網、利用NAT構建透明代理,以及構建QoS或策略路由器等安全功能。Iptables 則是工作在Linux使用者空間中的防火牆配置工具,通過命令列方式允許使用者為netfilter配置各種防火牆過濾和管理規則。nefilter/iptables 中包含三個最基本的規則表,分別為用於包過濾處理的filter表、用於網路地址轉換處理的nat表,以及用於特殊目的資料包修改的mangle表。
    命令語法:$ iptables [-t table] command [match] [target]

1.2防火牆配置
任務要求:配置Linux作業系統平臺上的iptables,Windows作業系統平臺上的個人防火牆,完成如下功能,並進行測試:
(1)過濾ICMP資料包,使得主機不接收Ping包;
(2)只允許特定IP地址(如區域網中的Linux攻擊機192.168.200.3),訪問主機的某一網路服務(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻擊機192. 168.200.4)無法訪問

2.Snort

2.1開源網路入侵檢測系統Snort

  • Snort被設計成一個跨平臺、輕量級的網路入侵檢測系統,用C語言編寫,並採用了標準的捕獲資料包函式庫libpcap,具有非常好的可移植性。目前Snort 可以在包括x86、SPARC、PowerPC、Alpha等指令集平臺架構.上的Linux、Windows、MAC OS,以及各種UNIX作業系統上執行。Snort具有強大的功能:資料包嗅探、資料包記錄和分析,以及各種入侵檢測功能。Snort在設計時採用了注重高效能、簡單和靈活的原則,並採用一套原始碼級外掛機制,作為系統擴充套件的手段。Snort 軟體的基本架構主要由四個基本部分組成:
    (1)資料包嗅探/解碼器( sniffer):首先,利用libpcap從網絡卡或離線記錄中捕獲資料包,然後資料包經過解碼器填入到鏈路層協議的包結構體中,以便對高層次的協議進行解碼,如TCP/UDP層。
    (2)前處理器/外掛(preprocessor):接著資料包被送到各種各樣的預處理外掛中,在檢測引擎之前對資料包進行檢查和操作。每個預處理外掛檢查資料包是否應該注意、報警或者修改某些東西。
    (3)檢測引擎/外掛(detection engine):隨後,包被送至檢測引擎,檢測引擎首先通過各種規則檔案中定義的匹配字元電特徵來對每個包的資訊進行快速的模式匹配檢測,然後由各種檢測外掛對包提供額外的檢測功能。規則中每個關鍵字選項對應於檢測引擎外掛,能夠提供不同的檢測功能。
    (4)輸出模組/外掛(output modules):對之前各個部件產生的報警/日誌資訊,根據使用者配置,呼叫相應的輸出外掛進行傳送和記錄。

2.2動手實踐:Snort
使用Snort對給定pcap檔案(第4章中的解碼網路掃描任一個pcap檔案,之前的實踐已經提供了,請在雲班課中下載)進行入侵檢測,並對檢測出的攻擊進行說明。在BT4 Linux攻擊機或Windows Attacker攻擊機上使用Snort,對給定的pcap檔案進行入侵檢測,獲得報警日誌。
Snort執行命令提示如下:
①從離線的pcap檔案讀取網路日誌資料來源
②在snort.conf中配置明文輸出報警日誌檔案
③指定報警日誌log目錄(或預設log目錄=/var/log/snort)

3.分析配置規則

分析虛擬網路攻防環境中蜜網閘道器的防火牆和IDS/IPS配置規則,說明蜜網閘道器是如何利用防火牆和入侵檢測技術完成其攻擊資料捕獲和控制需求的。

二、實踐過程

1.防火牆配置

  • linux作業系統

(1)過濾ICMP資料包,使得主機不接收Ping包
首先在SEED上檢視預設規則:sudo iptables -L

執行:sudo iptables -A INPUT -p icmp -j DROP
使得SEED主機不接受icmp的資料包。這時,Kali則無法ping通SEED:

在SEED中可以看到新新增的規則:DROP icmp --anywhere

最後,可以刪除上述新新增的自定義規則:sudo iptables -F
刪除後可以看到只剩下預設規則了:

(2)只允許特定IP地址(如區域網中的Linux攻擊機192.168.200.3),訪問主機的某一網路服務(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻擊機192. 168.200.4)無法訪問
首先確認Kali和Metas都可以連線至SEED的 telnet 服務:

接下來,在 SEED 上執行以下命令,拒絕一切資料包流入:sudo iptables -P INPUT DROP
則 Kali 和 Linux 無法連線至 SEED:

使用指令sudo iptables -A INPUT -p tcp -s 192.168.1.5 -j ACCEPT
開啟 192.168.1.7 (Kali) 對 SEED 的 tcp 服務,並檢視規則:

Kali可以連線至SEED:

Metas測試連通性,無法連通:

實驗結束,執行以下命令恢復規則至預設:
sudo iptables -F
sudo iptables -P INPUT ACCEPT

  • Windows作業系統

(1)過濾ICMP資料包,使得主機不接收Ping包
在winXP開啟控制面板->本地安全策略->IP安全策略->建立IP安全策略

設定阻止icmp篩選器屬性,篩選器操作設定為阻止

指派阻止icmp策略,策略顯示已指派

發現kali不能ping通winXP

(2)只允許特定IP地址(如區域網中的Linux攻擊機192.168.200.3),訪問主機的某一網路服務(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻擊機192. 168.200.4)無法訪問
管理IP篩選器表->新增篩選器允許kali,源地址:192.168.200.5,目的地址:我的地址,篩選器操作設定為允許

阻止icmp屬性新增允許kali篩選器,應用

kali能ping通winXP

2.Snort

開啟listen.pcap並輸入命令:sudo snort -r listen.pcap -c /etc/snort/snort.conf

3.分析配置規則

三、學習中遇到的問題及解決

  • 問題1:在winXP進行防火牆設定時,一開始忽略掉了設定篩選器後的指派動作,導致實驗一直不成功
  • 問題1解決方案:詢問同學後,發現問題,設定指派,篩選器即可生效。

4.實踐總結

本次實驗,完成了windows系統、linux系統的防火牆設定,動手實踐了Snort,並且分析了虛擬網路攻防環境中蜜網閘道器的防火牆和IDS/IPS配置規則。通過進行實操,加深了自己對於防火牆、snort的理解,加強了自己對於網路攻擊相關概念的具體理解與應用,提高了自己的動手能力,為之後的網路攻防實驗打下基礎。