如何在Linux路由上設置IP和MAC綁定
首先使用ipchains或者iptables來(lái)設定只允許合法的IP地址連出。
對于合法IP建立IP/Mac捆綁。要討論這個(gè)問(wèn)題我們首先需要了解ARP協(xié)議的工作原理,arp協(xié)議是地址解析協(xié)議(Address Resolution Protocol)的縮寫(xiě),其作用及工作原理如下:
在底層的網(wǎng)絡(luò )通信中,兩個(gè)節點(diǎn)想要相互通信,必須先要知道源與目標的MAC地址。為了讓系統能快速地找到一個(gè)遠程節點(diǎn)的MAC地址,每一個(gè)本地的內核都保存有一個(gè)即時(shí)的查詢(xún)表 (稱(chēng)為ARP緩存)。ARP中有影射遠程主機的IP地址到其對應的MAC地址的一個(gè)列表。地址解析協(xié)議(ARP)緩存是一個(gè)常駐內存的數據結構,其中的內容是由本地系統的內核來(lái)管理和維護的。默認的情況下,ARP緩存中保留有最近十分鐘本地系統與之通信的節點(diǎn)的IP地址(和對應的MAC地址)。
當一個(gè)遠程主機的MAC地址存在于本地主機的ARP 緩存中,轉換遠程節點(diǎn)的IP地址為MAC地址不會(huì )遇到問(wèn)題。然而在許多情況下,遠程主機的MAC地址并不存在于本地的ARP緩存中,系統會(huì )怎么處理呢?在知道一個(gè)遠程主機的IP地址,但是MAC地址不在本地的ARP緩存中的時(shí)候,以下的過(guò)程用來(lái)獲取遠程節點(diǎn)的MAC地址:本地主機發(fā)送一個(gè)廣播包給網(wǎng)絡(luò )中的所有的節點(diǎn),詢(xún)問(wèn)是否有對應的IP地址。一個(gè)節點(diǎn)(只有一個(gè))會(huì )回答這個(gè)ARP廣播信息。在回應的信息包里就會(huì )包含有這個(gè)遠程主機的MAC地址。在收到這個(gè)返回包后,本地節點(diǎn)就會(huì )在本地ARP緩存中記錄遠程節點(diǎn)的MAC地址。
如果我們將IP/MAC對應關(guān)系建立為固定的,也就是對那些合法IP地址建立靜態(tài)的MAC對應關(guān)系,那么即使非法用戶(hù)盜用了IP地址linux路由器在回應這些IP發(fā)出的連接請求時(shí)則不會(huì )通過(guò)arp協(xié)議詢(xún)問(wèn)其mac地址而是使用Linux建立的靜態(tài)MAC地址、發(fā)出應答數據這樣盜用IP者則不會(huì )得到應答數據從而不能使用網(wǎng)絡(luò )服務(wù)。
建立靜態(tài)IP/MAC捆綁的方法是:建立/etc/ethers文件,其中包含正確的IP/MAC對應關(guān)系,格式如下:
192.168.2.32 08:00:4E:B0:24:47
然后再/etc/rc.d/rc.local最后添加:arp -f即可
2.4內核的iptables可以對IP和Mac同時(shí)進(jìn)行限定,使用該功能對合法IP的規則同時(shí)限定IP地址和Mac地址即可。
評論