網絡與安全2 在思科交換機上防範典型的欺騙和二層***

摘要:本文所提到的***和欺騙行爲主要針對鏈路層和網絡層。在網絡實際環境中,其來源可概括爲兩個途徑:

1.人爲實施

2.病毒或蠕蟲

人爲實施通常是指使用一些***的工具對網絡進行掃描和嗅探,獲取管理帳戶和相關密碼,在網絡上中安插***,從而進行進一步竊取機密文件。***和欺騙過程往往比較隱蔽和安靜,但對於信息安全要求高的企業危害是極大的。而來自***或者病毒及蠕蟲的***和往往會偏離***和欺騙本身的目的,現象有時非常直接,會帶來網絡流量加大、設備 CPU 利用率過高、二層生成樹環路直至網絡癱瘓。
目前這類***和欺騙工具已經非常成熟和易用,而目前企業在部署這方面的防範還存在很多不足,有很多工作要做。思科針對這類***已有較爲成熟的解決方案,主要基於下面的幾個關鍵的技術:

clip_image001

下面部分主要針對目前非常典型的二層***和欺騙說明如何在思科交換機上組合運用和部署上述技術,從而實現防止在交換環境中實施“中間人”***、 MAC/CAM ***、 DHCP ***、地址欺騙等,更具意義的是通過上面技術的部署可以簡化地址管理,直接跟蹤用戶 IP 和對應的交換機端口;防止 IP 地址衝突。同時對於大多數對二層網絡造成很大危害的具有地址掃描、欺騙等特徵的病毒可以有效的報警和隔離。
1 MAC/CAM***的防範
1.1 MAC/CAM
***的原理和危害
交換機主動學習客戶端的 MAC 地址,並建立和維護端口和 MAC 地址的對應表以此建立交換路徑,這個表就是通常我們所說的 CAM 表。 CAM 表的大小是固定的,不同的交換機的 CAM 表大小不同。 MAC/CAM ***是指利用工具產生欺騙 MAC ,快速填滿 CAM 表,交換機 CAM 表被填滿後,交換機以廣播方式處理通過交換機的報文,這時***者可以利用各種嗅探***獲取網絡信息。 CAM 表滿了後,流量以洪泛方式發送到所有接口,也就代表 TRUNK 接口上的流量也會發給所有接口和鄰接交換機,會造成交換機負載過大,網絡緩慢和丟包甚至癱瘓。
1.2典型的病毒利用MAC/CAM***案例
曾經對網絡照成非常大威脅的 SQL 蠕蟲病毒就利用組播目標地址,構造假目標 MAC 來填滿交換機 CAM 表。其特徵如下圖所示:

 

1.3使用 Port Security feature 防範MAC/CAM***
思科 Port Security feature 可以防止 MAC 和 MAC/CAM ***。通過配置 Port Security 可以控制:
*端口上最大可以通過的 MAC 地址數量 
* 端口上學習或通過哪些 MAC 地址 
* 對於超過規定數量的 MAC 處理進行違背處理
端口上學習或通過哪些 MAC 地址,可以通過靜態手工定義,也可以在交換機自動學習。交換機動態學習端口 MAC ,直到到達指定的 MAC 地址數量,交換機關機後重新學習。目前較新的技術是 Sticky Port Security ,交換機將學到的 mac 地址寫到端口配置中,交換機重啓後配置仍然存在。
對於當超過規定數量的 MAC 時,進行的處理一般有三種方式(針對交換機型號會有所不同): 
* Shutdown 。這種方式保護能力最強,但是對於一些情況可能會爲管理帶來麻煩,如某臺設備中了病毒,病毒間斷性僞造源 MAC 在網絡中發送報文。 
* Protect 。丟棄非法流量,不報警。 
* Restrict 。丟棄非法流量,報警,對比上面的兩種方式,該方式會令 交換機 CPU 利用率上升但是不影響交換機的正常使用。推薦使用這種方式。
1.4配置
port-security 配置選項:

clip_image003

配置 port-security 最大 mac 數目,違背處理方式,恢復方法

Cat4507(config)#int fastEthernet 3/48
Cat4507 (config-if)#switchport port-security
Cat4507 (config-if)#switchport port-security maximum 2
Cat4507 (config-if)#switchport port-security violation restrict
Cat4507 (config)#errdisable recovery cause psecure-violation
Cat4507 (config)#errdisable recovery interval 30

通過配置 sticky port-security學得的MAC :

interface FastEthernet3/29
switchport mode access
switchport port-security
switchport port-security maximum 5
switchport port-security mac-address sticky
switchport port-security mac-address sticky 000b.db1d.6ccd
switchport port-security mac-address sticky 000b.db1d.6cce
switchport port-security mac-address sticky 000d.6078.2d95
switchport port-security mac-address sticky 000e.848e.ea01

1.5使用 其它技術 防範MAC/CAM***
除了 Port Security 採用 DAI 技術也可以防範 MAC 地址欺騙。

本人在這裏作個引用:(爲了大家更明白具體的配置,我在下面對《Catalyst 2950 and Catalyst 2955 Switch Software Configuration Guide》作了部分的引用)

 

 

 

 

 

 

 

 

2 DHCP***的防範
2.1
採用DHCP管理的常見問題:
採用 DHCP server 可以自動爲用戶設置網絡 IP 地址、掩碼、網關、 DNS 、 WINS 等網絡參數,簡化了用戶網絡設置,提高了管理效率。但在 DHCP 管理使用上也存在着一些令網管人員比較頭痛的問題,常見的有:

