APP下载

80端口开通记

2018-11-07

网络安全和信息化 2018年3期
关键词:因特网IP地址防火墙

应用需求

随着“互联网+”的风生水起,传统企业决策方式、经营思路等诸多方面面临着变革的需要。为了适应这一改变,近期笔者公司要求公司信息化部门开发出一款面向客户的、基于智能手机/平板的移动应用。

对于基于智能手机/平板的移动应用被统称为APP(Application的缩写,应用程序),而这种APP的开发方式目前主要有两种类型:一种是开发一个独立的应用软件,使用者需要先下载安装后才能使用。另一种就是借助某些APP(如微信等)提供的开放接口,在它们的平台上开发一个移动应用,使用者只要下载该APP,就能使用该移动应用。

这两种方式各有优缺点:前一种的好处在于,开发者能够通过编程实现所需的各项功能,但因为智能手机/平板的品牌、硬件配置、操作系统等因素千差万别,需要考虑与所有智能手机/平板设备的兼容性问题,这样才可使推出的应用软件最大限度地适应使用者使用的智能手机/平板设备。而后一种恰恰相反,与智能手机/平板的兼容性问题已经被该类APP解决了,但与此同时应用软件所能实现的功能要受到该类APP所能开放的功能限制,而不是所有开发者想实现的功能都能被满足。

经过认真调研、反复认证、统筹考量,笔者公司信息化部门决定选择在微信公众平台的企业号上来开发这套移动应用APP(以下简称应用APP)。由于微信企业号只是提供了开放的接口和平台,具体功能还要我们自主开发,所以笔者在公司机房内部署了两台虚拟服务器,分别用于部署这套移动应用APP的应用系统和数据库系统。

由于微信公众号的特殊性要求,在对这套应用APP进行编程开发的同时,笔者还同步进行了两个操作:操作一,在阿里云上购买了一个域名,用于微信企业号配置参数时使用;操作二,因为微信企业号的应用是基于80端口的,所以在公司联接因特网的防火墙上增加了一条80端口的NAT(Network Address Translation,网络地址转换)策略,以便将该应用APP的功能与微信企业号上的按钮模块连通起来。

这套应用APP按期完成开发,在进行连通测试阶段时,发现通过因特网访问指定页面时会一直显示“网页无法显示”的错误提示。于是,笔者开始着手进行故障排查,整个排查过程一波三折,最终问题得以解决。

故障现象

基于工作需要,笔者公司在开通因特网链路时,向因特网服务提供商申请了一个固定的因特网出口IP地址。按照预先设计规划,通过互联网(3G/4G移动通信,或电信/移动固定宽带)链路,在计算机或智能手机/平板上的浏览器地址栏中输入网址“http://公司因特网出口IP地址/iisstart.htm”,应该会显示出正确的结果(如图1)。

可当笔者利用笔记本电脑进行测试时,却得到错误提示“无法显示此网页,错误代码:HTTP ERROR-2146697211”(如图2)。

导致这种情况出现的原因无非是:这款应用APP系统本身配置出现问题,或者从因特网到应用APP服务器的链路访问存在故障。

排错第一季

图1 正确页面

图2 错误提示

上述两种原因中的前者是最容易排查的,所以笔者决定由此入手。来到机房,登录到应用APP系统服务器的“桌面”,在IE浏览器上的地址栏中输入网址“http://127.0.0.1/iisstart.htm”,能显示出正确的信息,这就初步说明应用APP系统本身的配置应该没有错误。

接着,将网址更改为“http://服务器IP/iisstart.htm”,显示的结果是相同的,也是正确的,再次证明应用APP系统本身的配置是正确的,也就排除了应用APP系统本身存在问题的可能。

那原因就只会出现在从因特网到应用APP系统服务器的链路上,而这条链路涉及到好几段:应用APP系统服务器到路由器的链路、路由器到防火墙的链路、防火墙到因特网的链路。

笔者公司内部网络按功能划分了若干子网,每个子网通过交换机汇聚了若干终端计算机,然后所有子网交换机和防火墙等安全设备再连接到同一个路由器上。所以。笔者决定本着从易到难的原则,按照由内往外的顺序分段排查。

笔者在其他子网中任选了一台计算机,在IE浏览器的地址栏中输入网址“http://服务器IP/iisstart.htm”,却得到了同样的错误提示“无法显示此网页”。这就说明,在公司内部网络中跨网段访问都不成功,更别说到因特网上了。

接着,在这台计算机上的“命令提示符”窗口中输入“ping 服务器IP -t”命令,得到了正确的反馈值说明这台计算机到应用APP系统服务器的链路是通的,那问题应该还是出在应用APP系统服务器上。

应用APP系统服务器安装的操作系统是Windows Server 2008 Enterprise版,根据以往经验,判断原因很可能是该台服务器上的Windows系统防火墙功能设置上存在问题。再次登录到这台服务器上,打开Windows系统的“Windows防火墙设置”对话框,尝试着在“例外”选项卡中添加了“万维网服务(HTTP)”、“安全万维网服务(HTTPS)”程序和“80”端口(如图3)。

