e博士看台:让局域网支持UPnP

网络通信

  最近很多读者来信反映在局域网中无法使用BT下载网上资源,而且也无法利用MSN Messenger进行语音聊天和文件传输。根据这些情况,e博士收集了大量资料,进行了一番研究,发现出现以上问题的用户都是内网用户,同时他们所在局域网的防火墙都不支持UPnP。要想彻底解决这些问题,必须使局域网的防火墙支持UPnP。

  仿真UPnP

  有很多局域网防火墙(如ISA 2004)都没有内置实现端口映射的UPnP功能,从而导致局域网用户无法使用BT工具下载文件等情况的出现。对于ISA 2004这类防火墙,我们必须通过手工配置,来仿真局域网的UPnP。下面,e博士以BT工具为例,介绍如何在ISA 2004中仿真出UPnP功能,以实现将BT下载时使用的本地端口自动映射到ISA防火墙服务器端口中,这样公网中的其他机器就能通过ISA防火墙端口映射,连接到内网中进行BT下载的机器的本地端口上。

  1.新建计算机集

  首先为局域网中允许进行BT下载的机器新建一个计算机集。在ISA 2004控制台右侧框体中,切换到“网络对象”标签页,点击“新建→计算机集”按钮,弹出“新建计算机集规则元素”对话框,在名称栏中输入“BT用户”,然后点击下方的“添加→计算机”(图1)。假设允许IP地址为“192.168.1.3、192.168.1.5、192.168.1.8”的机器使用BT下载,可以逐一将以上IP地址添加到列表框中,最后点击“确定”按钮。

  2.配置访问规则

  接着还要为网内的BT用户新建一条访问规则,允许它们访问外网。在ISA 2004管理窗口中,右键点击“防火墙策略”,选择“新建→访问规则”,在弹出的访问规则向导框的名称栏中输入“Allow BT”。

  接下来,点击“下一步”按钮,在“规则操作”框中选中“允许”,然后在“协议”框中选择“所有出站通信”,接着指定访问规则源,点击“添加”,在“添加网络实体”框中选择刚才新建的“BT用户”计算机集,点击“下一步”按钮,设置访问规则目标,点击“添加”,在网络实体框中选择“外部”,接着进入“用户集”设置框,选择“所有用户”后点击“完成”按钮。最后在防火墙策略窗口中选中“Allow BT”访问规则,并点击上方的“应用”按钮即可。

  3.配置防火墙客户端

  在ISA 2004管理窗口中点击“配置→常规”,接着在右侧框体中点击“定义防火墙客户端设置”,弹出设置对话框,切换到“应用程序设置”标签页。点击“新建”,弹出“应用程序项目”对话框。这里笔者以“bitcomet”下载工具(BT工具的一种)为例,介绍如何在ISA 2004防火墙中仿真出UPnP功能。在应用程序栏中输入进程名“bitcomet”,在“键”下拉列表框中选择“serverbindtcpports”, 在“值”栏中输入“16777-16779”后点击“确定”,最后在应用程序设置标签页中点击“应用”。其中,“16777-16779”是指BT客户端工具所使用的端口范围,如果和用户使用的不同,就需要在“值”栏中进行相应的修改。

  按上述步骤进行设置之后,ISA 2004防火墙就能仿真出UPnP功能。如果想允许其他客户机进行BT下载,只需要将该客户机的IP地址加入到“BT用户”计算机集即可。

  MSN Messenger文件传输要用到TCP的“6891~6900”端口,而语音、视频交流要用到UDP的“5004~65535”端口。按照上面所介绍的仿真UPnP的步骤进行配置,即可实现MSN Messenger的端口映射,就可解决MSN Messenger无法进行语音聊天和文件传输的问题。

  不足之处:虽然在ISA 2004防火墙中可以仿真出UPnP功能,但并不意味着它能真正实现UPnP功能。每一个UPnP应用程序,都要在ISA 2004防火墙中进行逐一配置,只要UPnP应用程序的端口范围发生了变化,就要对防火墙配置信息进行修改。因此使用ISA 2004防火墙实现UPnP还是比较繁琐的。

  真正实现UPnP

  为了弥补对UPnP支持的不足,有些网络防火墙内置了UPnP功能,如KWF(Kerio WinRoute Firewall,它是一款和ISA 2004相比也毫不逊色的企业级防火墙,功能强大、操作简单)。如果你的局域网使用的是此类防火墙,实现UPnP是非常轻松的,下面e博士以KWF为例,介绍如何实现UPnP功能。

  KWF防火墙已经内置了UPnP功能,但默认状态下并没有启用,需要手工设置。进入KWF控制台窗口,在左侧窗口中依次点击“Configuration→Advanced Options”,然后在右侧窗口的“UPnP Settings”框体中选中“Enable UPnP”选项(图2),接着在“Port mapping timeout”栏中设置端口映射的超时时间值,如设置为“86400”,单位为秒。

  如果想利用KWF的日志功能记录所有的端口映射情况,不妨选中“Log packets”和“Log connections”选项,以后就可以在KWF日志中查看到端口映射的具体信息,最后点击下方的“Apply”按钮即可启用UPnP功能。

  不足之处:一旦启用了KWF的UPnP功能,局域网内所有的机器都可以将本机端口映射到公网中,而且这个操作不需要管理员批准,也就是说网管无法具体控制某台客户机的端口映射。因此,启用UPnP功能会给局域网带来安全隐患,如果你认为局域网的安全才是最重要的,e博士建议你禁用UPnP功能。

  小知识:UPPnP的全称为通用即插即用(Universal Plug and Play)。也就是常说的“网络即插即用”。常见的UPnP应用程序有MSN Messenger、BT工具等。启用UPnP后,运行在内网的UPnP应用程序可以将本地端口自动映射到防火墙的端口上,这样外网的计算机就能通过防火墙的端口映射访问到内网机器的UPnP应用程序端口。正是因为实现了端口映射,所以内网用户的BT下载和MSN Messenger语音聊天、文件传输不会出现问题。