1. 程式人生 > 其它 >20211921 李楚涵 第五次

20211921 李楚涵 第五次

基礎知識
** iptable**
iptables命令介紹
iptables:administration tool for IPv4/IPv6 packet filtering and NAT
  1)簡介:Linux的2.4版核心引入了一種全新的包處理引擎Netfilter,同時還有一個管理它的命令列工具iptables。iptables用於建立、維護和檢查Linux核心中IPv4包過濾規則的表。
  2)結構層次:iptables - 表table - 鏈chain(內建或自定義) - 規則(目標target子句等)。
  iptables對網路上的資料包有次序地施加規則“鏈”。鏈的集合就構成了表,用於處理特定型別的流量。
  預設的iptables表為filter(過濾器)。它包含3個預設鏈:FORWARD、INPUT和OUTPUT,核心處理的每個包都要經過3個鏈中的某一個。FORWARD鏈裡的規則用於在一個網路介面收到的、而且需要轉發到另一個網路介面的所有包。INPUT和OUTPUT鏈裡的規則分別用於目的是本地主機,或者從本地主機發出的流量。
  nat表包含的規則鏈控制著NAT(網路地址轉換)。另外,還有mangle、raw和security表,這裡不詳述。
  構成一條鏈的每條規則都有一個“target(目標)”子句,它決定了如何處理匹配的包。一旦某個包匹配了一條規則,那麼它的結局就確定了,不再用其他規則來檢查它。雖然iptables內部定義了許多target,但還是可以指定另一條鏈作為規則的target。在filter表中的規則可以使用的target子句有ACCEPT(包可以繼續通過)、DROP(默默地丟棄包)和REJECT(把包丟棄並返回一則ICMP錯誤訊息)等。
iptable命令引數詳解:
檢視狀態:iptables -L
iptables 引數選項:
-t<表>:指定要操縱的表;
-A:向規則鏈中新增條目;
-D:從規則鏈中刪除條目;
-i:向規則鏈中插入條目;
-R:替換規則鏈中的條目;
-L:顯示規則鏈中已有的條目;
-F:清楚規則鏈中已有的條目;
-Z:清空規則鏈中的資料包計算器和位元組計數器;
-N:建立新的使用者自定義規則鏈;
-P:定義規則鏈中的預設目標;
-h:顯示幫助資訊;
-p:指定要匹配的資料包協議型別;
-s:指定要匹配的資料包源ip地址;
-j<目標>:指定要跳轉的目標;
-i<網路介面>:指定資料包進入本機的網路介面;
-o<網路介面>:指定資料包要離開本機所使用的網路介面。
snort


簡介:Snort是一個強大的網路入侵檢測系統。它具有實時資料流量分析和記錄IP網路資料包的能力,能夠進行協議分析,對網路資料包內容進行搜尋/匹配,可以檢測各種不同的攻擊方式,對攻擊進行實時報警等。
四大模組:資料包嗅探模組、預處理模組(用相應的外掛來檢查原始資料包)、檢測模組(檢測引擎依據預先設定的規則檢查資料包)、報警/日誌模組(經檢測引擎檢查後的Snort資料輸出)。
三種工作模式:嗅探模式(從網路上讀取資料包,常用命令snort -dev)、資料包記錄模式(把資料包記錄到硬碟上,常用命令snort -b)、網路入侵檢測模式(載入規則庫才能工作,Snort並不記錄所有捕獲的包,而是將包與規則對比,僅當包與某個規則匹配的時候,才會記錄日誌或產生報警)。
一、防火牆配置

任務要求:配置Linux作業系統平臺上的iptables,或者Windows作業系統平臺上的個人防火牆,完成如下功能,並進行測試:
(1)過濾ICMP資料包,使得主機不接收Ping包;
(2)只允許特定IP地址(如區域網中的Linux攻擊機192.168.200.3),訪問主機的某一網路服務(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻擊機192. 168.200.4)無法訪問
*實驗環境
kali(A)(IP:192.168.200.4)、Unbuntu(B)(IP:192.168.200.3)、WinXPattacker(C)(IP:192.168.200.2)
1.用linux配置
在主機B上,首先使用命令iptables -V
,如果顯示出版本號表示已經安裝,如果沒有,執行apt-get install iptables
使用命令sudo iptables -L檢視當前防火牆配置資訊,對iptables的操作都必須有root許可權。


使用命令iptables -A INPUT -p icmp -j DROP新增規則,然後檢視當前防火牆配置資訊,新增成功。

在主機A上,使用命令ping 192.168.200.3,發現沒辦法ping通。

在主機B上,使用命令iptables -F刪除自定義規則,在主機A上,再次使用命令ping 192.168.200.3,發現ping通了。


接下來開始第二問。首先通過命令iptables -P INPUT DROP禁止所有的input資料包
接下來通過iptables -A INPUT -p tcp -s 192.168.200.4 -j ACCEPT允許tcp資料包連線




2.用windows配置
開啟Kali ping WinXP,測試可以ping通

開啟WinXP,點選開始--控制面板--Windows安全中心--Windows防火牆--還原為預設值(還原為預設值後ICMP的設定裡允許傳入回顯請求會被自動取消勾選)

