客户的网络拓扑也很简单,出口防火墙做网关,下接傻瓜交换机,在防火墙上开启dhcp。
(四) 问题分析
1、确认设备能否访问互联网,在系统——排障——命令控制台,用ping命令,进行测试发现访问互联网正常。
2、既然反应部分电脑能上网,部分不能上网,检测应用控制策略管理的用户是否正确。在策略——应用控制策略进行查看,发现关联的用户正确,该放通的应用也放通了。
可是故障现象还是没解决。
3、对设备开直通,针对不能上网的IP单独开启直通功能测试,发现设备没有拦截的信息。
至此,能用的常规排除手段都使用了,故障现象还是没有解决,看来的重新整理一下思路了。
4、故障定位
回头仔细想一下,用户要上网,无非就是以下两个步骤:
l 用户通过ARP表找到网关MAC
l 网关设备通过NAT将用户IP转换为公网IP
这时候分别在能上网和不能上网的电脑上用arp –a命令查看,果然发现问题,两个电脑学习到的arp表网关MAC不一致:
不能上网电脑的arp表
不能上网电脑的arp表
5、问题解决
既然内网存在arp攻击,那无非就两种解决办法,一种将发送arp攻击的电脑找出来,另一种就是让不能上网的用户学习到正确的arp表。
首先,开启防火墙的arp攻击防护
发现虽然开启arp防护功能了,但是内网电脑已经学习到错误的arp表了,只能让它们重新学习正确的arp表。
首先用arp –d命令重置arp表,然后对arp表进行绑定
l CMD中输入:netsh i i show in //注意两个i之间是有空格的
l 然后找到“本地连接”对应的 “Idx” (我的是“11”,下面 neighbors 后面的数字跟这里一致。)每个人的计算机都不太相同的这个值。
下面在CMD输入:netsh -c "i i" add neighbors 11 “192.168.1.1” “ec-d6-8a-10-85-36“,这里 11 是 idx 号。
注意前面"i i"的双引号是英文状输入,后面网关和MAC地址是可以用或不用双引号的。再 arp -a 查看已经绑定好。
6、后续处理
对于我这种渣渣来说,水平还没达到远程能把这个arp攻击的机器搞死的水平,所以只能一台一台的查mac了,最后查到是客户自己建的一台linux的试验机的mac,正好地址也配成了网关的地址。
(六) 故障总结
arp防护的主要手段:
• 主机级被动检测:当系统接收到来自局域网上的ARP请求时,系统检查该请求发送端的IP地址是否与自己的IP地址相同。如果相同,则说明该网络上另有一台机器与自己具有相同的IP地址。
• 主机级主动检测:主机定期向所在局域网发送查询自己IP地址的ARP请求报文。如果能够收到另一ARP响应报文,则说明该网络上另有一台机器与自己具有相同的IP地址。
• 服务器级检测:当服务器收到ARP响应时,为了证实它的真实性,根据反向地址解析协议(RARP)就用从响应报文中给出的MAC地址再生成一个RARP请求,它询问这样一个问题:“如果你是这个MAC地址的拥有者,请回答你的IP地址”。这样就会查询到这个MAC地址对应的IP地址,比较这两个IP地址,如果不同,则说明对方伪造了ARP响应报文。
• 网络级检测:配置主机定期向中心管理主机报告其ARP缓存的内容。中心管理主机上的程序就会查找出两台主机报告信息的不一致,以及同一台主机前后报告内容的变化。或者利用网络嗅探工具连续监测网络内主机硬件地址与IP地址对应关系的变化。
• 静态绑定关键主机的IP地址与MAC地址映射关系。