ADSL给大家上网带来的极大地方便,许多家庭都有好几台计算机,通过ADSL共享上网的方式可以各自上网,互不干扰,可最近很多朋友告诉我,如果只有一台机子访问互联网,一切正常,若两台机子都要访问互联网,则都打不开网页,打听来的消息说,电信新装网络硬件:网络尖兵。
  
  上网查了一下关于网络尖兵的资料,只提到了实现的功能,没有提到实现原理,要想解决不能共享上网必须摸清它的工作原理,ADSL共享上网有两种方式,一种是代理,一种是地址翻译(NAT),大家常说的路由方式其实就是NAT方式,其实路由和NAT的原理还是有区别的,这里不作讨论,现在的ADSL猫一般都有NAT的功能,用它本身的功能实现共享上网是比经济方便,本文主要讨论这种方式。
  
  要想阻断一台以上的计算机上网必须能发现共享后边的机器是否多于一台,NAT的工作原理如图一所示,经过NAT转换后访问外网的内网的计算机的地址都变成了192.168.0.1而且MAC地址也转换成了ADSL的MAC地址,也就是说,从原理上讲,直接在ADSL出口抓经过NAT转换的包是不能发现到底有几台机器在上网。那是如何发现的呢?
  
 

  
图一、NAT的工作原理

  
  一、分析原因
  
  首先用superscan对ADSL猫进行扫描,发现开着161端口,161是SNMP(简单网络管理协议)的服务端口,难道是通过SNMP协议发现的主机数量,用xscan对猫进行了漏洞扫描,果然有默认密码,登陆到猫的管理界面但是找不到关闭SNMP服务的地方,看来是留的后门,由此基本可断定是通过SNMP协议发现的主机数。为了进一步证实,用SNMP的一个管理软件ActiveSNMP查看ADSL猫的连接情况,如图二所示,可以清楚地看出通过SNMP协议可以发现同时上网的主机数量。
  
 

  
图二、ActiveSNMP显示的ADSL中的连接情况

  
  二、解决方法
  
  解决的方法就是屏蔽SNMP协议。有以下几个思路。
  
  1、 猫中没有任何关闭SNMP协议的地方,可以换一个能关闭该协议的猫。
  
  2、 修改配置文件,可以将配置转换成一个文件,用二进制编辑工具修改默认密码,然后再加载到猫中,这只是一种思路,没有试过。
  
  3、 买一个ADSL路由器,例如TP-LINK TL-R400,放到如图三所示的地方,在该路由器中再做一个NAT服务,这样进到ADSL猫中的就是一个地址,这样就解决了共享上网。注意在路由器中要关闭SNMP协议。
  

  
图三