開啟Kali ping WinXP,發現ping不通了

只允許特定IP地址(如區域網中的Linux攻擊機,訪問主機的某一網路服務(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻擊機192. 168.200.4)無法訪問。
首先確保kali和Ubuntu可以正常telnet WinXP,但是輸入之後發現不能正常telnet WinXP

為了使得kali可以正常telnet WinXP,在WinXP點選開始--執行開啟cmd,輸入services.msc,跳出服務介面,找到Telnet,發現目前狀態是已禁止,我們需要右鍵--屬性,修改啟動型別為自動或者手動

然後,再回到列表的Telnet,右鍵--啟動

在cmd輸入net start telnet,也顯示已啟動,表明啟動成功

開始--控制面板--Windows防火牆--高階--網路連線設定--勾選Telnet伺服器

再回到kali和Ubuntu就可以正常telnet WinXP


下面再WinXP設定IP安全策略來限制固定IP(kali的IP)訪問。
建立安全策略:控制面板--管理工具--本地安全策略--IP安全策略右鍵--建立IP安全策略,進入設定嚮導,設定IP安全策略名稱為“限制固定IP遠端訪問”,在警告提示框選擇“是”,其他均保持預設點選下一步

結果如下,建立了一個IP篩選器

新增阻止特定IP訪問的篩選器。
點選新增--進入安全規則嚮導--一直保持預設設定點選下一步--遇到警告點選“是”


點選新增--自定義IP篩選器名稱為“阻止特定IP遠端訪問”--新增--進入安全規則嚮導。點選下一步--源地址選擇“一個特定的IP地址(Kali:192.168.200.4)”--下一步--目標地址選擇“我的IP地址”--選擇協議型別“TCP”--下一步--設定IP協議埠“從任意埠”“到此埠(輸入23)”--下一步--完成。完成後,會在IP篩選列表看到新增的資訊。

配置IP篩選器阻止的動作:在點確定後--選擇配置的“阻止所有IP遠端訪問”,點選下一步

點選新增--選擇阻止--確定,得到下圖“限制固定IP遠端訪問”



新增允許特定IP訪問的篩選器(跟新增阻止特定IP訪問的篩選器步驟一樣)
繼續點選新增--點選新增--進入安全規則嚮導--一直保持預設設定點選下一步--遇到警告點選“是”
點選新增--自定義IP篩選器名稱為“允許特定IP遠端訪問”--新增--進入安全規則嚮導。點選下一步--源地址選擇“一個特定的IP地址(Ubuntu:192.168.200.3)”--下一步--目標地址選擇“我的IP地址”--選擇協議型別“TCP”--下一步--設定IP協議埠“從任意埠”“到此埠(輸入23)”--下一步--完成。完成後,會在IP篩選列表看到新增的資訊

配置IP篩選器允許的動作:在點確定後--選擇配置的“允許所有IP遠端訪問”

點選新增--選擇允許--確定,得到下圖“新篩選操作”,代表的是允許

然後選中“新篩選操作”,點選下一步--完成

應用我們剛剛配置的兩個IP安全規則(允許特定IP遠端訪問和阻止特定IP遠端訪問)
指派此安全規則:右鍵“限制固定IP遠端訪問”——選擇“指派”

這樣被阻止訪問WinXP的Kali去telnet靶機WinXP,發現一直處於trying狀態,而被允許訪問WinXP的Ubuntu去telnet靶機WinXP發現可以連通

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

執行命令vim /var/log/snort/snort.alert.fast開啟檔案,可以發現這個攻擊是nmap發起的,當然還有很多其他的資訊:源地址、目的地址等。可以從中找到SCAN nmap XMAS的關於nmap的報警資訊。

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

發現蜜罐系統識別的協議:TCP、UDP、ICMP、其他。在對資料控制時,要對各協議設定單位時間內傳送包的上限,對於超出傳送上限包的方式處理有三種:Drop、Reject和Replace。

獲取IPTables的實際規則列表、Snort和Snort_inline的實際執行引數。
使用命令iptables -t filter -L來檢視規則列表,-t是指定規則表,-L表示列表。(其實,我們可以省略-t filter,當沒有使用-t選項指定表時,預設為操作filter表,即iptables -L表示列出filter表中的所有規則)

防火牆、NIDS、NIPS啟動:執行命令chkconfig --list|grep [服務]。這裡我們通過查詢相關的服務,可以看到防火牆和NIDS是開機啟動的,並通過上述分析的相關指令碼的自動執行試試配置。

snort規則是如何自動升級的?
預設是不自動更新的,但其有自動更新的軟體Oinkmaster。使用vim /etc/honeywall.conf,開啟honeywall配置檔案,找到update variables,可以看到其值為no,即不自動更新。還可以看到Oinkmaster,這是個自動更新的軟體,利用Oinkmaster進行升級。

四、學習中遇到的問題及解決
問題1:在centos 中輸入【iptables -t filter -L】後顯示 command not found
問題1解決方案:在百度搜索問題,找到相關解決方案。https://blog.csdn.net/cateatapple/article/details/51849106?>
五、實踐總結
此次實驗好難,相關的步驟也很多。累爆……不過好在都解決了