在有些系統中有這樣的需求,希望內部網中的某幾個IP地址連接互聯網,而又希望這些
IP地址不被非法用戶盜用。可以通過下面的解決辦法實現:
1. 首先使用ipchains或者iptables來設定只允許合法的IP地址連出。
對於合法IP建立IP/MAC捆綁。要討論這個問題我們首先需要了解ARP協議的工作原理,
ARP協議是地址解析協議(Address Resolution Protocol)的縮寫,其作用及工作原理如下:
在底層的網絡通信中,兩個節點想要相互通信,必須先要知道源與目標的MAC地址。 為
了讓系統能快速地找到一個遠程節點的MAC地址, 每一個本地的內核都保存有一個即時的查
詢表(稱為ARP緩存)。 ARP中有影射遠程主機的IP地址到其對應的MAC地址的一個列表。地
址解析協議(ARP)緩存是一個常駐內存的數據結構, 其中的內容是由本地系統的內核來管
理和維護的。默認的情況下, ARP緩存中保留有最近十分鐘本地系統與之通信的節點的IP地
址(和對應的MAC地址)。
當一個遠程主機的MAC地址存在於本地主機的ARP緩存中, 轉換遠程節點的IP地址為MAC
地址不會遇到問題。然而在許多情況下,遠程主機的MAC地址並不存在於本地的ARP緩存中,
系統會怎麼處理呢?在知道一個遠程主機的IP地址,但是MAC地址不在本地的ARP緩存中的時
候,以下的過程用來獲取遠程節點的MAC地址:
本地主機發送一個廣播包給網絡中的所有的節點,詢問是否有對應的IP地址。一個節點
(只有一個)會回答這個ARP廣播信息。在回應的信息包裡就會包含有這個遠程主機的MAC地
址。在收到這個返回包後, 本地節點就會在本地ARP緩存中記錄遠程節點的MAC地址。
如果我們將IP/MAC對應關系建立為固定的, 也就是對那些合法IP地址建立靜態的MAC對
應關系, 那麼即使非法用戶盜用了IP地址,Linux路由器在回應這些IP發出的連接請求時則
不會通過ARP協議詢問其MAC地址,而是使用linux建立的靜態MAC地址、發出應答數據。這樣,
盜用IP者則不會得到應答數據,從而不能使用網絡服務。
建立靜態IP/MAC捆綁的方法是:建立/etc/ethers文件, 其中包含正確的IP/MAC對應關
系,格式如下:
192.168.2.32 08:00:4E:B0:24:47
然後在/etc/rc.d/rc.local的最後添加:
arp -f
即可
2. 2.4內核的iptables可以對IP和MAC同時進行限定,使用該功能對合法IP的規則同時限定
IP地址和MAC地址即可。
---
end