天天看點

Cisco環境下解決ARP欺騙問題

因為經常看到網上有看到求助ARP病毒防範辦法,其實ARP欺騙原理簡單,利用的是ARP協定的一個“缺陷”,免費ARP來達到欺騙主機上面的網關的ARP表項。

  其實免費ARP當時設計出來是為了2個作用的:

  1,IP位址沖突檢測

  2,ARP條目自動更新,更新網關。

  ARP欺騙就是利用這裡面的第二條,攻擊的主機發送一個ARP更新,條目的ip位址是網關,但是M <script language="javascript" src="/CMS/JS/newsad.js"></script> AC位址一項,卻不是網關,當其他主機接受到,會根據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的屏蔽作用,確定用戶端從合法的DHCP 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位址,造成位址沖突的問題。

繼續閱讀