*DHCP server 的冒充。 
* DHCP server 的 Dos ***。 
* 有些用戶隨便指定地址,造成網絡地址衝突。

由於 DHCP 的運作機制,通常服務器和客戶端沒有認證機制,如果網絡上存在多臺 DHCP 服務器將會給網絡照成混亂。由於用戶不小心配置了 DHCP 服務器引起的網絡混亂非常常見,足可見故意人爲破壞的簡單性。通常******是首先將正常的 DHCP 服務器所能分配的 IP 地址耗盡,然後冒充合法的 DHCP 服務器。最爲隱蔽和危險的方法是***利用冒充的 DHCP 服務器,爲用戶分配一個經過修改的 DNS server ,在用戶毫無察覺的情況下被引導在預先配置好的假金融網站或電子商務網站,騙取用戶帳戶和密碼,這種***是非常惡劣的。

對於 DHCP server 的 Dos ***可以利用前面講的 Port Security 和後面提到的 DAI 技術,對於有些用戶隨便指定地址,造成網絡地址衝突也可以利用後面提到的 DAI 和 IP Source Guard 技術。這部分着重介紹 DHCP 冒用的方法技術。

2.2 DHCP Snooping技術概況

DHCP Snooping技術是DHCP安全特性,通過建立和維護DHCP Snooping綁定表過濾不可信任的DHCP信息,這些信息是指來自不信任區域的DHCP信息。DHCP Snooping綁定表包含不信任區域的用戶MAC地址、IP地址、租用期、VLAN-ID 接口等信息,如下表所示:

cat4507#show ip dhcp snooping binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------------ --------------- ---------- ------- ---- -----------------
00:0D:60:2D:45:0D 10.149.3.13 600735 dhcp-snooping 100 GigabitEthernet1/0/7

這張表不僅解決了 DHCP用戶的IP和端口跟蹤定位問題,爲用戶管理提供方便,而且還供給動態ARP檢測DA)和IP Source Guard使用。

本人標註

DHCP Snooping綁定表可以理解爲

當一個 連接在 非信任端口 的客戶端獲得一個合法的DHCP Offer,交換機就會自動在DHCP監聽綁定表裏添加一個綁定條目,內容包括了該非信任端口的客戶端IP地址、MAC地址、端口號、VLAN編號、租期等信息。)

2.3基本防範
首先定義交換機上的信任端口和不信任端口,對於不信任端口的 DHCP 報文進行截獲和嗅探, DROP 掉來自這些端口的非正常 DHCP 報文,如下圖所示:

clip_image020

基本配置示例如下表:
Switch(config)#ip dhcp snooping //打開DHCP Snooping功能

Switch(config)#ip dhcp snooping vlan 10 //設置DHCP Snooping功能將作用於哪些VLAN

Switch(config)#ip dhcp snooping verify mac-adress

//檢測非信任端口收到的DHCP請求報文的源MAC和CHADDR字段是否相同,以防止DHCP耗竭***,該功能默認即爲開啓

Switch(config-if)#ip dhcp snooping trust

//配置接口爲DHCP監聽特性的信任接口,所有接口默認爲非信任接口

Switch(config-if)#ip dhcp snooping limit rate 15

//限制非信任端口的DHCP報文速率爲每秒15個包(默認即爲每秒15個包)如果不配該語句,則show ip dhcp snooping的結果裏將不列出沒有該語句的端口,可選速率範圍爲1-2048

建議:在配置了端口的DHCP報文限速之後,最好配置以下兩條命令

Switch(config)#errdisable recovery cause dhcp-rate-limit

//使由於DHCP報文限速原因而被禁用的端口能自動從err-disable狀態恢復

Switch(config)#errdisable recovery interval 30

//設置恢復時間;端口被置爲err-disable狀態後,經過30秒時間才能恢復

Switch(config)#ip dhcp snooping information option

//設置交換機是否爲非信任端口收到的DHCP報文插入Option 82,默認即爲開啓狀態

Switch(config)#ip dhcp snooping information option allow-untrusted

//設置匯聚交換機將接收從非信任端口收到的接入交換機發來的帶有選項82的DHCP報文

Switch#ip dhcp snooping binding 000f.1fc5.1008 vlan 10 192.168.10.131 interface fa0/2 expiry 692000 //特權模式命令;手工添加一條DHCP監聽綁定條目;expiry爲時間值,即爲監聽綁定表中的lease(租期)

Switch(config)#ip dhcp snooping database

flash:dhcp_snooping.db

//將DHCP監聽綁定表保存在flash中,文件名爲dhcp_snooping.db

Switch(config)#ip dhcp snooping database

tftp://192.168.2.5/Switch/dhcp_snooping.db

//將DHCP監聽綁定表保存到tftp服務器;192.168.2.5爲tftp服務器地址,必須事先確定可達。URL中的Switch是tftp服務器下一個文件夾;保存後的文件名爲dhcp_snooping.db,當更改保存位置後會立即執行“寫”操作。

Switch(config)#ip dhcp snooping database write-delay 30

//指DHCP監聽綁定表發生更新後,等待30秒,再寫入文件,默認爲300秒;可選範圍爲15-86400秒

Switch(config)#ip dhcp snooping database timeout 60

//指DHCP監聽綁定表嘗試寫入操作失敗後,重新嘗試寫入操作,直到60秒後停止嘗試。默認爲300秒;可選範圍爲0-86400秒

說明:實際上當DHCP監聽綁定表發生改變時會先等待write-delay的時間,然後執行寫入操作,如果寫入操作失敗(比如tftp服務器不可達),接着就等待timeout的時間,在此時間段內不斷重試。在timeout時間過後,停止寫入嘗試。但由於監聽綁定表已經發生了改變,因此重新開始等待write-delay時間執行寫入操作……不斷循環,直到寫入操作成功。

