① linux防火牆如何防禦ARP攻擊
windows下放arp攻擊可以用金山ARP防火牆,把網關ip和MAC填上,然後選項里把安全模式的鉤勾上就基本沒什麼問題。Linux沒找到這么現成的東西, google上找了一些方法,都自己試過一遍,不是非常管用。
進行arp攻擊要做兩件事情:
1、欺騙目標機器,攻擊機器A告訴目標機器B:我是網關!
2、欺騙網關,攻擊機器A告訴網關:我是B!
也就是A進行雙向欺騙。
這樣做以後目標機器B發給網關的數據包都讓攻擊機器A給沒收了,沒有發給網關,所以B就上不了網了。要讓B能上網,A需要將從B收到的包轉發給網關。(有時候開P2P終結這之類的軟體的時候發現別人上不了網了,有時候是因為自己有一個NB的防火牆,有時侯是其他原因,從被控制的機器上發過來的包沒有能轉發給網關,所以。。。)
我在網上找了一些關於Linux怎麼防arp攻擊的文章,基本上有這么幾種做法。
1、綁定IP-MAC。通過arp -s 或者 arp -f。我就咬定哪個是網關了,你們誰說的話我都不信!
但是有個缺點,必須雙向綁定IP-MAC,如果你無法控制路由器,不能在網關那裡設置靜態IP,這個方法就無效了。
2、既然控制不了網關,我只能告訴網關哪個才是真正的我了。向網關發送自己的IP和MAC。也就是告訴網關:我才是XXX。
(1)用arping,或者arpspoof(arpsniffer)。
命令:arping -U -I 網卡介面 -s 源IP 目標IP
由於命令裡面沒有指定網關的MAC,所以形同虛設,效果不好。
(2)用arpoison或者ARPSender,可以指定MAC,效果算是比較好,但有時候還是不行。
命令:arpoison -i 網卡介面 -d 網關IP -s 我的IP -t 網關MAC -r 我的MAC
參考了這篇文章: http://hi..com/yk103/blog/item/f39e253f9d6aeeed55e72361.html
我用Wireshark看了一下,發現雖然我指定了目標的MAC,但是我的機器依然會間歇性地往攻擊機器發送我的IP和MAC,然後攻擊機器利用我的MAC進行雙向欺騙。
所以我想,有沒有什麼辦法不讓除了網關之外的其他人知道我的MAC呢?後來就找到了一下這篇文章。
文章地址: http://www.kanwi.cn/read-348.html
文章內容:(因為原文地址訪問非常慢所以在這里貼出來)
Linux/FreeBSD防止ARP欺騙的一種 被動方法(隱藏MAC)
作者: Knight 日期: 2008-11-17 14:15
文章作者:Helvin
信息來源:邪惡八進制信息安全團隊(www.eviloctal.com)
首先對國內某些IDC不負責任的行為表示抗議
一般欺騙機器通過ARP Request獲得網關的MAC,然後同樣方法獲得你伺服器的MAC進行雙向欺騙,然後sniffer密碼,掛馬之類。
國內幾乎所有的IDC都是幾百伺服器公用一個網關的。然後上百個伺服器總有幾個有漏洞的,然後你就被ARP欺騙掛馬或者抓密碼了
下面介紹的是Linux 利用arptables來防止ARP Request獲得你的MAC。這樣攻擊者會認為你的伺服器是不存在的(本來很復雜的,需要patch編譯內核什麼的,上周才發現還有一個 arptables,免編譯內核,現在把方法寫一下)
Debian/Ubuntu:(runas sudo)CentOS/RHAS 叫arptables_jf
引用:
apt-get install arptables
arptables -A INPUT --src-mac ! 網關MAC -j DROP
arptables -A INPUT -s ! 網關IP -j DROP
如果你有本網的內網機器要互聯,可以 引用:
arptables -I INPUT --src-mac 你的其他伺服器MAC ACCEPT
如果你的MAC已經被欺騙機器拿到,那隻能ifconfig ethx hw ether MAC來修改了
有一定的危險性,請酌情測試,你也可以瘋狂刷新網關+本機ARP綁定,看具體需要
還要注意這個時候不要發出ARP Request到除網關以外的其他IP,其後果可能是被其他機器拿到MAC
補充一個FreeBSD下的隱藏MAC的方法
首先sysctl net.link.ether.ipfw=1開啟IPFW ether層過濾功能(網橋模式要使用sysctl net.link.ether.bridge_ipfw=1)
然後
ipfw add 00005 allow ip from any to any MAC 網關MAC any /* 打開你到網關的通信 */
ipfw add 00006 allow ip from any to any MAC any 網關MAC /* 打開網關到你的通信 */
/* ........中間你可以添加本網段內需要互聯的IP地址MAC雙向通信........ */
ipfw add 00010 deny ip from any to any MAC any any /* 關閉所有其他MAC的任何響應 */
如果伺服器作為內網網關使用,可以在內網網卡界面
ifconfig em1 -arp /* 關閉ARP響應(假設em0是內網網卡) */
arp -f /etc/arp.list /* 設置靜態ARP表 */
以下是ARP(8) 關於arp.list格式的描述,
Cause the file filename to be read and multiple entries to be set
in the ARP tables. Entries in the file should be of the form
hostname ether_addr [temp] [pub]
with argument meanings as given above. Leading whitespace and
empty lines are ignored. A `#' character will mark the rest of
the line as a comment.
我覺得可以把 綁定IP-MAC + arposion + MAC隱藏的方法綜合起來
轉自 http://hi..com/aj_shuaikun/blog/item/ab39b3d982a59fe038012fd0.html