刚到这里没有多久,,和很的兄弟一样,我也是一只网络菜菜鸟。。。
看到有人谈到ARP的问题,,就发了这个帖子。。。
我个人认为
软件不一定能做到很好的防范的,,,
ARP是一种欺骗,,,只要能把正确的IP与MAC静态绑定就能做到一些防范
这个绑定是要双绑的,,单绑是起不到好的作用的,,,
我这里有一个客户机自动静态绑定本机和网关的IP与MAC的bat
然后你只要在你的路由或代理服务器把所有的客户机的IP与MAC绑定一下就可以做到双绑了,,,这样就可以做一定量的ARP防御了。。
为什么说是一定量的,,因为这只是绑了一次,,,
更好的方法就是在客户机上做每次开机绑定,,
在路由或代理服务器上做每一秒广播所有正确的IP与MAC的绑定。这样就OK啦,,
这个BAT是偶在网上收集到,,经偶测试了很长时间(由于本人太菜了吧~!)才发现是少了一句。偶就加上了:ping %GateIP% -n 1 。也不知道是作者漏掉了还是有人发的时候给漏掉了。。这就不关了,,,只能现在能用就行了,,
好了,,下面是代码。。。要是有什么不对的地方还请高手指教。。。。
@echo off
::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 本机以及网关IP和MAC地址绑定批处理程序 ::
:: 说明:此方法治标不治本,要想根本解决ARP请 ::
:: 采用路由和本机实现双向绑定 ::
::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::读取本机Mac地址
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >c:\ipconfig.txt
if exist phyaddr.txt del phyaddr.txt
find "Physical Address" ipconfig.txt >c:\phyaddr.txt
for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set Mac=%%M
:::::::::读取本机ip地址
if exist IPAddr.txt del IPaddr.txt
find "IP Address" ipconfig.txt >c:\IPAddr.txt
for /f "skip=2 tokens=15" %%I in (IPAddr.txt) do set IP=%%I
:::::::::绑定本机IP地址和MAC地址
arp -s %IP% %Mac%
:::::::::读取网关地址
if exist GateIP.txt del GateIP.txt
ipconfig /all >c:\ipconfig.txt
find "Default Gateway" ipconfig.txt >c:\GateIP.txt
for /f "skip=2 tokens=13" %%G in (GateIP.txt) do set GateIP=%%G
:::::::::读取网关Mac地址
if exist GateMac.txt del GateMac.txt
ping %GateIP% -n 1
arp -a %GateIP% >c:\GateMac.txt
for /f "skip=3 tokens=2" %%H in (GateMac.txt) do set GateMac=%%H
:::::::::绑定网关Mac和IP
arp -s %GateIP% %GateMac%
exit
看到有人谈到ARP的问题,,就发了这个帖子。。。
我个人认为
软件不一定能做到很好的防范的,,,
ARP是一种欺骗,,,只要能把正确的IP与MAC静态绑定就能做到一些防范
这个绑定是要双绑的,,单绑是起不到好的作用的,,,
我这里有一个客户机自动静态绑定本机和网关的IP与MAC的bat
然后你只要在你的路由或代理服务器把所有的客户机的IP与MAC绑定一下就可以做到双绑了,,,这样就可以做一定量的ARP防御了。。
为什么说是一定量的,,因为这只是绑了一次,,,
更好的方法就是在客户机上做每次开机绑定,,
在路由或代理服务器上做每一秒广播所有正确的IP与MAC的绑定。这样就OK啦,,
这个BAT是偶在网上收集到,,经偶测试了很长时间(由于本人太菜了吧~!)才发现是少了一句。偶就加上了:ping %GateIP% -n 1 。也不知道是作者漏掉了还是有人发的时候给漏掉了。。这就不关了,,,只能现在能用就行了,,
好了,,下面是代码。。。要是有什么不对的地方还请高手指教。。。。
@echo off
::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 本机以及网关IP和MAC地址绑定批处理程序 ::
:: 说明:此方法治标不治本,要想根本解决ARP请 ::
:: 采用路由和本机实现双向绑定 ::
::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::读取本机Mac地址
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >c:\ipconfig.txt
if exist phyaddr.txt del phyaddr.txt
find "Physical Address" ipconfig.txt >c:\phyaddr.txt
for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set Mac=%%M
:::::::::读取本机ip地址
if exist IPAddr.txt del IPaddr.txt
find "IP Address" ipconfig.txt >c:\IPAddr.txt
for /f "skip=2 tokens=15" %%I in (IPAddr.txt) do set IP=%%I
:::::::::绑定本机IP地址和MAC地址
arp -s %IP% %Mac%
:::::::::读取网关地址
if exist GateIP.txt del GateIP.txt
ipconfig /all >c:\ipconfig.txt
find "Default Gateway" ipconfig.txt >c:\GateIP.txt
for /f "skip=2 tokens=13" %%G in (GateIP.txt) do set GateIP=%%G
:::::::::读取网关Mac地址
if exist GateMac.txt del GateMac.txt
ping %GateIP% -n 1
arp -a %GateIP% >c:\GateMac.txt
for /f "skip=3 tokens=2" %%H in (GateMac.txt) do set GateMac=%%H
:::::::::绑定网关Mac和IP
arp -s %GateIP% %GateMac%
exit
