端口映射让外部用户同时访问内部多个应用

端口映射让外部用户同时访问内部多个应用

 

如下图所示,这是企业部署 NAT 服务器的典型案例。如果现在企业内部有两台服务器,分别为 WEB 服务器 (192.168.0.3) ERP 服务器 (192.168.0.2) 。现在企业想让出差在外的员工,也可以通过互联网访问企业内部的这两个应用,该如何设计呢 ?

 

    一、基于端口访问的一般原理。

  在讲解 NAT 服务器的具体端口映射配置之前,笔者觉得读者有必要先了解一下基于端口访问的一般原理。这有利于读者了解下面的具体配置。下面笔者以员工访问 WEB 服务器为例,谈谈基于端口访问的基本步骤。假设现在某个用户需要访问 WEB 服务器,则客户端的浏览器 ( 假设采用的端口为 3000) WEB 服务器 ( 假设采用的端口为 80) 是如何来进行通信的呢 ?

  第一步:发起连接请求。当用户需要查看公司网页时,用户所用的主机会像 WEB 服务器发送请求。在这个发起请求的过程中,会有一些参数传递。如在发送请求的过程中,用户所用的主机需要知道 WEB 服务器的 IP 地址、所采用的协议 (HTTP) 等。另外就是两个端口信息。一是用户浏览器所用的端口,即为 3000 。二是 WEB 服务器网站所用的端口 ( 如果采用的是 HTTP 服务,则默认为 80 端口 )

  第二步: WEB 服务器转发请求。当服务器接受到这个请求后,会分析数据包。他经过分析包发现,这个请求是要求端口为 80 的应用软件来负责的。服务器确定了负责人之后,就会把这个请求转发给具体的负责人,即 WEB 应用服务器来处理。

  第三步:服务器会把从 WEB 应用服务那边反馈回来的网页传送给用户所用的计算机。在传送的时候,其也会制定要把这个网页给你的那个 3000 端口 ( 浏览器 ) 对应的应用软件。

第四步:用户的计算机收到数据包之后,也会对这个数据包进行分析,来判断需要把这个数据包转发给哪个端口 ( 应用服务 ) 。分析后发现是转交给 3000 端口的,就会把这个数据包转发给浏览器。

 

  二、基于端口映射的 NAT 服务器配置。

  其实基于端口映射的 NAT 服务器其工作原理就跟上面这个基于端口访问的工作过程类似。只是这里的 NAT 服务器就相当于用户主机,而用户相当于内部的服务器。由于用户需要通过外网访问企业内部应用的话,通常情况下要求内网服务器也要求有合法的外网 IP 。只有私网 IP 地址的服务器是无法直接跟外部客户进行通信的。为此,如果没有端口映射的话,用户如果要同时访问内部的 WEB 服务器与 ERP 服务器,则就需要有两个公网 IP 地址。但是,大家都知道现在公网 IP 地址严重缺乏。在没有足够多的 IP 地址的情况下,该如何实现这种需求呢 ? 那就知道通过端口映射来完成。

  如上图所示,用户需要访问企业内部的 WEB 服务与 ERP 服务器,他只需要知道 NAT 服务地址与 WEB 服务器与 ERP 服务器所采用的端口即可。如果 WEB 服务器采用的端口为 80 ,而 ERP 服务器所采用的端口为 5050 。而 NAT 服务器的 IP 地址假设为 202.96.92.100 的话,那么当用户访问 WEB 服务器时,只需要输入 http:// 202.96.92.100 即可。由于 HTTP 协议默认采用的是 80 端口,故这里不用配置端口号。如果 WEB 服务器中把这个端口改为了 3000 ,则在访问的时候就需要使用 http:// 202.96.92.100:3000( 地址 + 端口号 ) 的形式了。用户要访问内部的 ERP 服务器也是类似的,只要把 NAT 服务器的地址以及 ERP 服务器所采用的端口在客户端上进行配置即可。

  可见通过 NAT 服务器的端口映射功能,可以让外部用户同时访问企业内部的 WEB 服务器与 ERP 服务器。那要实现这个需求具体该如何配置呢 ?

   NAT 服务器让内部的局域网用户可以连接到互联网,以便用户能够收发互联网邮件、浏览互联网上的网站等等。但是默认情况下外部用户是不能够访问内部的服务器。如果需要实现以上功能的话,就需要进行专门的配置。

  如上图中,内部局域网计算机 (192.168.0.2) WEB 服务器,其采用的端口为 80 。如果现在外部用户需要访问这个 WEB 服务器站点,则用户只知道这个 WEB 服务器的地址为 202.96.92.100(NAT 服务器的地址 ) 。而 WEB 服务器默认采用的端口为 80 。当外部用户通过浏览器访问企业内部的 WEB 服务器时,他会在浏览器中输入 http:// 202.96.92.100 路经来连接网站。 NAT 服务器会将此请求发送给内部的计算机 WEB 服务器 (192.168.0.2) ,并由 WEB 服务器将这个请求转发给端口为 80 的软件来负责。 WEB 服务器会将网页传送给 NAT 服务器,再由 NAT 服务器负责将网页传送给外部用户的计算机。如果用户要访问内部的 ERP 服务器,其过程也是如此。那么现在的问题是, NAT 服务器怎么判断要把用户 HTTP 请求发送给服务器 (192.168.0.2) 而不是发送给 (192.168.0.3) ?