Switch#renew ip dhcp snooping database flash:dhcp_snooping.db

/特權級命令;立即從保存好的數據庫文件中讀取DHCP監聽綁定表。

需要注意的是 DHCP 綁定表要存在本地存貯器 (Bootfalsh 、 slot0 、 ftp 、 tftp) 或導出到指定 TFTP 服務器上,否則交換機重啓後 DHCP 綁定表丟失,對於已經申請到 IP 地址的設備在租用期內,不會再次發起 DHCP 請求,如果此時交換機己經配置了下面所講到的 DAI 和 IP Source Guard 技術,這些用戶將不能訪問網絡。

2.3高級防範
通過交換機的端口安全性設置每個 DHCP 請求指定端口上使用唯一的 MAC 地址,通常 DHCP 服務器通過 DHCP 請求的報文中的 CHADDR 段判斷客戶端 MAC 地址,通常這個地址和客戶端的MAC地址是相同的,但是如果***者不修改客戶端的 MAC 而修改 DHCP 報文中 CHADDR ,實施 Dos ***, Port Security 就不起作用了, DHCP 嗅探技術可以檢查 DHCP 請求報文中的 CHADDR 字段,判斷該字段是否和 DHCP 嗅探表相匹配。這項功能在有些交換機是缺省配置的,有些交換機需要配置,具體需要參考相關交換機的配置文檔。

(本人註解:這裏作一個更詳細的說明:

DHCP監聽(DHCP Snooping)是一種DHCP安全特性。Cisco交換機支持在每個VLAN基礎上啓用DHCP監聽特性。通過這種特性,交換機能夠攔截第二層VLAN域內的所有DHCP報文。

通過開啓DHCP監聽特性,交換機限制用戶端口(非信任端口)只能夠發送DHCP請求,丟棄來自用戶端口的所有其它DHCP報文,例如DHCP Offer報文等。而且,並非所有來自用戶端口的DHCP請求都被允許通過,交換機還會比較DHCP 請求報文的(報文頭裏的)源MAC地址和(報文內容裏的)DHCP客戶機的硬件地址(即CHADDR字段),只有這兩者相同的請求報文才會被轉發,否則將被丟棄。這樣就防止了DHCP耗竭***。信任端口可以接收所有的DHCP報文。通過只將交換機連接到合法DHCP服務器的端口設置爲信任端口,其他端口設置爲非信任端口,就可以防止用戶僞造DHCP服務器來***網絡。DHCP監聽特性還可以對端口的DHCP報文進行限速。通過在每個非信任端口下進行限速,將可以阻止合法DHCP請求報文的廣播***。DHCP監聽還有一個非常重要的作用就是建立一張DHCP監聽綁定表(DHCP Snooping Binding)。一旦一個連接在非信任端口的客戶端獲得一個合法的DHCP Offer,交換機就會自動在DHCP監聽綁定表裏添加一個綁定條目,內容包括了該非信任端口的客戶端IP地址、MAC地址、端口號、VLAN編號、租期等信息。

)

3 ARP欺騙/ MITM(Man-In-The-Middle)(中間人***)***原理和防範

3.1 MITM(Man-In-The-Middle) ***原理
按照 ARP 協議的設計,爲了減少網絡上過多的 ARP 數據通信,一個主機,即使收到的 ARP 應答並非自己請求得到的,它也會將其插入到自己的 ARP 緩存表中,這樣,就造成了“ ARP 欺騙”的可能。如果***想探聽同一網絡中兩臺主機之間的通信(即使是通過交換機相連),他會分別給這兩臺主機發送一個 ARP 應答包,讓兩臺主機都“誤”認爲對方的 MAC 地址是第三方的***所在的主機,這樣,雙方看似“直接”的通信連接,實際上都是通過***所在的主機間接進行的。***一方面得到了想要的通信內容,另一方面,只需要更改數據包中的一些信息,成功地做好轉發工作即可。在這種嗅探方式中,***所在主機是不需要設置網卡的混雜模式的,因爲通信雙方的數據包在物理上都是發送給***所在的中轉主機的。
這裏舉個例子,假定同一個局域網內,有 3 臺主機通過交換機相連:

A 主機: IP 地址爲 192.168.0.1 , MAC 地址爲 01:01:01:01:01:01 ;
B 主機: IP 地址爲 192.168.0.2 , MAC 地址爲 02:02:02:02:02:02 ;
C 主機: IP 地址爲 192.168.0.3 , MAC 地址爲 03:03:03:03:03:03 。

B 主機對 A 和 C 進行欺騙的前奏就是發送假的 ARP 應答包,如圖 所示

clip_image022

在收到 B主機發來的ARP應答後,A主機應知道:
到 192.168.0.3 的數據包應該發到 MAC 地址爲 020202020202 的主機; C 主機也知道:到 192.168.0.1 的數據包應該發到 MAC 地址爲 020202020202 的主機。這樣, A 和 C 都認爲對方的 MAC 地址是 020202020202 ,實際上這就是 B 主機所需得到的結果。當然,因爲 ARP 緩存表項是動態更新的,其中動態生成的映射有個生命期,一般是兩分鐘,如果再沒有新的信息更新, ARP 映射項會自動去除。所以, B 還有一個“任務”,那就是一直連續不斷地向 A 和 C 發送這種虛假的 ARP 響應包,讓其 ARP緩存中一直保持被毒害了的映射表項。

