Cisco環境下解決ARP欺騙問題
本文主要給大家詳細的介紹了CISCO環境下,如何解決ARP欺騙的問題,那么我們該如何解決呢?下面的文章給出了詳細的解答。
因為經常看到網上有看到求助ARP病毒防范辦法,其實ARP欺騙原理簡單,利用的是ARP協議的一個“缺陷”,免費ARP來達到欺騙主機上面的網關的ARP表項。
其實免費ARP當時設計出來是為了2個作用的:
1,IP地址沖突檢測
2,ARP條目自動更新,更新網關。
ARP欺騙就是利用這里面的第二條,攻擊的主機發送一個ARP更新,條目的ip地址是網關,但是MAC地址一項,卻不是網關,當其他主機接受到,會根據ARP協議的規則,越新的越可靠的原則,達到欺騙的目的。
雖然ARP不是tcp/ip協議簇中的一員,但是鑒于以太網的大行其道,所以放棄動態ARP協議,使用手動方式的來來做ARP映射,好像不大現實(個別情況除外)。
一、深入ARP協議特征
我在這里介紹Cisco網絡環境下解決這個問題的思路:
其實這里面使用到了2個技術:DHCP snooping和ARP inspection
1、DHCP snooping
DHCP Snooping技術是DHCP安全特性,通過建立和維護DHCP Snooping綁定表過濾不可信任的DHCP信息,這些信息是指來自不信任區域的DHCP信息。DHCP Snooping綁定表包含不信任區域的用戶MAC地址、IP地址、租用期、VLAN-ID 接口等信息。
當交換機開啟了DHCP-Snooping后,會對DHCP報文進行偵聽,并可以從接收到的DHCP Request或DHCP Ack報文中提取并記錄IP地址和MAC地址信息。另外,DHCP-Snooping允許將某個物理端口設置為信任端口或不信任端口。信任端口可以正常接收并轉發DHCP Offer報文,而不信任端口會將接收到的DHCP Offer報文丟棄。這樣,可以完成交換機對假冒DHCP Server的屏蔽作用,確??蛻舳藦暮戏ǖ腄HCP Server獲取IP地址。
作用:
1.DHCP-snooping的主要作用就是隔絕非法的DHCP server,通過配置非信任端口。
2.建立和維護一張DHCP-snooping的綁定表,這張表一是通過DHCP ack包中的ip和MAC地址生成的,二是可以手工指定。這張表是后續DAI(dynamic ARP inspect)和IP Source Guard 基礎。這兩種類似的技術,是通過這張表來判定ip或者MAC地址是否合法,來限制用戶連接到網絡的。
配置:
switch(config)#ip DHCP snooping
switch(config)#ip DHCP snooping vlan 10
switch(config-if)#ip DHCP snooping limit rate 10
/*DHCP包的轉發速率,超過就接口就shutdown,默認不限制
switch(config-if)#ip DHCP snooping trust
/*這樣這個端口就變成了信任端口,信任端口可以正常接收并轉發DHCP Offer報文,不記錄ip和MAC地址的綁定,默認是非信任端口
switch#ip DHCP snooping binding 0009.3452.3ea4 vlan 7 192.168.10.5 interface gi1/0/10
/*這樣可以靜態ip和MAC一個綁定
switch(config)#ip DHCP snooping database tftp:// 10.1.1.1/DHCP_table
/*因為掉電后,這張綁定表就消失了,所以要選擇一個保存的地方,ftp,tftp,flash皆可。本例中的DHCP_table是文件名,而不是文件夾,同時文件名要手工創建一個
2. ARP inspection
1.介紹
DAI是以DHCP-snooping的綁定表為基礎來檢查MAC地址和ip地址的合法性。
2.配置
switch(config)#ip DHCP snooping vlan 7
switch(config)#ip DHCP snooping information option
/*默認
switch(config)#ip DHCP snooping
switch(config)#ip ARP inspection vlan 7
/* 定義對哪些 VLAN 進行 ARP 報文檢測
switch(config)#ip ARP inspection validate src-MAC dst-MAC ip
/*對源,目MAC和ip地址進行檢查
switch(config-if)#ip DHCP snooping limit rate 10
switch(config-if)#ip ARP inspection limit rate 15
/* 定義接口每秒 ARP 報文數量
switch(config-if)#ip ARP inspection trust
/*信任的接口不檢查ARP報文,默認是檢測
二.注意點:交換機會錯認受DoS攻擊
對于前面DHCP-snooping的綁定表中關于端口部分,是不做檢測的;同時對于已存在于綁定表中的MAC和ip對于關系的主機,不管是DHCP獲得,還是靜態指定,只要符合這個表就可以了。如果表中沒有就阻塞相應流量。
在開始應用Dynamic ARP Inspection時,交換機會記錄大量的數據包,當端口通過的數據包過多時,交換機會認為遭受DoS攻擊,從而將端口自動errdisable,造成通信中斷。為了解決這個問題,我們需要加入命令errdisable recovery cause ARP-inspection
在Cisco網絡環境下,boot request在經過了啟用DHCP SNOOPING特性的設備上時,會在DHCP數據包中插入option 82的選項(具體見RFC3046)
這個時候,boot request中數據包中的gateway ip address:為全0,所以一旦DHCP relay 設備檢測到這樣的數據包,就會丟棄。
如果DHCP服務器使用了中繼服務,那需要在網關交換機上鍵入如下命令:
方法一:
inter vlan7
ip DHCP relay information trusted
方法二:
switch(config)# ip DHCP relay information trust-all
三.總結:防止非法的ARP請求
雖然DHCP snooping是用來防止非法的DHCP server接入的,但是它一個重要作用是一旦客戶端獲得一個合法的DHCP offer。啟用DHCP snooping設備會在相應的接口下面記錄所獲得IP地址和客戶端的MAC地址。這個是后面另外一個技術ARP inspection檢測的一個依據。ARP inspection是用來檢測ARP請求的,防止非法的ARP請求。
認為是否合法的標準的是前面DHCP snooping時建立的那張表。因為那種表是DHCP server正常回應時建立起來的,里面包括是正確的ARP信息。如果這個時候有ARP攻擊信息,利用ARP inspection技術就可以攔截到這個非法的ARP數據包。
其實利用這個方法,還可以防止用戶任意修改IP地址,造成地址沖突的問題。