设为首页 收藏本站
查看: 1252|回复: 0

[经验分享] NAT篇 NAT Server 三十二字真言(上篇)

[复制链接]

尚未签到

发表于 2018-10-23 12:36:03 | 显示全部楼层 |阅读模式
  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表项,都仅能实现地址转换而已,并不能像ASPF的Server-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 ***实现互访。总部防火墙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 ***和分部之间通信了。所以,除了上面这条源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时,总部的防火墙上可以看到这样一条会话:
   display firewall session table source inside 192.168.1.2                           
  icmp  ***: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策略了。
  找到问题的根因所在,解决办法也就有了。配置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表项这一结论,再根据遇到的具体问题灵活运用即可。
  以上就是三十二字真言前半段的所有内容了,不知小伙伴们是否领悟到了其中的真谛?下一期强叔将会向大家解释后半段的含义,敬请期待。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-625472-1-1.html 上篇帖子: win2008server nslookup address-1::tiaozhan1000 下篇帖子: NAT篇 NAT Server 三十二字真言(下篇)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表