現在,如果 A 和 C 要進行通信,實際上彼此發送的數據包都會先到達 B 主機,這時,如果 B 不做進一步處理, A 和 C 之間的通信就無法正常建立, B 也就達不到“嗅探”通信內容的目的,因此, B 要對“錯誤”收到的數據包進行一番修改,然後轉發到正確的目的地,而修改的內容,無非是將目的 MAC 和源 MAC 地址進行替換。如此一來,在 A 和 C 看來,彼此發送的數據包都是直接到達對方的,但在 B 來看,自己擔當的就是“第三者”的角色。這種嗅探方法,也被稱作“ Man-In-The-Middle ”的方法。如圖 所示。

clip_image023

3.2***實例
目前利用 ARP原理編制的工具十分簡單易用,這些工具可以直接嗅探和分析FTP、POP3、SMB、SMTP、HTTP/HTTPS、SSH、MSN等超過30種應用的密碼和傳輸內容。 下面是測試時利用工具捕獲的 TELNET 過程,捕獲內容包含了 TELNET 密碼和全部所傳的內容 :

 

不僅僅是以上特定應用的數據,利用中間人***者可將監控到數據直接發給 SNIFFER等嗅探器,這樣就可以監控所有被欺騙用戶的數據。
還有些人利用 ARP原理 開發出網管工具,隨時切斷指定用戶的連接。這些工具流傳到搗亂者手裏極易使網絡變得不穩定,通常這些故障很難排查。

3.3防範方法
思科 Dynamic ARP Inspection (DAI)在交換機上提供IP地址和MAC地址的綁定, 並動態建立綁定關係。DAI 以 DHCP Snooping綁定表爲基礎,對於沒有使用DHCP的服務器個別機器可以採用靜態添加ARP access-list實現。DAI配置針對VLAN,對於同一VLAN內的接口可以開啓DAI也可以關閉。通過DAI可以控制某個端口的ARP請求報文數量。通過這些技術可以防範“中間人”***。

3.3配置示例
IOS 全局命令:

