20199310 2019-2020-2 《網絡攻防實踐》第6周做業

做業課程: https://edu.cnblogs.com/campus/besti/19attackdefense
做業要求: https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10589
課程目標: 學習《網絡攻防技術與實踐》教材第六章,並完成課後做業
本次做業實現目標: 學習網絡安全防範技術

做業正文:

1 知識點梳理

1.1 信息安全

信息安全金三角:機密性、完整性和可用性
傳統的靜態安全技術及方法:防火牆,加密、身份認證
檢測機制:是動態響應和增強防禦的依據,是強制落實安全策略的工具,經過不斷地檢測和檢測網絡和系統,發現新的威脅和弱點,並經過循環反饋來及時作出有效的響應。
檢測技術:入侵檢測和漏洞評估
響應措施主要包括:應急處理,備份恢復,災難恢復html

2 實驗內容

2.1 防火牆技術

防火牆:置於不一樣的網絡安全領域之間,對網絡流量或訪問行爲實施訪問控制的安全組件或設備,在技術範疇上,防火牆屬於一種網絡上的訪問控制機制,經過在不一樣的網絡安全域之間創建起安全控制點,對經過的網絡傳輸數據進行檢查,根據具體的安全需求和策略設置決定是否容許網絡訪問經過防火牆,達到保護特定網絡安全免受非法訪問和破壞的安全目標。
根據網絡協議棧層次,防火牆技術能夠分爲包過濾(網絡層)電路級網關(傳輸層)應用層代理技術(應用層)
基本功能:控制在計算機網絡中不一樣信任程度網絡域之間實施網絡安全訪問控制。linux

防火牆提供的安全功能vim

  • 1)檢查控制進出網絡的網絡流量;
  • 2)防止脆弱或不安全的協議和服務;
  • 3)防止內部網絡信息的外泄;
  • 4)對網絡存取和訪問進行監控審計;
  • 5)防火牆能夠強化安全策略並集成其餘安全防護機制。

防火牆的不足安全

  • 1)來自網絡內部的安全威脅;
  • 2)經過非法外聯的網絡攻擊;
  • 3)計算機病毒傳播。

技術瓶頸問題服務器

  • 1)針對開放服務安全漏銅的滲透攻擊;
  • 2)針對網絡客戶端程序的滲透攻擊;
  • 3)基於隱蔽通道進行通行的特洛伊木馬或僵屍網絡。

2.2 防火牆部署方法:

包過濾路由器:將帶有包過濾防火牆功能的路由器做爲內部網絡和外部網絡之間惟一的鏈接點,路由器在完成其數據包路由轉發基本功能的同時,將依據網絡管理員配置的訪問控制列表,對數據包進行過濾。網絡

  • 優點:成本低、易於使用等。
  • 缺點:如配置不當的路由器可能受到攻擊,而一旦包過濾路由器被滲透攻陷,那麼內部網絡上全部系統都會徹底暴露在攻擊者面前、能夠針對包過濾路由器容許開放的主機和服務進行攻擊等。

雙宿主堡壘主機:與包過濾路由器很是類似,不一樣的是使用應用代理網關做爲雙素質堡壘主機,代替包過濾路由器。壘主機具備兩個網絡接口,一個使用公網IP地址鏈接外部網絡,另外一個使用私有IP地址鏈接內部網絡,兩個網絡接口之間並不具有路由轉發功能,而僅僅由應用代理服務器程序爲特定的網絡應用提供代理。app

  • 優點:雙宿主堡壘主機模式對外屏蔽了內部網絡的信息,並可經過應用代理服務器中實現的訪問控制機制提供用戶級的身份認證和行爲審計,此外還可經過對數據內容的嚴格檢查提供了強大的安全特性。
  • 不足:一方面對內部網絡對外的網絡訪問控制過於嚴格,只能容許訪問應用代理所支持的一些網絡應用協議,通常只能用於安全要求很高的企業用戶單位:另外一方面雙宿主堡壘主機一般會運行在一個通用操做系統平臺上,其自身安全維護變得相對複雜,一旦這個堡壘主機被攻擊者攻破,內部網絡也將全面地暴露在攻擊者面前。

