在linux上用arptables配置arp防火牆

risingsunczl發表於2013-06-20

區域網裡有一臺電腦不知道是中了ARP病毒還是用P2P終結者一類的軟體  每5秒鐘就會對我的主機進行一次ARP攻擊。。 弄得我上網奇卡無比。 在WINDOWS下用個金山ARP防火牆就搞定了。 但是在linux下還是有點麻煩 。研究了一個晚上 終於弄好了。原作者寫的已經非常詳細了。 我加了點註釋。為了方便和我一樣的小白。。。  紅色字型為要在終端上執行的命令。藍色字型為 終端上的顯示結果。綠色字型為我加的註釋。 高手飄過。最後特別感謝原作者!!!

原文出自

1. 安裝arptablesarptables的下載頁面是:版本的下載連結:

下載以後安裝:tar zxvf arptables-v0.0.3-3.tar.gzcd arptables-v0.0.3-3/makemake install

生成的命令是/usr/local/sbin/arptables、/usr/local/sbin/arptables-save、/usr /local /sbin/arptables-restore,系統啟動指令碼/etc/rc.d/init.d/arptables,這個指令碼讀的配置檔案必須放在 /etc/sysconfig/arptables裡。 (這一段知道就行了 不用操作)

開啟arptables服務:chkconfig arptables on

2. 配置arptableslinux伺服器的閘道器MAC是00:24:51:E9:C7:10,同網段另一臺伺服器192.168.1.10(主機名是nh-blade-67)的MAC地址是00:17:A4:A8:68:11。

用命令列配置arp防火牆:在eth0上如果源IP是192.168.1.10,並且源MAC不是00:17:A4:A8:68:11的話,就禁止這個資料楨。

/usr/local/sbin/arptables -A INPUT -i eth0 --src-ip 192.168.1.10 --src-mac  !  00:17:A4:A8:68:11 -j DROP(這裡把192.168.1.10和00:17:A4:A8:68:11換成你同網段另一臺伺服器的ip和mac.注意!的前後都有空格)

在eth0上如果源MAC不是00:24:51:E9:C7:10(閘道器的MAC地址),就禁止這個資料楨,這一條針對外網過來的訪問。

/usr/local/sbin/arptables -A INPUT -i eth0 --src-mac  !  00:24:51:E9:C7:10 -j DROP(這裡把00:24:51:E9:C7:10換成你閘道器的mac地址)

注意:新增arp防火牆策略的次序不能錯,針對閘道器MAC地址的語句必須放在最後,否則本網段IP的訪問策略不能生效。

把以上策略寫入配置檔案:/usr/local/sbin/arptables-save > /etc/sysconfig/arptables

/etc/sysconfig/arptables檔案的內容: (檢視方法vi /etc/sysconfig/arptables)

*filter:INPUT ACCEPT:OUTPUT ACCEPT:FORWARD ACCEPT-A INPUT -j DROP -i eth0 -o any -s nh-blade-67 ! --src-mac 00:17:a4:a8:68:11-A INPUT -j DROP -i eth0 -o any ! --src-mac 00:24:51:e9:c7:10

用命令 /etc/init.d/arptables restart重啟arptables的時候提示出錯:

Stopping Arp filtering (arptables):                        [  OK  ]Starting Arp filtering (arptables): arptables v0.0.3-3: Can't use -o with INPUT

Try `arptables -h' or 'arptables --help' for more information.ERROR(line 5):[FAILED]

修改/etc/sysconfig/arptables檔案以後的內容:(vi /etc/sysconfig/arptables 把-o any刪除   :wq儲存都退出)

*filter:INPUT ACCEPT:OUTPUT ACCEPT:FORWARD ACCEPT-A INPUT -j DROP -i eth0 any -s nh-blade-67 ! --src-mac 00:17:a4:a8:68:11/'

再重啟arp防火牆就沒有錯誤。檢視arp防火牆狀態 /etc/init.d/arptables status:

*filter:INPUT ACCEPT:OUTPUT ACCEPT:FORWARD ACCEPT-A INPUT -j DROP -i eth0 -o any -s nh-blade-67 ! --src-mac 00:17:a4:a8:68:11-A INPUT -j DROP -i eth0 -o any ! --src-mac 00:24:51:e9:c7:10

注:RHEL5U1自帶arptables的版本是0.0.8,命令裡不能帶--source-ip引數,這個版本不是sourceforge.net上釋出的。

) 重啟後生效開啟: chkconfig arptables on關閉: chkconfig arptables off

2) 即時生效,重啟後失效開啟: service arptables start關閉: service arptables stop

相關文章