【防火墙技术连载16】强叔侃墙 NAT篇 NAT Server 三十二字真言(上篇)

[复制链接]
发表于 : 2014-5-13 09:45:37 最新回复:2018-07-27 13:46:10
31121 30
强叔侃墙
强叔侃墙 官方号

NAT Server基础篇放出来后,论坛的小伙伴大呼不过瘾。为了感谢大家的支持,强叔挑灯夜战,总算是把三十二字真言的前半段内容给赶制出来了。还记得真言前十六个字的内容吗?―― 一正一反,出入自如;去反存正,自断出路。

一正一反,出入自如

所谓入,是指公网用户访问私网服务器;所谓出,是指私网服务器主动访问公网。下面强叔就要向大家展示下防火墙配置NAT Server后,如何做到公网用户和私网服务器之间的出入自如。以下内容继续围绕基础篇中的组网和配置来展开。

[FW] nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80                       

在基础篇中强叔展示给大家的Server-map表项其实还隐藏了一部分,完整的表项应该是这样的:

Nat Server, any -> 1.1.1.1:9980[10.1.1.2:80]为正向Server-map表项,其作用为入。在公网用户访问服务器时对报文的目的地址做转换。

Nat Server Reverse, 10.1.1.2[1.1.1.1] -> any为反向Server-map表项,其作用为出。当私网服务器主动访问公网时,可以直接使用这个表项将报文的源地址由私网地址转换为公网地址,而不用再单独为服务器配置源NAT策略。这就是防火墙NAT Server做的非常贴心的地方了,一条命令同时打通了私网服务器和公网之间出入两个方向的地址转换通道。

请注意强叔此处的用词,通道前面加上了“地址转换”四个字。没错,不论是正向还是反向Server-map表项,都仅能实现地址转换而已,并不能像ASPFServer-map表项一样打开一个可以绕过安全策略检查的临时通道。因此,公网用户要能访问私网服务器或者服务器要能访问公网,还需要配置正确的域间安全策略。

去反存正,自断出路

顾名思义,去反存正就是删除反向Server-map表项。配置NAT Server时带上no-reverse参数就能让生成的Server-map表项只有正向没有反向。

[FW] nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80 no-reverse               

没有了反向Server-map表项,也就相当于断去了服务器到公网的出路。那何时需要自断出路呢?首先,让我们来看看下面这个案例。

上图中总部有一台服务器需要提供给公网用户访问,于是在总部防火墙上配置了如下的NAT Server

[FW] nat server protocol tcp global 1.1.1.1 9980 inside 192.168.1.2 80                     

同时,总部和分支之间通过IPSec VPN实现互访。总部防火墙IPSec的部分配置如下:

#                                                                             

acl number 3000      //*定义需要进行IPSec封装的数据流*//                              

  rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 10.0.0.0 0.0.0.255               

#                                                                             

ipsec policy map1 10 manual                                                       

 security acl 3000    //*引用acl,只有符合acl3000的数据流才会被送入IPSec隧道封装*//         

 proposal tran1                                                                 

 …                                                                            

因为总部192.168.1.0/24网段员工需要访问公网,所以还配置了如下的源NAT策略:

#                                                                             

nat-policy interzone trust untrust outbound                                          

  policy 5                                                                      

  action source-nat                                                              

  policy source 192.168.1.0 mask 24                                                 

  easy-ip GigabitEthernet0/0/1                                                    

不过仅配置这条源NAT策略是不够的。因为这条源NAT策略会将trust区域中192.168.1.0/24网段发往untrust区域的所有报文的源地址都转换成GE0/0/1接口的地址1.1.1.1。熟悉IPSec的小伙伴们应该知道,报文源地址如果变成了1.1.1.1,就不会匹配到ACL 3000,也就不会进入IPSec隧道进行封装,这样总部就别想通过IPSec VPN和分部之间通信了。所以,除了上面这条源NAT策略,还需要配置一条对总部访问分部的流量不做源地址转换的NAT策略,具体如下:

#                                                                               

nat-policy interzone trust untrust outbound                                         

  policy 0                                                                      

  action no-nat                                                                  

  policy source 192.168.1.0 mask 24                                                 

  policy destination 10.0.0.0 mask 24                                               

注意:上面两条源NAT策略,policy0的匹配条件要比policy5更加严格,所以配置完成后需要确认策略列表中policy0policy5之上。否则报文匹配到条件宽松的policy5后就直接做了源地址转换,而不会再匹配到policy0了。

配置完成后,我们发现了一个很奇怪的现象:分部的员工可以访问总部服务器的私网地址192.168.1.2,总部192.168.1.0/24网段的员工也能正常和分部的10.0.0.0/24网段通信。但总部的服务器却无法访问分部10.0.0.0/24网段的资源,删除NAT Server配置后就能正常访问。

很明显,问题就出在NAT Server上,但因为总部的服务器需要提供给公网用户访问,我们不能随意将NAT Server配置去掉,那该如何解决这个问题呢?下面就让强叔来给小伙伴们分析下根因所在并给出解决办法。

