在ASA 8.4上NAT一个公有IP到两个内部服务器

比如我想:

NAT 5.5.5.5 tcp 85 to 192.168.1.5 tcp 85 NAT 5.5.5.5 tcp 33 to 192.168.1.9 tcp 33 NAT 6.6.6.6 tcp 80 443 to 192.168.1.20 tcp 80 443 

我打算这样做的方式是:

 object obj-192.168.1.5 host 192.168.1.5 nat (inside,outside) static 5.5.5.5 service tcp 85 85 object obj-192.168.1.9 host 192.168.1.9 nat (inside,outside) static 5.5.5.5 service tcp 33 33 object obj-192.168.1.20 host 192.168.1.9 nat (inside,outside) static 6.6.6.6. ???? 

然后添加一个ACL来允许stream量进入。我不知道如何创build一个服务组并将其应用到NAT,它似乎只允许您一次input一个端口。

任何想法如何做到这一点?

ASA 8.3和ASA OS在很大程度上改变了NAT。

如果要在对象configuration模式(在对象内)定义NAT行为,则称为对象NAT。 如果在全局configuration模式下定义NAT行为,则将其称为两次NAT。 请务必阅读NAT上的8.4 CLI指南部分

在对象NAT中,每个对象只能使用一个单独的NAT 语句 。 因此,如果你想实现静态PAT(按照外行人的口令转发),你将需要为每个要转发的端口创build一个对象 – 无论是对同一个内部主机还是不同的内部主机。

以下是我如何configuration静态PAT的大纲。 静态NAT的过程是相同的,但省略步骤2。

  1. 为内部/内部主机创build一个主机object 。 如果此主机将用于静态PAT,则不要在此object上使用nat语句。 (在静态NAT的情况下,应该在这个对象上使用一个nat语句。)

  2. 创build另一个主机object用于每个静态PAT到内部主机。 命名是非常重要的,因为一个nat语句将在这个对象上。 在这个对象上使用nat语句来转发端口/服务。

  3. 为所有转发/允许进入内部/内部主机的“端口/服务”创build一个types为serviceobject-group 。 这个object-group 不是用于NAT / PAT的目的,而是用于后面的ACL。

  4. 通过在object定义的NAT(静态PAT)规则,将ACL要求放在一个access-list

下面是一个例子,包括你自己的例子中的以下内容:

  • 从一个外部IP到两个内部IP /主机的静态PAT两项服务。
  • 从一个外部IP到一个内部IP /主机的静态PAT两项服务。
  • (增加)静态NAT从一个外部IP到一个内部IP /主机的ACL允许5个服务。

例:

 object network hst-192.168.1.5 host 192.168.1.5 description Server1 Host Object object network hst-192.168.1.5-tcp85 host 192.168.1.5 description Server1 TCP/85 Static PAT Object nat (inside,outside) static 5.5.5.5 service tcp 85 85 object network hst-192.168.1.9 host 192.168.1.9 description Server2 Host Object object network hst-192.168.1.9-tcp33 host 192.168.1.9 description Server2 TCP/33 Static PAT Object nat (inside,outside) static 5.5.5.5 service tcp 33 33 object network hst-192.168.1.20 host 192.168.1.20 description Server3 Host Object object network hst-192.168.1.20-tcp80 host 192.168.1.20 description Server3 TCP/80 Static PAT Object nat (inside,outside) static 6.6.6.6 service tcp 80 80 object network hst-192.168.1.20-tcp443 host 192.168.1.20 description Server3 TCP/443 Static PAT Object nat (inside,outside) static 6.6.6.6 service tcp 443 443 object network hst-192.168.1.30 host 192.168.1.30 description Server4 Host Object (and Static NAT) nat (inside,outside) static 7.7.7.7 object-group service svcgrp-192.168.1.5-tcp tcp port-object eq 85 object-group service svcgrp-192.168.1.9-tcp tcp port-object eq 33 object-group service svcgrp-192.168.1.9-tcp tcp port-object eq 80 port-object eq 443 object-group service svcgrp-192.168.1.30-tcp tcp port-object eq 20 port-object eq 21 port-object eq 22 port-object eq 80 port-object eq 443 access-list outside_access_in extended permit tcp any object hst-192.168.1.5 object-group svcgrp-192.168.1.5-tcp access-list outside_access_in extended permit tcp any object hst-192.168.1.9 object-group svcgrp-192.168.1.9-tcp access-list outside_access_in extended permit tcp any object hst-192.168.1.20 object-group svcgrp-192.168.1.20-tcp access-list outside_access_in extended permit tcp any object hst-192.168.1.30 object-group svcgrp-192.168.1.30-tcp access-group outside_access_in in interface outside 

从这个例子(以及一般的新的NAT风格)中可以看出的是:

  • 静态PAT似乎比应该多一点 – 特别是涉及到许多不同的服务/端口的转发。
  • 静态NAT – 在networking对象模式下要简单得多。 如果完全使用对象(对于主机和服务组),“允许”更多端口可以像向服务组添加条目那样简单。
  • 由于其简单性,尽可能使用静态NAT。
  • 如果您没有命名惯例/标准 – 您的configuration将失去控制,很难快速阅读。

每个'nat'行只能用于单个端口或全部端口(任何)。 做两个端口的翻译需要两行。

 object obj-192.168.1.20 host 192.168.1.9 nat (inside,outside) static 6.6.6.6 service tcp 80 80 nat (inside,outside) static 6.6.6.6 service tcp 443 443