屏蔽主機:包過濾防火牆和應用代理技術的集成部署,採用了屏蔽路由和堡壘主機雙重安全設施,全部進出內部網絡的數據都要通過包過濾防火牆和堡壘主機,由包過濾防火牆進行網絡層的訪問控制,由堡壘主機進行應用安全控制,保證了網絡層和應用層的雙重安全。框架

  • 優點:這是一種很可靠的設計,網絡攻擊者必須穿透防火牆和堡壘主機纔可以到達內部網絡。除了爲內部網絡提供互聯網接入以外,若是還想向互聯網提供一些外部服務,如Web服務等,也能夠在包過濾防火牆以後,在與應用代理服務器同一的網段內放置這些服務器
  • 不足:但若是對外開放的服務器被攻破,內部網絡也將暴露給攻擊者。

屏蔽子網:是在屏蔽主機模式的基礎上進行改進的防火牆部署模式。它與屏蔽主機模式的區別在於在應用代理及對外服務器所構成網段和內部主.機之間安裝了第二個包過濾防火牆,應用代理及對外服務器所處的網段也被稱爲DMZ(非軍事區)。在這種部署模式中,內部的包過濾防火牆可以在應用代理和對外服務器被攻破以後提供對內部網絡的進一步安全防禦能力。
tcp


2.3 Linux開源防火牆:netfilter/iptables

netfilter:是Linux內核中實現的防火牆功能模塊,實現了靜態包過濾和狀態報文檢查(動態包過濾),也支持靈活可擴展的框架,支持NAT網絡地址轉換等其餘額外功能,此外也支持一個靈活可擴展的框架
iptables是應用態的防火牆管理工具框架,支持NAT網絡地址轉換等其餘額外功能,並提供了多層API接口以支持第三方擴展。分佈式

三個最基本的規則表:包過濾處理的filter表、用於網絡地址轉換處理的nat表、以及用於特殊目的數據包修改的mangle表

netfilter/itables的缺省規則表/鏈

fileter表
INPUT發往本地的數據包進行過濾處理;
OUTPUT本地發出的數據包進行過濾處理;
FORWARD通過主機進行路由轉發的數據包進行過濾處理;
nat 表
PREROUTING對未經路由選擇的數據包轉換其目標IP地址和端口
POSTROUTING對已通過路由選擇的數據包進行源IP地址和端口轉換
OUTPUT規則鏈針對本地數據包進行目標IP地址和端口轉換;
mangle 表
針對數據包頭部信息進行特殊地修改,如設置TOS值,標記數據包,用於策略路由、網絡流量整形等一些目的。

五種規則鏈

  • PREROUTING規則鏈的規則檢查點爲NF_ IP PRE _ROUTING,可以對全部進入主機的數據包進行檢查,一般用於源地址NAT轉換處理;
  • INPUT規則鏈的檢查點在NF_ IP_ LOCAL_ IN, 對發往本地網絡協議棧、由本地進程處理的數據包進行檢查,一般用於過濾本地網絡服務的鏈接;
  • FORWARD規則鏈的檢查點在NF_ IP_ FORWARD,對經由本地進行路由轉發的數據包進行檢查,在本機做爲路由器使用時,對經過的網絡鏈接進行過濾,這個Hook點也是實現防火牆包過濾最主要的位置:
  • POSTROUTING規則鏈的檢查點在NF_ IP POST _ROUTING,對本地協議棧發出和經由路由轉發的數據包進行檢查和處理,一般用於目的地址NAT轉換;
  • OUTPUT鏈的檢查點在NF_JIP_LOCAL_OUT,特別針對由本地進程經過本地TCP/IP協議棧發出的數據包進行檢查。能夠配置本地對外訪問的限制措施以及目的網絡地址轉換處理。

主要語法iptables [-t table] command [match] [target]
其中-t是配置規則所在的表,缺省表包括filternatmanglerawcommand部分是告訴iptables要作什麼。
command:
-A或--append:命令將一條規則附加到鏈的末尾。
-D或--delete:指定匹配的規則或者指定規則在鏈中的位置編號,該命令從鏈中刪除該規則。
-P或--policy:設置鏈的缺省目標操做,全部與鏈中任何規則都不匹配的信息包都將被強制使用此鏈的策略。
-N或--new-chain:用命令中所指的名稱建立一個新鏈。
-F或--flush:若是指定鏈名,該命令刪除鏈中全部的規則,若是爲指定鏈名,該命令刪除全部鏈中全部的規則,此參數用於快速清除。
-或--list:列出指定鏈中全部的規則。
target
ACCEPT:當信息包與具備ACCEPT目標操做的規則徹底匹配時,會被接受(容許它前往目的地),而且它將中止遍歷規則鏈。該目標操做被指定爲-j ACCEPT
DROP:當信息包與具備DROP目標操做的規則徹底匹配時,會阻塞該信息包,而且不對它作進一步處理。 該目標操做被指定爲-j DROP
REJECT: 該目標操做的工做方式與DROP目標操做相似,但與DROP不一樣的是,REJECT不會在服務器和客戶機上留下死套接字。另外,REJECT 將錯誤消息發回給數據包的發送方。該目標操做被指定爲j REJECT
RETURN:在規則中設置的RETURN目標操做讓與該規則匹配的信息包中止遍歷包含該規則的鏈。若是鏈是如INPUT之類的主鏈,則使用該鏈的缺省策略處理信息包。它被指定爲-jump RETURN