ip dhcp snooping vlan 100,200
no ip dhcp snooping information option
ip dhcp snooping
ip arp inspection vlan 100,200 /* 定義對哪些 VLAN 進行 ARP 報文檢測
ip arp inspection log-buffer entries 1024
ip arp inspection log-buffer logs 1024 interval 10

IOS 接口命令:

ip dhcp snooping trust
ip arp inspection trust /* 定義哪些接口是信任接口,通常是網絡設備接口, TRUNK 接口等
ip arp inspection limit rate 15 (pps) /* 定義接口每秒 ARP 報文數量

對於沒有使用 DHCP 設備可以採用下面辦法:

Switch(config)#arp access-list static-arp
Switch(config)#permit ip host 10.66.227.5 mac host 0009.6b88.d387
Switch(config-if)#ip arp inspection filter static-arp vlan 201

3.3配置DAI後的效果: 
* 在配置 DAI技術的接口上,用戶端不能採用指定地址地址將接入網絡。 
* 由於 DAI檢查 DHCP snooping綁定表中的IP和MAC對應關係,無法實施中間人***,***工具失效。下表爲實施中間人***是交換機的警告:

3w0d: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa5/16, vlan 1.
([000b.db1d.6ccd/192.168.1.200/0000.0000.0000/192.168.1.2])

由於對 ARP請求報文做了速度限制,客戶端無法進行人爲或者病毒進行的IP掃描、探測等行爲,如果發生這些行爲,交換機馬上報警或直接切斷掃描機器。如下表所示:

3w0d: %SW_DAI-4-PACKET_RATE_EXCEEDED: 16 packets received in 184 milliseconds on Fa5/30. ******報警
3w0d: %PM-4-ERR_DISABLE: arp-inspection error detected on Fa5/30, putting Fa5/ 30 in err-disable state

******切斷端口
I49-4500-1#show interface fa5/30
FastEthernet5/30 is down, line protocol is down (err-disabled)
Hardware is Fast Ethernet Port , address is 0002.b90e.3f4d (bia 0002.b90e.3f4d)
MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
reliability 255/255, txload 1/255, rxload 1/255
I49-4500-1#

用戶獲取 IP地址後,用戶不能修改IP或MAC,如果用戶同時修改IP和MAC必須是網絡內部合法的IP和MAC纔可,對於這種修改可以使用下面講到的 IP Source Guard技術來防範。下表爲手動指定IP的報警:
3w0d: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa5/30, vlan 1.([000d.6078.2d95/192.168.1.100/0000.0000.0000/192.168.1.100/01:52:28 UTC Fri Dec 29 2000 ])

4 IP/MAC欺騙的防範
4.
1 常見的欺騙***的種類和目的
常見的欺騙種類有 MAC欺騙、IP欺騙、IP/MAC欺騙,其目的一般爲僞造身份或者獲取針對IP/MAC的特權。目前較多的是***行爲:如Ping Of Death(“死亡之Ping”)、syn flood、ICMP unreacheable Storm,另外病毒和***的***也具有典型性,下面是******的一個例子。

4.2***實例
下圖***爲僞造源地址***,其目標地址爲公網上的 DNS服務器,直接目的是希望通過***,使DNS服務器對僞造源地址的響應和等待,造成DDOS***,並以此擴大***效果。該***每秒鐘上萬個報文,中檔交換機2分鐘就癱瘓,造成的間接後果非常大。

 

4.3 IP/MAC欺騙的防範
IP Source Guard 技術配置在交換機上僅支持在 2 層端口上的配置,通過下面機制可以防範 IP/MAC 欺騙:
*IP Source Guard 使用 DHCP snooping 綁定表信息。 
* 配置在交換機端口上,並對該端口生效。 
* 運作機制類似 DAI,但是 IP Source Guard不僅僅檢查ARP報文,所有經過IP Source Guard定義檢查的端口的報文都要檢測。 
* IP Source Guard檢查 接口 所通過的流量的IP地址和MAC地址是否在DHCP sooping綁定表,如果不在綁定表中則阻塞這些流量。注意如果需要檢查MAC需要DHCP服務器支持Option 82,同時使路由器支持Option 82信息。
通過在交換機上配置 IP Source Guard: 
* 可以過濾掉非法的 IP地址,包含用戶故意修改的和病毒、***等造成的。 
* 解決 IP地址衝突問題。 
* 提供了動態的建立 IP+MAC+PORT的對應表和綁定關係,對於不使用DHCP的服務器和一些特殊情況機器可以採用利用全局命令靜態手工添加對應關係到綁定表中。 
* 配置 IP Source Guard的接口初始阻塞所有非DHCP流量。 
* 不能防止“中間人***”。
對於 IP欺騙在路由器上也可以使用urpf技術。

本人註解對於IP Source Guard 技術的更詳細介紹如下:

IP Source Guard技術介紹
    IP源防護(IP Source Guard,簡稱IPSG)是一種基於IP/MAC的端口流量過濾技術,它可以防止局域網內的IP地址欺騙***。IPSG能夠確保第2層網絡中終端設備的IP地址不會被劫持,而且還能確保非授權設備不能通過自己指定IP地址的方式來訪問網絡或***網絡導致網絡崩潰及癱瘓。

交換機內部有一個IP源綁定表(IP Source Binding Table)作爲每個端口接受到的數據包的檢測標準,只有在兩種情況下,交換機會轉發數據:

所接收到的IP包滿足IP源綁定表中Port/IP/MAC的對應關係
所接收到的是DHCP數據包
其餘數據包將被交換機做丟棄處理。

    IP源綁定表可以由用戶在交換機上靜態添加,或者由交換機從DHCP監聽綁定表(DHCP Snooping Binding Table)自動學習獲得。 靜態配置是一種簡單而固定的方式,但靈活性很差,因此Cisco建議用戶最好結合DHCP Snooping技術使用IP Source Guard,由DHCP監聽綁定表生成IP源綁定表。

以DHCP Snooping技術爲前提講一下IP Source Guard技術的原理。 在這種環境下,連接在交換機上的所有PC都配置爲動態獲取IP地址,PC作爲DHCP客戶端通過廣播發送DHCP請求,DHCP服務器將含有IP地址信息的DHCP回覆通過單播的方式發送給DHCP客戶端,交換機從DHCP報文中提取關鍵信息(包括IP地址,MAC地址,vlan號,端口號,租期等),並把這些信息保存到 DHCP 監聽綁定表中。(以上這個過程是由DHCP Snooping完成的)

接下來的由IP Source Guard完成。交換機根據DHCP監聽綁定表的內容自動生成IP源綁定表,然後IOS根據IP源綁定表裏面的內容自動在接口加載基於端口的VLAN ACL(PVACL),由該ACL(可以稱之爲源IP地址過濾器)來過濾所有IP流量。客戶端發送的IP數據包中,只有其源IP地址滿足源IP綁定表纔會被髮送,對於具有源IP綁定表之外的其他源IP地址的流量,都將被過濾。

   PC沒有發送DHCP請求時,其連接的交換機端口默認拒絕除了DHCP請求之外的所有數據包,因此PC使用靜態IP是無法連接網絡的(除非已經存在綁定好的源IP綁定條目,如靜態源IP綁定條目或者是之前已經生成的動態IP綁定條目還沒過期,而且PC還必須插在正確的端口並設置正確的靜態IP地址)。

    IP源防護只支持第2層端口,其中包括接入(access)端口和幹道(trunk)接口。IP源防護的信任端口/非信任端口也就是DHCP監聽的信任端口/非信任端口。對於非信任端口存在以下兩種級別的IP流量安全過濾:

IP地址過濾:根據源IP地址對IP流量進行過濾,只有當源IP地址與IP源綁定條目匹配,IP流量才允許通過。當端口創建、 修改、 刪除新的IP源綁定條目的時候,IP源地址過濾器將發生變化。爲了能夠反映IP源綁定的變更,端口PACL將被重新修改並重新應用到端口上。 默認情況下,如果端口在沒有存在IP源綁定條目的情況下啓用了IP源防護功能,默認的PACL將拒絕端口的所有流量(實際上是除 DHCP報文以外的所有IP流量)。
IP和源MAC地址過濾:根據源IP地址和源MAC地址對IP流量進行過濾,只有當源IP地址和源MAC地址都與IP源綁定條目匹配,IP流量才允許通過。當以IP和MAC地址作爲過濾的時候,爲了確保DHCP協議能夠正常的工作,還必須啓用DHCP監聽選項82。 對於沒有選項82的數據,交換機不能確定用於轉發DHCP服務器響應的客戶端主機端口。相反地,DHCP服務器響應將被丟棄,客戶機也不能獲得IP地址。
注:交換機使用端口安全(Port Security)來過濾源MAC地址。

當交換機只使用“IP源地址過濾”時,IP源防護功能與端口安全功能是相互獨立的關係。 端口安全是否開啓對於IP源防護功能來說不是必須的。 如果同時開啓,則兩者也只是一種寬鬆的合作關係,IP源防護防止IP地址欺騙,端口安全防止MAC地址欺騙。而當交換機使用“源IP和源MAC地址過濾”時,IP源防護功能與端口安全功能是就變成了一種“集成”關係,更確切的說是端口安全功能被集成到 IP源防護功能裏,作爲IP源防護的一個必須的組成部分。

在這種模式下,端口安全的違規處理(violation)功能將被關閉。對於非法的二層報文,都將只是被簡單的丟棄,而不會再執行端口安全的違規處理了。IP源防護功能不能防止客戶端PC的ARP***。ARP***問題必須由DAI功能來解決。如果要支持IP源防護功能,必須是35系列及以上的交換機。2960目前不支持該功能。

三、IP Source Guard的配置(IPSG配置前必須先配置ip dhcp snooping

Switch(config-if)#ip verify source
Switch(config-if)#ip verify source vlan dhcp-snooping //接口級命令;在該接口下開啓IP源防護功能

說明:

    I、這兩條語句的作用是一樣的,不同的是:
    ip verify source是35系列交換機的命令
    ip verify source vlan dhcp-snooping是45/65系列交換機以及76系列路由器的命令

    II、這兩條命令後還有個參數port-security,即命令:

Switch (config-if)#ip verify source port-security
Switch (config-if)#ip verify source vlan dhcp-snooping port-security

不加port-security參數,表示IP源防護功能只執行“源IP地址過濾”模式
加上port-security參數以後,就表示IP源防護功能執行“源IP和源MAC地址過濾”模式

另外,在執行這兩條命令之前需要先執行switchport port-security命令。

    III、當執行“源IP和源MAC地址過濾”模式時,還可以通過以下命令限制非法MAC包的速度

Switch (config-if)#switchport port-security limit rate invalid-source-mac 50
//接口級命令;限制非法二層報文的速度爲每秒50個;可以用參數none表示不限制
//只在“源IP和源MAC地址過濾”模式下有效,並且只有45系列及以上才支持該命令;

    IV、 另外,在發生IP地址欺騙時,35/45系列交換機不會提供任何報錯信息,只是丟棄數據報文;而65系列交換機會發出IP地址違背的報錯信息。

添加一條靜態IP源綁定條目:

Switch (config)#ip source binding 000f.1fc5.1008 vlan 10 192.168.10.131 interface fa0/2
//全局命令;對應關係爲:vlan10 - 000f.1f05.1008 - 192.168.10.131 - fa0/2

四、顯示IP Source Guard的狀態

Switch#show ip source binding           //顯示當前的IP源綁定表
Switch#show ip verify source         //顯示當前的IP源地址過濾器的實際工作狀態

五、IP Source Guard實例
    1、單交換機環境(所有主機位於同一個VLAN

clip_image027

環境:

    DHCP服務器和PC客戶端都位於vlan 10
    DHCP服務器的MAC爲000B.DB47.36EF,需要靜態分配IP地址192.168.10.2,接在fa0/1
特殊應用服務器MAC爲0016.D49F.4866,需要靜態分配IP地址192.168.10.3,接在fa0/2
客戶端PC的MAC爲000F.1FC5.1008,通過DHCP動態獲得地址,接在fa0/3
交換機爲3560,Vlan 10的網關爲192.168.10.1
當前相關配置如下:

ip dhcp snooping vlan 10
ip dhcp snooping
!
interface FastEthernet0/1
description : Connect to Win2003 DHCP Server
switchport access vlan 10
switchport mode access
spanning-tree portfast
ip verify source
ip dhcp snooping trust
!
interface FastEthernet0/2
switchport access vlan 10
switchport mode access
spanning-tree portfast
ip verify source
ip dhcp snooping limit rate 15
!
interface FastEthernet0/3
switchport access vlan 10
switchport mode access
spanning-tree portfast
ip verify source
ip dhcp snooping limit rate 15
!
interface Vlan10
ip address 192.168.10.1 255.255.255.0

測試步驟:

    1、初始狀態:交換機當前已經配置好DHCP Snooping和端口的IP Source Guard(具體配置如上所示),但還沒有添加DHCP服務器和特殊應用服務器的靜態源IP綁定條目;並且DHCP服務器,特殊應用服務器和客戶端PC都還沒有連接到交換機,即交換機端口處於down狀態

顯示工作狀態:

Switch#show ip dhcp snooping binding
MacAddress         IpAddress       Lease(sec)    Type            VLAN    Interface
------------------     ---------------    ----------       -------------     ----        --------------------
Total number of bindings: 0
當前沒有任何DHCP監聽綁定條目

Switch#show ip source binding
MacAddress        IpAddress       Lease(sec)    Type             VLAN   Interface
------------------    ---------------    ----------       -------------     ----        --------------------
Total number of bindings: 0
當前也沒有任何IP源綁定條目
Switch#show ip verify source
Interface Filter-type   Filter-mode       IP-address        Mac-address      Vlan
---------   -----------      -----------           ---------------     -----------------    ----------
Fa0/1      ip                 inactive-trust-port
Fa0/2      ip                 inactive-no-snooping-vlan
Fa0/3      ip                 inactive-no-snooping-vlan

由於當前這三個端口都是down的,所以IP源地址過濾器顯示工作狀態爲非激活
注意當前“Filter-type”列裏的“ip”說明當前是“源IP地址過濾”模式;
如果顯示的是“ip-mac”則說明是“源IP和源MAC地址過濾”模式。

2、將DHCP服務器接上交換機的fa0/1口;特殊應用服務器接在fa0/2上;確定端口這兩端口爲up狀態

Switch#show ip dhcp snooping binding
MacAddress        IpAddress        Lease(sec)    Type            VLAN    Interface
------------------    ---------------    ----------        -------------     ----        --------------------
Total number of bindings: 0
由於兩臺服務器都是靜態指定IP地址,所以當前沒有任何DHCP監聽綁定條目

Switch#show ip source binding
MacAddress        IpAddress        Lease(sec)   Type            VLAN    Interface
------------------    ---------------    ----------        -------------     ----       --------------------
Total number of bindings: 0
//IP源綁定表沒有任何條目,因爲兩服務器的靜態IP源綁定條目還未添加
Switch#show ip verify source
Interface    Filter-type   Filter-mode     IP-address       Mac-address      Vlan
---------     -----------      -----------         ---------------    -----------------    ----------
Fa0/1        ip                 inactive-trust-port
Fa0/2        ip                 active              deny-all                                      10
Fa0/3        ip                 inactive-no-snooping-vlan

兩臺服務器接上以後,在IP源地址過濾器裏結果卻是不一樣的
    fa0/1還是爲非激活狀態,是由於該端口是DHCP監聽的信任端口
    fa0/2爲激活狀態,但卻是拒絕所有IP流量(雖然這麼顯示,不過DHCP請求是可以通過的)
說明IP源綁定對於DHCP監聽的信任端口和非信任端口的處理方式是不一樣的。

此時在交換機上ping DHCP服務器的IP地址:

Switch#ping 192.168.10.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

可以ping通

再ping特殊應用服務器的IP地址:

Switch#ping 192.168.10.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.3, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)

可以看到無法ping通

3、添加這兩臺服務器的靜態IP源綁定條目

ip source binding 000B.DB47.36EF vlan 10 192.168.10.2 interface fa0/1
ip source binding 0016.D49F.4866 vlan 10 192.168.10.3 interface fa0/2

Switch#show ip dhcp snooping binding
MacAddress             IpAddress        Lease(sec)      Type            VLAN      Interface
------------------         ---------------    ----------           -------------    ----         --------------------
Total number of bindings: 0
//由於兩臺服務器都是靜態指定IP地址,所以當前沒有任何DHCP監聽綁定條目

Switch#show ip source binding
MacAddress                IpAddress        Lease(sec)    Type            VLAN      Interface
------------------            ---------------     ----------       -------------      ----        --------------------
00:0B:DB:47:36:EF   192.168.10.2     infinite         static                10        FastEthernet0/1
00:16:D4:9F:48:66     192.168.10.3     infinite         static                10        FastEthernet0/2

可以看到手工添加的兩條靜態條目已經存在了,其租約爲infinite,類型爲靜態;另外,很明顯該條目不是從DHCP監聽綁定表中學習到的。

Switch#show ip verify source
Interface Filter-type   Filter-mode      IP-address       Mac-address       Vlan
---------   -----------       -----------          ---------------    -----------------    ----------
Fa0/1      ip                   inactive-trust-port
Fa0/2      ip                   active              192.168.10.3                               10
Fa0/3      ip                   inactive-no-snooping-vlan

此時 IP 源地址過濾器裏的 fa0/1 沒有任何變化,而 fa0/2 由於在 IP 源綁定表裏有了該條目,現已允許192.168.10.3這個地址通過了

再次ping特殊應用服務器的IP地址

再次ping特殊應用服務器的IP地址

Switch#ping 192.168.10.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

現在可以ping通了

小結,以上結果說明:

    IP源防護只針對非信任端口起作用,對信任端口不起作用。所以不需要爲接在信任端口上的主機添加靜態IP源綁定,其依然可以正常通信
    IP源綁定能阻止非信任端口上的客戶端以靜態指定IP地址的方式接入網絡。 這些客戶端將無法通信,除非爲其手工添加靜態IP源綁定條目。
4、將PC客戶端設置爲動態獲得IP地址,接在fa0/3,確定端口處於up狀態

Switch#show ip dhcp snooping binding
MacAddress                IpAddress        Lease(sec)    Type                 VLAN     Interface
------------------            ---------------     ----------       -------------          ----        --------------------
00:0F:1F:C5:10:08     192.168.10.4     691867        dhcp-snooping    10         FastEthernet0/3
Total number of bindings: 1

客戶端PC通過DHCP方式獲得了一個地址192.168.10.4;DHCP監聽表裏產生了該客戶端的監聽條目

Switch#show ip source binding
MacAddress                IpAddress        Lease(sec)    Type                 VLAN      Interface
------------------            ---------------     ----------       -------------           ----        --------------------
00:0B:DB:47:36:EF    192.168.10.2     infinite        static                    10         FastEthernet0/1
00:16:D4:9F:48:66      192.168.10.3     infinite        static                    10         FastEthernet0/2
00:0F:1F:C5:10:08      192.168.10.4     691550       dhcp-snooping     10         FastEthernet0/3
//此時IP源綁定表根據DHCP監聽綁定表裏的條目自動生成了相應的條目

Switch#show ip verify source
Interface Filter-type    Filter-mode    IP-address       Mac-address     Vlan
---------   -----------       -----------         ---------------   -----------------   ----------
Fa0/1      ip                   inactive-trust-port
Fa0/2      ip                   active             192.168.10.3                             10
Fa0/3      ip                   active             192.168.10.4                             10

    IP源地址過濾器根據IP源綁定表裏的條目允許192.168.10.4這個IP地址的流量從fa0/3通過

說明:

如果PC客戶端此時更換了交換機端口,由於客戶端會再次發起DHCP請求,這將會引起交換機更新DHCP監聽條目。DHCP監聽條目的更新會導致IP源綁定條目的更新,所以IP源地址過濾器也將隨着更新,以適應PC客戶端的實際情況。
如果PC客戶端不更換端口,但要改成靜態IP地址,它只能改成與動態獲得的IP地址一樣的IP地址,這一舉動是可行的。但客戶端不再會發出DHCP請求來更新租約,因此隨着DHCP監聽條目超時後,還是會被阻止通信。
客戶端不更換端口,但更改爲與動態獲得的IP地址不一樣的靜態IP地址,或者更改爲同樣的靜態IP但接在了不一樣的端口上,都將會立即被阻止通信。
最終配置:

ip dhcp snooping vlan 10
ip dhcp snooping
!
interface FastEthernet0/1
switchport access vlan 10
switchport mode access
spanning-tree portfast
ip dhcp snooping trust
!
interface FastEthernet0/2
switchport access vlan 10
switchport mode access
spanning-tree portfast
ip verify source
ip dhcp snooping limit rate 15
!
interface FastEthernet0/3
switchport access vlan 10
switchport mode access
spanning-tree portfast
ip verify source
ip dhcp snooping limit rate 15
!
interface Vlan10
ip address 192.168.10.1 255.255.255.0
!
ip source binding 0016.d49f.4866 vlan 10 192.168.10.3 interface fa0/2

2、單交換機環境(所有主機位於同一個VLAN

clip_image029

環境:

    PC1和PC2都位於vlan10;沒有DHCP服務器
    PC1的MAC爲000F.1FC5.1008,配置靜態IP地址192.168.10.1,接在fa0/1
    PC2的MAC爲0016.D49F.4866,配置靜態IP地址192.168.10.2,接在fa0/2

interface FastEthernet0/1
description : Connect to PC1
switchport access vlan 10
switchport mode access
spanning-tree portfast
ip verify source
!
interface FastEthernet0/2
description : Connect to PC2
switchport access vlan 10
switchport mode access
spanning-tree portfast
ip verify source
!
ip source binding 000f.1fc5.1008 vlan 10 192.168.10.1 interface fa0/1
ip source binding 0016.d49f.4866 vlan 10 192.168.10.2 interface fa0/2

說明:本例是一個純粹的靜態環境,通過手工添加IP源綁定條目實現PC1和PC2互通。可以看出靜態IP源綁定不需要交換機同時啓用DHCP Snooping功能

4.4配置示例:
一、檢測接口上的 IP+MAC
IOS 全局配置命令:

ip dhcp snooping vlan 12,200 (指定DHCP snooping防護vlan 12,200)
ip dhcp snooping information option
ip dhcp snooping

接口配置命令:

ip verify source vlan dhcp-snooping port-security (啓動IP Source Guard的端口同時檢查ip和mac)
switchport mode access
switchport port-security
switchport port-security limit rate 15 invalid-source-mac 000A.E439.6577

/* 控制端口上所能學習源 MAC 的速率,僅當 IP+MAC 同時檢測時纔有意義。
二、只檢測接口上的 IP :
IOS 全局配置命令

ip dhcp snooping vlan 12,200 (指定DHCP snooping防護vlan 12,200)  
no ip dhcp snooping information option
ip dhcp snooping

接口配置命令:

ip verify source vlan dhcp-snooping (這裏沒有port-security參數,所以不檢查MAC)

三、不使用 DHCP 的靜態配置
IOS 全局配置命令:

ip dhcp snooping vlan 12,200
ip dhcp snooping information option
ip dhcp snooping
ip source binding 0009.6b88.d387 vlan 212 10.66.227.5 interface Gi4/5

5 IP地址管理和病毒防範的新思路
5.1 IP地址管理
綜上所述通過配置思科交換機的上述特徵,不僅解決了一些典型***和病毒的防範問題,也爲傳統 IP地址管理提供了新的思路。
通過上面的幾項技術解決了傳統的利用DHCP服務器管理客戶端IP地址的問題: 
* 故意不使用手工指定靜態 IP地址和DHCP分配地址衝突 
* 配置 DHCP server 
* 使用靜態指定 IP遇到的問題 
* 不使用分配的 IP地址和服務器或其他地址衝突 
* 不容易定位 IP地址和具體交換機端口對應表
使用靜態地址的重要服務器和計算機,可以進行靜態綁定 IP+MAC、IP+MAC+PORT,手工配置DAI和 IP Source Guard綁定表項, 來保護這些設備,同時也防止來自這些設備的***。
目前對於網絡病毒的不斷爆發,越來越多的用戶開始重視對 PC的管理,用戶關注誰能訪問網絡、訪問以後能做什麼、做了哪些事情、這就是我們常說的AAA認證,除了這些用戶希望能夠很快定位到用戶在哪臺交換機、哪個端口、以哪個IP和MAC登陸,這樣有有了”AAA+A”( Authenticate, Authorize,Account , Address )的概念。
通過上面的配置我們在網絡層面已經可以定位用戶了,加上 802.1X認證我們可以在網絡層面根據用戶的身份爲用戶授權,從而實現”AAA+A”。

 

更進一步要審計用戶所使用電腦具備的條件,如系統補丁、所裝殺毒軟件及補丁、等條件可以考慮採用思科網絡准入控制 NAC。
5.2使用DHCP Snooping DAIIP Source Guard技術能解決的有關病毒問題
由於大多數對局域網危害較大的網絡病毒都具有典型的欺騙和掃描,快速發包,大量 ARP 請求等特徵,採用上述技術一定程度上可以自動切斷病毒源,及時告警,準確定位病毒源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章