139和445端口是危险的代名词 连接于微软网络上的电脑之间使用137和138端口取得IP地址。然后进行文件共享和打印机共享等实际
通信。通信过程是通过SMB(
服务器信息块)
协议实现的。这里使用的是139和445端口。
|

|
| 图1●SMB与CIFS的区别。Windows 2000以前版本的Windows使用NetBIOS协议解决各计算机名的问题。通过向WINS服务器发送通信对象的NetBIOS名,取得IP地址。而Windows以后的版本所采用的CIFS则利用DNS解决计算机的命名问题。根据DNS服务器中的名字列表信息,寻找需要通信的对象。如果顺利地得到对象的IP地址,就可以访问共享资源 |
在SMB通信中,首先使用上述的计算机名解释功能,取得通信对象的IP地址,然后向通信对象发出开始通信的请求。如果对方充许进行通信,就会确立会话层(Session)。并使用它向对方发送用户名和密码信息,进行认证。如果认证成功,就可以访问对方的共享文件。在这些一连串的通信中使用的就是
139端口。
Windows 2000和XP除此之外还使用445端口。文件共享功能本身与139端口相同,但该端口使用的是与SMB不同的协议。这就是在Windows 2000中最新使用的CIFS(通用因特网文件系统)协议。
CIFS和SMB解决计算机名的方法不同。SMB使用NetBIOS名的广播和WINS解决计算机名,而CIFS则使用DNS(图1)。
因此,在文件服务器和打印服务器使用Windows的公司内部网络环境中,就无法关闭139和445端口。很多情况下,文件共享和打印机共享在普通的业务中是不可缺少的功能。而客户端如果自身不公开文件,就可以关闭这两个端口。
假如是仅2000版本以后的Windows构成的网络,就可以关闭139端口。这是因为如前所述,该网络只用445端口就能够进行文件共享。由于在解决计算机名过程中使用DNS,所以也可以关闭137和138端口。不过,在目前情况下,基本上所有的网络系统都还在混合使用2000以前的Windows版本。在混合网络环境中由于必须使用139端口通过SMB协议进行通信,因此就无法关闭139端口。另外,浏览时还需要137~139端口。