入侵檢測技術

  • 基於主機的入侵檢測系統(HIDS):通常用來監視主機信息,其數據源一般包括操做系統審計記錄,系統調用序列、應用程序審計信息等。
  • 基於網絡的入侵檢測系統(NIDS):以其監聽到的網絡數據包做爲分析數據源。
  • 分佈式入侵檢測系統(DIDS):融合了二者做爲其組成部分,並經過集中式、層次分佈式或徹底分佈式的融合分析提升檢測系統的覆蓋面和有效性。

動手實踐:防火牆配置

實踐任務:配置Linux操做系統平臺上的iptables,或者Windows操做系統平臺上的我的防火牆,完成以下功能,並進行測試: .
1.過濾ICMP數據包,使得主機不接收Ping包:
先對目標機進行ping鏈接:

而後執行iptables -A INPUT -p icmp -j DROP命令,在INPUT鏈中添加將因此有ping鏈接產生的icmp數據包丟失的規則,此時再ping目標機則ping鏈接失敗:


除去剛纔的過濾規則:

再次嘗試ping鏈接則恢復:

2.只容許特定IP地址(如局域網中的Linux攻擊機192.168.200.7),訪問主機的某一網絡服務(如FTP、HTTP、SMB),而其餘的IP地址(如Windows攻擊機192.168.200.5)沒法訪問
telnet中運用了三次握手協議創建TCP鏈接,四次握手協議取消TCP鏈接:
經過telnet命令對目標機192.168.200.5進行鏈接,源ip地址爲192.168.200.7以及192.168.200.10:


而後用iptables -A INPUT -p icmp -j DROP將知足規則的數據報丟棄,此時telnet鏈接失敗:



而後用指令iptables -A INPUT -p tcp -s 192.168.200.7 -j ACCEPT開啓對源IP192.168.200.7對目標機的tcp服務,能夠用iptables -L查看規則

192.168.200.7能夠telnet目標IP,而192.168.200.10鏈接失敗:

動手實踐:snort

任務:使用Snort對給定pcap文件(第4章中的解碼網絡掃描任一個pcap文件)進行入侵檢測,並對檢測出的攻擊進行說明。在BT4 Linux攻擊機或Windows Attacker攻擊機上使用Snort,對給定的pcap文件進行入侵檢測,得到報警日誌。
Snort運行命令提示以下。
從離線的pcap文件讀取網絡日誌數據源
在snort.conf中配置明文輸出報警日誌文件
指定報警日誌log目錄(或缺省log目錄=/var/log/snort)
執行以下命令,-K ascii主要是爲了指定輸出log文件的編碼爲ASCII(默認爲binary):

大部分爲TCP包,少部分爲ARP包:


報警數據包有10條,均被日誌記錄,全部數據包都裁決容許:

數據流統計:

在缺省log目錄/var/log/snort中能夠用vim讀取生成的alert文件,記錄了報警數據10條的入侵檢測信息:

3.實踐做業

分析虛擬網絡攻防環境中蜜罐網網關的防火牆和IDS/IPS配置規則,並撰寫分析報告,說明蜜罐網網關是如何利用防火牆和入侵檢測技術完成其攻擊數據捕獲和控制需求的。
具體分析配置規則與啓動項文件包括:
防火牆(netfilter+IPTables):/etc/init.d/rc.firewall
入侵檢測系統(Snort):/etc/init.d/hflow-snort與/etc/snort/snort.conf(未找到第一個文件)
入侵防護系統(Snort_inline):/etc/init.d/hflow-snort_inline與/etc/snort_inline/snort_inline.conf(第一個文件爲hw-snort_inline)

分析內容:

