摘要:如何保障網絡的正常運行已經成為各單位業務系統能否順利開展的關鍵問題。而網絡中ARP欺騙攻擊的出現造成了大量電腦無法上網,更有甚者導致網絡癱瘓。為保障網絡安全、穩定的運行。首先通過對ARP通訊的過程進行研究,找出ARP攻擊產生的原因,再通過具體的案例來說明怎樣利用交換機的ACL功能來有效的防御ARP攻擊。
關鍵詞:ARP;交換機;ACL
中圖分類號:TP393 文獻標識碼:A文章編號:1009-3044(2009)35-9943-02
Guard Against ARP Attacking the Analysis Resolving the Scheme Example
ZHENG Jian-feng
(Liuzhou City Bureau of Finance, Liuzhou 545006, China)
Abstract: How ensure network regularity running the question already becoming every business system being able to carry out smoothly or not. But, in the network, ARP attack brings about large amount of unable net play of computer, Lead to the network be paralysed furthermore. Be to ensure the network safety, stable. Study first by the fact that the communication process is in progress to ARP, Find out the cause that ARP go at produces, defense ARP go at again by explaining that ACL how to make use of switch is an effective to come the function coming concrete case.
Key words: ARP; switch; ACL
近兩年來我們在局域網中經常發現這樣的怪事:網絡中同一網段的電腦大部分不能上網,而電腦在重新啟動后網絡又恢復正常,但過了沒多久就又不能上網了。當你對不能上網的電腦進行殺毒,卻發現沒有病毒,重新安裝系統,可還是不能上網。而這就是網絡殺手—ARP攻擊造成的嚴重后果。
1 ARP攻擊成因分析
要想弄清楚電腦不能上網的原因。首先,我們來認識ARP,它的全名是Address Resolution Protocol,地址解析協議,其功能是通過目標設備的IP地址,查詢目標設備的MAC地址,從而實現網絡內設備間的正常通訊。其次,讓我們來分析ARP攻擊的過程。網絡中的設備(包括主機、交換機、路由器等)都有一張通過ARP協議建立的ARP緩存表,表中的內容是IP地址和MAC地址的對應關系。網絡設備就是通過ARP緩存表和其它設備通訊的。ARP攻擊就是通過大量的發送錯誤的ARP報文,使得網絡設備中ARP緩存表的內容,既IP地址和MAC地址的對應關系出現錯誤。這樣一來網絡設備間的通訊就無法正常進行了。
2 解決方案實例分析
接下來通過具體的案例來說明怎么樣防御ARP欺騙攻擊。在如圖1所示的網絡環境中,核心交換機是H3C的S7510E,在S7510E上開啟三層功能,建立VLAN18,VLAN18的IP地址是10.79.58.1,子網掩碼是255.255.255.0,MAC地址是00-0F-E2-A4-14-52 。S7510E下連兩臺H3C的S3600-52P-SI,在S3600-52P-SI上開啟二層功能,將S1的第10個端口配置為屬于VLAN18的ACCESS端口,10端口下連PC1,PC1靜態配置的IP地址是10.79.58.16,子網掩碼是255.255.255.0,網關是10.79.58.1,MAC地址是00-19-5B-7F-12-AD。將S2的第20個端口配置為屬于VLAN18的ACCESS端口,20端口下連PC2,PC2靜態配置的IP地址是10.79.58.28,子網掩碼是255.255.255.0,網關是10.79.58.1,MAC地址是00-21-5E-30-5F-8C。
在正常的情況下PC1和PC2的ARP緩存表中都會有網關的IP地址和MAC地址的對應記錄。這樣PC1和PC2的以太網幀就可以到達網關,再通過網關到達其它目的地。但是當PC1感染上了ARP病毒后,它就會向和它同一網段的PC2發送帶欺騙性質的ARP報文。在這樣的ARP報文中,它將網關的MAC地址改為自己的MAC地址。這樣PC2的ARP緩存表就發生了變化,網關的IP地址對應的MAC地址就變成了PC1的MAC地址了,而從PC2發出的以太網幀就沒辦法到達網關了而是要送到PC1那里了。這也就造成了PC2無法上網的狀況。而且PC1的ARP欺騙報文是隨機發送的,這樣就導致PC2的ARP緩存表連續不斷的被欺騙,即使我們使用ARP –d命令或者重新啟動電腦的辦法清除了錯誤的ARP緩存表,可是不一會就又遭到ARP欺騙報文的攻擊而產生錯誤的ARP表了。
經過以上的分析,我們知道只要使電腦不遭受ARP報文的欺騙攻擊,它的ARP緩存表就能保持正確,也就能正常的上網了。而這就需要在連接電腦的交換機上下功夫,使其起到屏障的作用。當電腦發送出來的以太網幀到達交換機的時候,它做出判斷,是ARP欺騙攻擊的報文就阻止其通過,其它的以太網幀就讓其正常的通過。這樣ARP欺騙攻擊的報文就沒辦法發揮作用了。
通過在交換機上配置ACL,它的全名是Access Control List,訪問控制列表,就能使其對報文做智能判斷。H3C的S3600-52P-SI支持一種特殊的ACL—用戶自定義ACL,它以以太網幀的頭部為基準,指定從第幾個字節開始與掩碼進行“與”操作,將從中提取出來的字符串和用戶定義的字符串進行比較,找到匹配的報文后,再根據預先設定的策略允許或者禁止相應的報文通過。
在H3C的S3600-52P-SI交換機上進行用戶自定義ACL的配置分為五步。第一步,進入系統視圖,命令為:system-view。第二步,創建并進入用戶自定義ACL視圖,命令為:acl number acl-number,用戶自定義ACL的序號acl-number的取值范圍為5000~5999。第三步,定義ACL規則,命令為:rule [rule-id] {permit | deny} [rule-string rule-mask offset] <1-8>。用戶自定義ACL的規則編號rule-id的取值范圍為0~65534。permit和deny為策略,permit表示允許,deny表示拒絕。rule-string為用戶自定義的規則字符串,rule-mask為用戶自定義的規則掩碼,offset為規則掩碼的偏移量。為了解這三項的作用,我們先要了解攜帶ARP報文的以太網幀格式。我們在這里重點介紹其中的兩個字段。如圖2所示,從左往右數第四項的幀類型,它由四個十六進制數構成,占兩個字節,其含義是以太網幀攜帶的報文的類型,比如十六進制數0806表示以太網幀攜帶的是ARP報文。從左往右數第十一項的發送端IP地址,它由八個十六進制數構成,占四個字節。表示發送此以太網幀的設備的IP地址。比如0A-4F-3A-01表示是IP地址為10.79.58.1的設備發送的以太網幀。在具體配置的時候rule-string的值就可以根據圖2所示各字段的內容進行填寫。Offset用來表示如圖2所示以太網幀從左邊算起第幾個字節開始與rule-mask所表示的位數進行“與”操作,用得出的字符串和rule-string進行比較,如果匹配則ACL規則預先設定的策略允許或者禁止起作用。從而到達對報文的控制。第五步,將用戶自定義ACL應用到交換機端口上去。
在掌握了用戶自定義ACL的配置方法后,接下來就要找到需要禁止的報文的特征。經分析得出ARP欺騙報文有兩個特點:首先,它是一個ARP報文,也就是如圖2所示幀類型字段的值為0806。其次,它要冒充網關發出報文,也就是如圖2所示發送端IP地址字段的值為用十六進制數表示的網關的IP地址。
經過以上分析我們要想禁止PC1發出ARP欺騙報文,應該在S1交換機上做如下配置。第一步,登陸到S1交換機,輸入命令system-view,進入到系統視圖。第二步,輸入命令acl number 5100,創建并進入序號為5100的用戶自定義ACL視圖。第三步,輸入命令rule 1 deny 0806 ffff 16 0A4F3A01 ffffffff 32。其具體含義為:rule 1 表示創建的規則編號為1,deny表示當滿足后面的條件時禁止報文的通過,0806 ffff 16表示第一個條件是從以太網幀頭部開始算起第16個字節后兩個字節(ffff表示四個十六進制數,也就是兩個字節)的值是0806,也就是說這個以太網幀攜帶的是ARP報文,0A4F3A01 ffffffff 32表示第二個條件是從以太網幀頭部開始算起第32個字節后四個字節(ffffffff表示八個十六進制數,也就是四個字節)的值是0A4F3A01,也即是說發送端IP地址為10.79.58.1。第四步,輸入命令quit退出到系統視圖,輸入命令interface Ethernet 1/0/10,進入到第10端口配置視圖,輸入命令packet-filter inbound user-group 5100,將序號為5100的用戶自定義ACL配置到第10端口的入口。完成以上配置以后PC1的ARP欺騙報文就在進入S1交換機的第十端口的時候被禁止了。
圖2 攜帶ARP報文的以太網幀格式
3 結束語
利用在交換機端口上配置用戶自定義ACL的方法對仿冒網關的ARP攻擊確實起到了有效的防御作用。但是仿冒網關的ARP攻擊只是筆者在網絡維護中最常見到的一種ARP攻擊方式。其它的ARP攻擊方式有:第一,欺騙網關攻擊。第二,“中間人”攻擊。第三,ARP報文泛洪攻擊。因此,想要全面的防御ARP欺騙攻擊就要在網絡中建立全方位的防御體系。具體的做法包括:第一,要在交換機上配置ARP DETECTION、靜態ARP綁定、ARP報文限速、ARP源抑制、ARP防IP報文攻擊等功能。第二,在網絡中部署硬件防火墻、入侵檢測系統。第三,要在電腦上安裝殺毒軟件、軟件防火墻,及時的給電腦打系統補丁,在接收U盤數據的時候要采取先殺毒后拷貝的方式,防止病毒從U盤傳入電腦。第四,對內網、外網進行物理隔離。第五,如果IP地址的獲取是通過DHCP服務器自動分配的方式,則應該采用802.1X認證等方式進行先認證后分配IP地址再接入網絡的方式。ARP欺騙攻擊雖然給網絡的應用帶來了很大的危害,但是只要我們采用正確的方法并部署得當,ARP欺騙攻擊是肯定能夠防御的。
參考文獻:
[1] 王達.網管員必讀:網絡組建[M].北京:電子工業出版社,2007.
[2] 王達.網管員必讀:網絡安全[M].北京:電子工業出版社,2007.
[3] 陸魁軍.計算機網絡工程實踐教程:基于華為路由器和交換機[M].北京:北京清華大學出版社,2005.