基于Linux/BSD 防范局域網內ARP欺騙
發表時間:2023-07-16 來源:明輝站整理相關軟件相關文章人氣:
[摘要]本文對于ARP欺騙, 提出幾點加強安全防范的措施。 環境是主機或者網關是基于Linux/BSD的。 一、理論前提 本著“不冤枉好人, 不放過一個壞人...
本文對于ARP欺騙, 提出幾點加強安全防范的措施。 環境是主機或者網關是基于Linux/BSD的。
一、理論前提
本著“不冤枉好人, 不放過一個壞人的原則”, 先說說我的一些想法和理論依據。 首先, 大家肯定發送ARP欺騙包肯定是一個惡毒的程序自動發送的, 正常的TCP/IP網絡是不會有這樣的錯誤包發送的。 這就假設, 如果犯罪嫌疑人沒有啟動這個破壞程序的時候, 網絡環境是正常的, 或者說網絡的ARP環境是正常的, 如果我們能在犯罪嫌疑人啟動這個犯罪程序的第一時間, 一開始就發現了他的犯罪活動, 那么就是人贓俱在, 不可抵賴了, 因為剛才提到, 前面網絡正常的時候證據是可信和可依靠的。 好, 接下來我們談論如何在第一時間發現他的犯罪活動。
ARP欺騙的原理如下:
假設這樣一個網絡, 一個Hub接了3臺機器
HostA HostB HostC 其中
A的地址為:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA
B的地址為:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB
C的地址為:IP:192.168.10.3 MAC: CC-CC-CC-CC-CC-CC
正常情況下 C:\arp -a
Interface: 192.168.10.1 on Interface 0x1000003
Internet Address Physical Address Type
192.168.10.3 CC-CC-CC-CC-CC-CC dynamic
現在假設HostB開始了罪惡的ARP欺騙:
B向A發送一個自己偽造的ARP應答, 而這個應答中的數據為發送方IP地址是192.168.10.3(C的IP地址), MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本來應該是CC-CC-CC-CC-CC-CC, 這里被偽造了)。 當A接收到B偽造的ARP應答, 就會更新本地的ARP緩存(A可不知道被偽造了)。 而且A不知道其實是從B發送過來的, A這里只有192.168.10.3(C的IP地址)和無效的DD-DD-DD-DD-DD-DD mac地址, 沒有和犯罪分子B相關的證據, 哈哈, 這樣犯罪分子豈不樂死了。
現在A機器的ARP緩存更新了:
C:\>arp -a
Interface: 192.168.10.1 on Interface 0x1000003
Internet Address Physical Address Type
192.168.10.3 DD-DD-DD-DD-DD-DD dynamic
這可不是小事。 局域網的網絡流通可不是根據IP地址進行, 而是按照MAC地址進行傳輸。 現在192.168.10.3的MAC地址在A上被改變成一個本不存在的MAC地址。 現在A開始Ping 192.168.10.3, 網卡遞交的MAC地址是DD-DD-DD-DD-DD-DD, 結果是什么呢?網絡不通, A根本不能Ping通C!!
所以, 局域網中一臺機器, 反復向其他機器, 特別是向網關, 發送這樣無效假冒的ARP應答信息包, NND, 嚴重的網絡堵塞就開始了!網吧管理員的噩夢開始了。 我的目標和任務, 就是第一時間, 抓住他。 不過從剛才的表述好像犯罪分子完美的利用了以太網的缺陷, 掩蓋了自己的罪行。 但其實, 以上方法也有留下了蛛絲馬跡。 盡管, ARP數據包沒有留下HostB的地址, 但是, 承載這個ARP包的ethernet幀卻包含了HostB的源地址。 而且, 正常情況下ethernet數據幀中, 幀頭中的MAC源地址/目標地址應該和幀數據包中ARP信息配對, 這樣的ARP包才算是正確的。 如果不正確, 肯定是假冒的包, 可以提醒!但如果匹配的話, 也不一定代表正確, 說不定偽造者也考慮到了這一步, 而偽造出符合格式要求, 但內容假冒的ARP數據包。 不過這樣也沒關系, 只要網關這里擁有本網段所有MAC地址的網卡數據庫, 如果和Mac數據庫中數據不匹配也是假冒的ARP數據包。 也能提醒犯罪分子動手了。
二、防范措施
1. 建立DHCP服務器(建議建在網關上, 因為DHCP不占用多少CPU, 而且ARP欺騙攻擊一般總是先攻擊網關, 我們就是要讓他先攻擊網關, 因為網關這里有監控程序的, 網關地址建議選擇192.168.10.2 , 把192.168.10.1留空, 如果犯罪程序愚蠢的話讓他去攻擊空地址吧), 另外所有客戶機的IP地址及其相關主機信息, 只能由網關這里取得, 網關這里開通DHCP服務, 但是要給每個網卡, 綁定固定唯一IP地址。 一定要保持網內的機器IP/MAC一一對應的關系。 這樣客戶機雖然是DHCP取地址, 但每次開機的IP地址都是一樣的。
2. 建立MAC數據庫, 把網吧內所有網卡的MAC地址記錄下來, 每個MAC和IP、地理位置統統裝入數據庫, 以便及時查詢備案。
3. 網關機器關閉ARP動態刷新的過程, 使用靜態路郵, 這樣的話, 即使犯罪嫌疑人使用ARP欺騙攻擊網關的話, 這樣對網關也是沒有用的, 確保主機安全。
網關建立靜態IP/MAC捆綁的方法是:建立/etc/ethers文件, 其中包含正確的IP/MAC對應關系, 格式如下:
192.168.2.32 08:00:4E:B0:24:47
然后再/etc/rc.d/rc.local最后添加:
arp -f 生效即可
4. 網關監聽網絡安全。 網關上面使用TCPDUMP程序截取每個ARP程序包, 弄一個腳本分析軟件分析這些ARP協議。 ARP欺騙攻擊的包一般有以下兩個特點, 滿足之一可視為攻擊包報警:第一以太網數據包頭的源地址、目標地址和ARP數據包的協議地址不匹配。 或者, ARP數據包的發送和目標地址不在自己網絡網卡MAC數據庫內, 或者與自己網絡MAC數據庫 MAC/IP 不匹配。 這些統統第一時間報警, 查這些數據包(以太網數據包)的源地址(也有可能偽造), 就大致知道那臺機器在發起攻擊了。
5. 偷偷摸摸的走到那臺機器, 看看使用人是否故意, 還是被任放了什么木馬程序陷害的。 如果后者, 不聲不響的找個借口支開他, 拔掉網線(不關機,特別要看看Win98里的計劃任務), 看看機器的當前使用記錄和運行情況, 確定是否是在攻擊。
上面是電腦上網安全的一些基礎常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。