1.上述腳本是如何實現蜜網網關的數據捕獲和數據控制機制?
snort主要經過對整個網絡數據包進行預警提示,多側重於數據捕獲,固然查詢防火牆和snort_inline日誌也能夠得到必定的數據捕獲信息。
iptables中有用 modprobe ipt_LOG,iptables -N FenceLogDrop等存儲數據捕獲的日誌,snort文件好像並未找到相關代碼,不過snort_inlin能夠用snort -c [snort.conf絕對路徑} -l [log路徑] -K ascii來實現輸出log文件。

iptables防火牆主要負責對數據accept,reject,drop等規則的制定和執行,多用於數據控制。
分析相關腳本的關鍵代碼,防火牆文件rc.firewallcreate_chains()用於建立鏈,該函數分別建立了黑名單和白名單,防禦名單以及防禦日誌刪除,-N的意思表示根據用戶指定的名字建立新鏈,其中黑名單就是阻止某些網絡地址和用戶進入主機,白名單就是用戶設置的認爲能夠添加信任的網絡用戶以及網絡地址,防禦名單是IPS的文件列表,防禦日誌刪除是一個表,用於記錄/刪除從圍欄反彈的數據包。

create_chains() {
   if [ -n "${HwFWBLACK}" ] && [ -e ${HwFWBLACK} ] &&
      [ "${HwBWLIST_ENABLE}" == "yes" ]; then
      # 黑名單
      iptables -N BlackList
   fi
   if [ -n "${HwFWWHITE}" ] && [ -e ${HwFWWHITE} ] &&
      [ "${HwBWLIST_ENABLE}" == "yes" ]; then
      # 白名單
      iptables -N WhiteList
   fi
   if [ -n "${HwFWFENCE}" ] && [ -e ${HwFWFENCE} ] &&
      [ "${HwFENCELIST_ENABLE}" == "yes" ]; then
      # 防禦名單
      iptables -N FenceList
      # 防禦日誌刪除
      iptables -N FenceLogDrop
   fi
   if [ -n $HwTCPRATE ] && [ $HwTCPRATE -gt 0 ]; then
      # 建立TCP處理鏈
      iptables -N tcpHandler
   fi
   if [ -n $HwUDPRATE ] && [ $HwUDPRATE -gt 0 ]; then
      # 建立UDP處理鏈
      iptables -N udpHandler
   fi
   if [ -n $HwICMPRATE ] && [ $HwICMPRATE -gt 0 ]; then
      # 建立ICMP處理鏈
      iptables -N icmpHandler
   fi
   if [ -n $HwOTHERRATE ] && [ $HwOTHERRATE -gt 0 ]; then
      # 建立其餘協議處理鏈
      iptables -N otherHandler
   fi
}

網絡信息防護系統snort_inline主要對異常數據的進行控制,能夠和iptables進行聯動

2.獲取IPTables的實際規則列表、Snort和Snort_inline的實際執行參數?
獲取IPTables的實際規則列表
經過指令iptables -t filter -L來查看規則:

獲取Snort的實際執行參數:
snort --h或者查詢snort文件vim /etc/rc.d/init.d/snortd


獲取Snort_inline的實際執行參數:

-D表示Daemon模式,-c表示讀取config文件,-Q表示使用QUEUE模式,-l表示輸出log文件的目錄,-t表示改變程序執行時所參考的根目錄位置。
3.蜜網網關開機以後,防火牆、NIDS、NIPS是如何啓動的?

根據chkconfig --list | grep [服務]能夠查詢到開啓服務的狀況,其中1表示單用戶模式,2表示無網絡鏈接的多用戶命令行模式,3表示有網絡鏈接的多用戶命令行模式,4表示不可用,5表示帶圖形界面的多用戶模式,6表示從新啓動能夠看到iptables和snort_inline(NIPS)是隨系統開機而開啓的,而snort(NIPS)須要手動開啓:
4.Bonus:蜜網網關中的Snort規則是如何自動升級的?
能夠從vim /etc/honeywall.conf來看snort的rule是否自動更新,默認爲不更新:

4.學習中遇到的問題及解決


  • 問題2:iptables基本操做
    問題2解決方案:查詢網上的教程1以及教程2

  • 問題3:登陸seed虛擬機文件查詢不方便
    問題3解決方案:改用了MobaXterm登陸本地IP和帳號,界面交互性更佳。

5.學習感悟和思考

本次學習內容主要爲網絡安全防範技術,感受iptables以及snort兩種工具的命令仍是掌握的不夠,只是在實驗過程當中運用了某幾個經常使用的命令參數,分析腳本源碼仍是主要藉助英文註釋以及網上的資料,有待增強。

參考資料

相關文章
相關標籤/搜索