总部Server ping分部PC时,总部的防火墙上可以看到这样一条会话:

<FW> display firewall session table source inside 192.168.1.2                            

  icmp  VPN:public --> public 192.168.1.2:512[1.1.1.1:512]-->10.0.0.2:2048               

可以看出,防火墙将报文的源地址由192.168.1.2转变成了1.1.1.1。但我们明明已经配置了一条对192.168.1.0/24网段发往10.0.0.0/24网段的报文不做源地址转换的NAT策略啊,为什么源地址还是被转换了呢?

我们先使用display nat-policy all命令来查看和确认下源NAT策略的命中情况:

结果显示,确实没有报文命中源NAT策略。

接下来,让我们取消NAT Server的配置,再次从总部Server ping分部的PC1,并查看源NAT策略的命中情况。这时你会发现,有报文命中源NAT策略了!

所以,肯定是配置NAT Server时引入的什么东东先把地址给转换了,导致匹配不到源NAT策略。说到这里,再联想下真言的前八个字,相信小伙伴们已经知道问题所在了吧。没错,幕后的“黑手”正是NAT Server生成反向Server-map表项:

Nat Server Reverse, 192.168.1.2[1.1.1.1] -> any, Zone: ---                              

防火墙的报文处理流程中,反向Server-map表项是比源NAT策略优先匹配的,报文匹配到反向Server-map表项后,源地址被转换为1.1.1.1。这样,报文就不再匹配源NAT策略了。

找到问题的根因所在,解决办法也就有了。配置NAT Server时加上no-reverse参数,不生成反向Server-map表项就可以了。

[FW] nat server protocol tcp global 1.1.1.1 9980 inside 192.168.1.2 80 no-reverse           

当然,no-reverse参数不仅限于这个场景中使用,后面我们还会提到它。小伙伴们只需要记住配置了这个参数后,就不会生成反向Server-map表项这一结论,再根据遇到的具体问题灵活运用即可。

以上就是三十二字真言前半段的所有内容了,不知小伙伴们是否领悟到了其中的真谛?下一期强叔将会向大家解释后半段的含义,敬请期待。

 

强叔提问:

配置NAT ServerASPFServer-map表项会有什么变化呢?小伙伴们可以在自己的设备或者模拟器上实验对比下。

 

 

上一篇 NAT篇 NAT Server 基础篇

下一篇 NAT篇 NAT Server 三十二字真言(下篇)

汇总贴

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
周中斌
周中斌   发表于 2014-9-12 15:06:38 已赞(0) 赞(0)

终于把no-reverse的含义搞清楚了,哈哈
  • x
  • 常规:

点评 回复

x00151571
x00151571   发表于 2014-5-13 09:59:12 已赞(0) 赞(0)

表有点多,会话表,正向/反向Server map,源/目的Server map,强叔不细说还真不清楚这些道道
  • x
  • 常规:

点评 回复

Cai_n
Cai_n   发表于 2014-5-13 10:08:53 已赞(0) 赞(0)

墙叔研究的真透彻,学习了!

  • x
  • 常规:

点评 回复

宝鼎波波
宝鼎波波  精英 发表于 2014-5-13 11:01:24 已赞(0) 赞(0)

学习了,不过我的ensp中路由器一配nat server就死机了
  • x
  • 常规:

点评 回复

shadowboy
shadowboy   发表于 2014-5-13 13:19:48 已赞(0) 赞(0)

一天不看,都到第十六篇了。。。。
  • x
  • 常规:

点评 回复

DoubleDong
DoubleDong   发表于 2014-5-14 22:03:26 已赞(0) 赞(0)

晚上点着蜡烛在看
  • x
  • 常规:

点评 回复

冯海刚
冯海刚  新锐 发表于 2014-9-18 15:50:45 已赞(0) 赞(0)

学习了,谢谢分享
  • x
  • 常规:

点评 回复

visitma
visitma   发表于 2014-5-21 14:08:38 已赞(0) 赞(0)

顶~就算是钻木取火也要把蜡烛点燃了继续看!

  • x
  • 常规:

点评 回复

haitianldy
haitianldy   发表于 2014-6-17 21:51:31 已赞(0) 赞(0)

强叔 您好,我现在手头有个关于组播的项目。在技术手册上了解到,组播数据要想通过防火墙实现外网用户点播内网组播源这一功能,需要配置 组播NAT,配置MSDP对等体,但是组播NAT和对等体具体工作原理不是很清楚。当然其中还涉及到BSR、c-bsr、RP、c-rp、共享树、最短路径树等术语,这些术语我有一个初步的了解了。组播使用PIM-SM。还请强叔给解释下具体工作原理,先行谢过!

大体网络结构是这样的:

防火墙trust域连接视频网即组播源,untrust域连接视频点播网即组播接收者所在的网络。要求视频网内的组播源或称为流媒体服务器发出的组播流可以通过防火墙,将组播流在视频点播网络中组播传输到接收者。视频网内的组播源(媒体服务器)通过NAT Server将视频网内的组播源地址转换成点播网内的IP地址。


  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录