这主要是根据端口来判断的。也就是说在 NAT 服务器中有一个端口映射的规则,只要用户访问的目的端口是 80 ,就把这个请求转发给 WEB 服务器 ; 若请求的端口是 5050 ,则就把这个请求发送给 ERP 服务器。这就是端口映射的实质。了解这个内容之后,那么了解下面的配置也就简单多了。

打开路由和远程访问主控制窗口,选择要配置的服务器。然后选择 IP 路由选择、 NAT/ 基本防火墙。并双击右方对外连接的网络接口 ( 注意这里不要选择连接内网的网络接口 ) ,选择服务和端口标签。然后直接从服务列表中选取要对外开发的服务,如选择 WEB 服务器。在公用地址中选择在此接口,表示由互联网服务提供商指派的 NAT 服务器的公网 IP 地址。然后再设置,如果把这个服务请求转发给内部的 IP 地址为 192.168.0.2 WEB 服务器。通过这个简单的配置,就实现基于端口的映射。

    三、改善 NAT 服务器的性能与便利性。

  可见这个端口映射配置是很简单的。但是其难点在于如何提高这个 NAT 服务器的性能,如何让用户使用的更加方便。这是网络管理员所需要考虑的。对此笔者有如下几个建议可供大家参考。

   1 、利用域名来代替 IP 地址。当用户访问企业内部的网站服务器时,如果让他们输入服务器的 IP 地址,对普通用户来说可能有点难度。要记住这 202.96.92.100 十一个没有丝毫关系的数字有很大的难度。如果能够把这个 IP 地址转换为有实际意义的网址那就最好了。在企业内部,可以自己部属一个 DNS 服务器,把 IP 地址转换为网址。那么内部员工可以直接通过网址来访问 WEB 服务器。但是在互联网上,企业可不能自己随便定义域名。为了提高用户访问的便捷性,企业网络管理员最好能够像当地的域名注册机构,申请一个合适的域名并关联到自己的 NAT 服务器公网 IP 地址。那么以后外部用户访问内部 WEB 服务器时,只需要输入像新浪那样的地址就可以了。而不用输入这些难以记忆的地址。

   2 、如果企业可以申请到多个 IP 地址的话,那么最好能够分开来部署。即企业可以申请两个 ADSL 帐号。其中一个专门用来连接内部的服务器 ; 而另外一个用来内部员工跟互联网的通信。这么做主要是为了减轻 NAT 服务器的压力,提高其性能。如企业只有一个 ADSL 帐号的话,那么无论是外部用户访问企业内部服务器 ; 还是企业内部员工访问互联网,其数据流都要通过这台 NAT 服务器来处理。为此,如果企业数据流量比较大或者 NAT 服务器配置不怎么理想的话,那么很可能这个 NAT 服务器就成为了企业网络访问的瓶颈资源。如果把他们分开,则可以减轻 NAT 服务器的压力,提高外部用户访问企业内部服务器的效率。

   3 、配置合适的 ICMP 数据包策略,以加强阻挡黑客利用 ICMP 的攻击行为。使用 ICMP 攻击的原理实际上就是通过 Ping 大量的数据包使得 NAT 服务器的 CPU 使用率居高不下而崩溃。一般情况下黑客通常在一个时段内连续向计算机发出大量请求而导致 CPU 占用率太高而死机。而且会使用多台肉鸡同时向 NAT 服务器发送数据包。基于 ICMP 的攻击可以分为两大类,一是 ICMP 攻击导致拒绝服务 ; 另外一个是基于重定向的路由欺骗技术。无论是哪一类攻击,都会给 NAT 服务器产生致命的影响。为此为了 NAT 服务器的安全,最好配置合适的 ICMP 包策略。如可以拒绝响应别人的 ICMP 请求。如此攻击者就无法对 NAT 服务器发起 ICMP 攻击了。

 

猜你喜欢

转载自576017120.iteye.com/blog/1558814