怎么防止arp攻擊與綁定IP和MAC的關(guān)系
(2019-7-25)河南鄭州科技市場IT產(chǎn)品配送網(wǎng)-鄭州電腦手機(jī)測評中心 ISA Server中沒有提供對于MAC地址的控制功能,Why?這是因?yàn)镸AC地址只能在本地網(wǎng)絡(luò)中使用,當(dāng)數(shù)據(jù)包跨越路由器時,數(shù)據(jù)包中主機(jī)的源MAC地址就會被路由器的出站接口的MAC地址所代替,這個時候,使用MAC地址來進(jìn)行控制就不適用了。所以只要是企業(yè)級的硬件或者軟件防火墻,都基本沒有提供對MAC地址的控制功能。
作為企業(yè)級的路由防火墻,ISA Server并沒有提供對于MAC地址的控制功能。不過,你可以使用Windows的命令A(yù)RP來實(shí)現(xiàn)IP地址和MAC地址的綁定。這篇文章介紹了Windows下ARP協(xié)議工作的原理,以及如何使用ARP命令來靜態(tài)綁定IP地址和MAC地址。
不過微軟也早就考慮到了這點(diǎn),在Windows中,如果你安裝了TCP/IP網(wǎng)絡(luò)協(xié)議組件,那么你就可以執(zhí)行命令A(yù)RP。ARP命令的作用是查看本機(jī)的ARP緩存、靜態(tài)綁定IP地址和MAC地址和刪除靜態(tài)綁定項(xiàng)。其實(shí)綁定IP地址和MAC地址的本意是為了減少ARP廣播流量,只是可以利用這一功能來控制IP地址的使用。
在這里我還是先簡單的f描述一下Windows下ARP協(xié)議的工作原理。ARP協(xié)議(Address Resolve Protocol,地址解析協(xié)議)工作在TCP/IP協(xié)議的第二層-數(shù)據(jù)鏈路層,用于將IP地址轉(zhuǎn)換為網(wǎng)絡(luò)接口的硬件地址(媒體訪問控制地址,即MAC地址)。
無論是任何高層協(xié)議的通訊,最終都將轉(zhuǎn)換為數(shù)據(jù)鏈路層硬件地址的通訊。
每臺主機(jī)都具有一個用于緩存MAC地址的ARP緩存列表,你可以使用命令A(yù)RP -a或ARP -g來查看當(dāng)前的ARP緩存列表。此ARP緩存列表是動態(tài)更新的,默認(rèn)情況下,當(dāng)其中的緩存項(xiàng)超過兩分鐘沒有活動時,此緩存項(xiàng)就會超時被刪除。你可以使用ARP -s來靜態(tài)綁定IP地址和MAC地址,不過在Windows server 2003和XP以前的Windows系統(tǒng)中,就算你設(shè)置了靜態(tài)MAC地址綁定項(xiàng),同樣會通過接收其他主機(jī)的數(shù)據(jù)包而更新已經(jīng)綁定的項(xiàng)。
在Windows server 2003和XP中,靜態(tài)綁定的項(xiàng)不會被動態(tài)更新,直到TCP/IP協(xié)議終止為止,例如重啟計算機(jī)
。如果要創(chuàng)建永久的靜態(tài)MAC地址綁定項(xiàng),你可以寫一個腳本文件來執(zhí)行ARP靜態(tài)綁定,然后使用計劃任務(wù)在啟動計算機(jī)時執(zhí)行該腳本即可。
例如A主機(jī)的IP地址為192.168.0.1,它現(xiàn)在需要與IP為192.168.0.8的主機(jī)(主機(jī)B)進(jìn)行通訊,那么將進(jìn)行以下動作:
A主機(jī)查詢自己的ARP緩存列表, 如果發(fā)現(xiàn)具有對應(yīng)于目的IP地址192.168.0.8的MAC地址項(xiàng),則直接使用此MAC地址項(xiàng)構(gòu)造并發(fā)送以太網(wǎng)數(shù)據(jù)包,如果沒有發(fā)現(xiàn)對應(yīng)的MAC地址項(xiàng)則繼續(xù)下一步;
A主機(jī)發(fā)出ARP解析請求廣播,目的MAC地址是FF:FF:FF:FF:FF:FF,請求IP為192.168.0.8的主機(jī)回復(fù)MAC地址;
B主機(jī)收到ARP解析請求廣播后,回復(fù)給A主機(jī)一個ARP應(yīng)答數(shù)據(jù)包,其中包含自己的IP地址和MAC地址;
A接收到B主機(jī)的ARP回復(fù)后,將B主機(jī)的MAC地址放入自己的ARP緩存列表,然后使用B主機(jī)的MAC地址作為目的MAC地址,B主機(jī)的IP地址(192.168.0.8)作為目的IP地址, 構(gòu)造并發(fā)送以太網(wǎng)數(shù)據(jù)包; 電腦知識
如果A主機(jī)還要發(fā)送數(shù)據(jù)包給192.168.0.8, 由于在ARP緩存列表中已經(jīng)具有IP地址192.168.0.8的MAC地址,所以A主機(jī)直接使用此MAC地址發(fā)送數(shù)據(jù)包,而不再發(fā)送ARP解析請求廣播;當(dāng)此緩存地址項(xiàng)超過兩分鐘沒有活動(沒有使用)后,此ARP緩存將超時被刪除。
默認(rèn)情況下ARP緩存的超時時限是兩分鐘,你可以在注冊表中進(jìn)行修改。可以修改的鍵值有兩個,都位于
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
修改的鍵值:
鍵值1:ArpCacheLife,類型為Dword,單位為秒,默認(rèn)值為120
鍵值2:ArpCacheMinReferencedLife,類型為Dword,單位為秒,默認(rèn)值為600
注意:這些鍵值默認(rèn)是不存在的,如果你想修改,必須自行創(chuàng)建;
修改后重啟計算機(jī)后生效
如果ArpCacheLife的值比ArpCacheMinReferencedLife的值大,那么ARP緩存的超時時間設(shè)置為ArpCacheLife的值;如果ArpCacheLife的值不存在或者比ArpCacheMinReferencedLife的值小,那么對于未使用的ARP緩存,超時時間設(shè)置為120秒;對于正在使用的ARP緩存,超時時間則設(shè)置為ArpCacheMinReferencedLife的值。
我們的試驗(yàn)網(wǎng)絡(luò)結(jié)構(gòu),ISA Server作為一個邊緣防火墻,內(nèi)部局域網(wǎng)(192.168.0.0/24)通過ISA Server接入Internet。在這個試驗(yàn)中,我將在ISA Server上綁定內(nèi)部客戶True的IP地址192.168.0.8和MAC地址,這樣,當(dāng)True不在線時,另外一個內(nèi)部客戶Fake就算修改自己的IP地址為True的IP地址192.168.0.8,也不能通過ISA Server來上網(wǎng)。
各計算機(jī)的TCP/IP設(shè)置如下,本次試驗(yàn)不涉及DNS解析,各服務(wù)器的DNS服務(wù)器設(shè)置為空,在試驗(yàn)之前已經(jīng)確認(rèn)了網(wǎng)絡(luò)連接工作正常:
ISA 2004 Firewall:
LAN Interface:
IP:192.168.0.1/24
DG:None
MAC:00:03:47:F4:FC:E7
True(將離線):
IP:192.168.0.8/24
DG:192.168.0.1
MAC:00:0D:60:C3:05:34
Fake(將修改IP地址為192.168.0.8):
IP:192.168.0.8/24
DG:192.168.0.1
MAC:00:06:D0:06:05:47
首先,我在ISA Server上使用ARP -S來綁定True的IP地址和MAC地址,運(yùn)行命令:
ARP -s 192.168.0.8 00-0D-60-C3-05-34
然后執(zhí)行ARP -a來查看ARP緩存列表,結(jié)果如下圖所示。你可以看到在ARP緩存列表中IP地址192.168.0.8的類型為static,這表明它是靜態(tài)項(xiàng)。此時,我們在ISA Server上的綁定就成功了。
現(xiàn)在我們在客戶機(jī)Fake上,將自己的IP地址修改為192.168.0.8,然后Ping ISA Server:
C:Documents and Settingsadmin>ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : anonymous
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Unknown
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Ethernet adapter 本地連接:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Intel(R) PRO/100 VE Network Connection
Physical Address. . . . . . . . . : 00-06-D0-06-05-47
Dhcp Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 192.168.0.8
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.1
DNS Servers . . . . . . . . . . . : 192.168.0.1
C:Documents and Settingsadmin>ping 192.168.0.1 -n 2
Pinging 192.168.0.1 with 32 bytes of data:
Request timed out.
Request timed out.
Ping statistics for 192.168.0.1:
Packets: Sent = 2, Received = 0, Lost = 2 (100% loss),
Ping超時,Why?從Sniffer上捕獲的數(shù)據(jù)包可以更清楚的進(jìn)行說明:
捕獲的數(shù)據(jù)包,它描述了Fake(192.168.0.8) Ping 192.168.0.1的全部過程:
由于Fake(00:06:D0:06:05:47)沒有192.168.0.1的MAC地址,所以Fake發(fā)送ARP地址解析請求廣播,詢問192.168.0.1的MAC地址是什么;
ISA Server(00:03:47:F4:FC:E7)使用ARP應(yīng)答回復(fù)Fake(00:06:D0:06:05:47),告訴Fake自己的IP地址(192.168.0.1)和MAC地址;
獲得192.168.0.1的MAC地址后,F(xiàn)ake(192.168.0.8)向192.168.0.1發(fā)送PING請求數(shù)據(jù)包;
192.168.0.1向192.168.0.8回復(fù)PING回復(fù)數(shù)據(jù)包;
Fake(192.168.0.8)再次向192.168.0.1發(fā)送PING請求數(shù)據(jù)包;
192.168.0.1再次向192.168.0.8回復(fù)PING回復(fù)數(shù)據(jù)包;
這一切看起來沒有任何問題?那為什么Fake的Ping會超時呢?
這一切從表明上看是沒有任何問題,但是仔細(xì)看捕獲的數(shù)據(jù)包的以太網(wǎng)頭部,你就會發(fā)現(xiàn)問題所在:
首先,我們看第三個數(shù)據(jù)包,F(xiàn)ake(192.168.0.8)向192.168.0.1發(fā)送的Ping請求,如下圖所示,F(xiàn)ake以自己的MAC地址為源MAC地址、192.168.0.1的MAC地址(00:03:47:F4:FC:E7)為目的MAC地址發(fā)送數(shù)據(jù)包,這沒有任何問題。那么看看第四個ISA Server回復(fù)的Ping回復(fù)數(shù)據(jù)包呢,源MAC地址是ISA Server的MAC地址(00:03:47:F4:FC:E7),這也沒有問題,但是注意看目的MAC地址,00:0D:60:C3:05:34是離線的客戶機(jī)True的MAC地址。還記得我們在ISA Server上做的IP地址(192.168.0.8)和MAC地址綁定嗎?
ISA Server直接使用自己ARP緩存中的靜態(tài)綁定項(xiàng)來發(fā)送數(shù)據(jù),而不是使用收到的Ping請求數(shù)據(jù)包中的源MAC地址來作為目的地址。因此,F(xiàn)ake認(rèn)為此數(shù)據(jù)包不是發(fā)給自己的,不會處理此數(shù)據(jù)包,所以認(rèn)為沒有Ping回復(fù)數(shù)據(jù)包,自然就是超時了。最后說一下,我不推薦大家使用靜態(tài)IP地址和MAC地址的綁定,這會帶來更多的管理負(fù)荷。你可以利用ISA Server強(qiáng)大的身份驗(yàn)證功能,結(jié)合IP地址來進(jìn)行管理,這樣具有更好的效果。也請不要在論壇問我ARP命令是如何使用的,Windows的幫助是最好的老師。如何綁定IP和MAC地址防止arp攻擊
我本來沒有想過寫關(guān)于ARP綁定的文章,坦白的說一句,在你理解ARP工作的原理時,這其實(shí)比較簡單。只是看到最近論壇很多人在問關(guān)于綁定IP和MAC地址的問題
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由http://www.zangmen.cn發(fā)布,如需轉(zhuǎn)載請注明出處。