然后,重新回到刚才那台计算机上,再次输入网址“http://服务器IP/iisstart.htm”,出现了正确的信息。笔者又选择了几台不同子网内的计算机进行相同的操作,每次都能显示出正确的信息,“应用APP系统服务器到路由器的链路”的通联问题解决了。

由于路由器与防火墙是通过网线直连的,所以“路由器到防火墙的链路”应该不存在通联问题。故笔者正式排除了前两段链路的问题。

排错第二季

图3 在防火墙中增加例外

接下来需要解决最后一段链路的通联问题——防火墙到因特网的链路。这时笔者想起几年前公司购买了一个OA办公软件,这个软件的开发商前不久免费提供了一个手机端的APP,当时笔者在防火墙上通过“目的NAT”功能将OA办公软件NAT到因特网上,实现了在公司外部能够通过APP访问OA办公软件,当时映射的端口是9090。

这次在防火墙上增加80端口的NAT策略时,是参照9090端口的映射配置“依葫芦画瓢”操作的,所以,只要应用APP系统服务器到防火墙的访问是正常的,就应该能将应用APP的应用NAT到因特网上。

所以,故障点不是出在因特网的出口IP上,就是出在防火墙上。于是找来“tcping64”软件(一款用于tcp监控的辅助工具),利用其“通过运行命令“tcping IP地址 端口号”显示出IP地址上端口的状态”的功能特性,来检查一下公司因特网IP地址上的端口情况。

注:tcping命令执行时的默认端口是80。

首先输入命令“tcping服务器IP”测试应用APP系统服务器上的80端口状况,结果提示“Port is open”(端口打开);接着,输入命令“tcping 公司因特网IP地址 9090”测试OA办公软件上的9090端口的状态,结果同样提示“Port is open”。最后,输入命令“tcping 公司因特网IP地址”测试应用APP需要的80端口,结果却提示“Connection timed out (10060)”(连接超时),也就是说,公司因特网出口IP地址上的80端口是关闭的。

因为公司的因特网出口IP地址是由因特网运营商提供的,所以立刻致电该运营商,告知检测结果,这时才被告知:根据国家相关政策要求,所有因特网出口IP地址的80端口是默认关闭的。如要开通,需要向因特网服务提供商提出书面申请,由他们向当地的通信管理机构申报,获得批准后才能将端口打开。

问题源头看来找到了。立刻按照该运营商的要求,准备好所需的全部书面材料,第一时间提交给他们。等了若干工作日后得到反馈:80端口已经开通。马上再次输入命令“tcping公司因特网IP地址”测试80端口状态,得到的反馈结果是“Port is open”,第三条链路的通联问题似乎解决了。

排错第三季

再次在自己的智能手机上重新测试,可手机浏览器上却仍旧显示“无法显示此网页”的错误提示。按理说不应该再出问题呀,可问题就是存在。静下心来将整个排查过程重新回想一遍,排除了所有可能的故障点后,发觉就剩下防火墙未被检查了,而防火墙与此有关联的也只是NAT转换了。

图4 NAT策略

再次登录防火墙,将检查重点放在防火墙的NAT转换策略上。经仔细核对9090端口和80端口的策略配置,没有发现明显的错误之处。正在不知所措时,突然发NAT转换策略表中还有另外一条80端口的NAT策略,而且优先级比新加的80端口策略还要高(如图4)。

难道是这两条80端口策略冲突了?将那条旧的80端口策略移到最后,并将优先级降到最低。再次用手机进行重新测试,正确的信息终于显示出来了。随后通过多种途径进行连通测试,均能得到正确的信息。

至于那条旧的80端口NAT策略,向部门同事了解后得知,这是其他同事之前做另一项测试后忘记删除而遗留下来的废策略。笔者最后彻底删除了那条旧策略。至此排错过程终于结束了。

经验总结

回顾整个排错过程,从开始发现故障,到故障最终被解决,前后历时了好几个星期,来回反复了很多次,虽然比较辛苦,但收获还是很大的。

第 一 点,Windows Server 2008操作系统的安全策略与之前的Windows系统相比,进行了很大的调整和强化,很多安全设置默认是关闭的,需要手工开启才能正常使用,这一点需要引起大家注意。

第二点,在防火墙上,一个端口的同一类NAT映射只能是一对一的关系,所以不要设置成一对多,否则会产生冲突,从而导致所有映射都失效。

第三点,所有因特网出口IP地址的端口,除了80,还有8080也是默认关闭的,如需开通,同样要向因特网服务提供商提出开通申请。

第四点,在向因特网服务提供商申请开通80端口时,80端口的用途不同(是用于架设网站,还是用于微信公众号这类应用),所需要准备和提交的申请材料上也有所区别。除了必要的申请材料是相同的以外,后者只要向因特网服务提供商提供一份书面说明材料即可,而前者还必须先将网站向国家有关管理部门去申请备案,然后将获得的ICP号一并提交才可(在这个点上,请向当地因特网服务提供商沟通核实,以他们的答复为准)。

猜你喜欢

因特网IP地址防火墙
铁路远动系统几种组网方式IP地址的申请和设置
构建防控金融风险“防火墙”
基于SNMP的IP地址管理系统开发与应用
上网
我爱因特网
下一代防火墙要做的十件事
知识漫画
筑起网吧“防火墙”
通过QQ邮件查看好友IP地址
真正强力四大防火墙