ASA5505 ::访问列表允许公共IP端口列表(不是范围)

这可能是一个常见问题,但找不到解决scheme。

这里的问题是:在Web服务器环境中,有一组需要打开的公共端口,例如:21,25,53,80,110,143,3306等

我知道如何创build一个访问列表,以允许给定端口上的外部IP和静态规则,以引导端口通信到目标内部IP。 但是,当你有15个公共IP地址,所有这些都需要打开20个完全相同的端口时,这就是很多单调的ip +单端口规则。

是否有一种方法来每个公共IP指定一个端口的访问列表和一个相应的静态规则? 基本上我想用30行(15个公共X(1个访问列表+ 1个静态))和600对这个closures!

想法非常赞赏(在这种情况下,显然);-)

对象组是你的朋友在这里。 假设公共地址块不连续,并且没有直接子网映射到您的私有子网上,并且您的外部访问列表的默认名称为outside_access_in,那么最糟糕的情况是您需要沿着..的方向进行configuration。 。

object-group network my-servers_pub network-object host 1.1.1.1 network-object host 1.1.1.3 network-object host 1.1.1.5 ...etc ...etc network-object host 1.1.1.13 network-object host 1.1.1.15 object-group service my-tcp-ports tcp port-object eq 21 port-object eq 25 port-object eq 80 port-object eq 110 port-object eq 143 port-object eq 3306 object-group service my-udp-ports udp port-object eq 53 static (inside,outside) 1.1.1.1 192.168.1.2 static (inside,outside) 1.1.1.3 192.168.1.4 static (inside,outside) 1.1.1.5 192.168.1.7 ...etc ...etc static (inside,outside) 1.1.1.13 192.168.1.14 static (inside,outside) 1.1.1.15 192.168.1.16 access-list outside_access_in permit tcp any object-group my-servers_pub object-group my-tcp-ports access-list outside_access_in permit udp any object-group my-servers_pub object-group my-udp-ports 

我应该警惕的是,由于思科围绕NAT进行的一些重大改变,这个configuration将需要对ASA 8.3及更高版本进行一些调整。

如果您足够幸运,可以拥有连续的公共地址空间,并且1:1主机映射可以将对象组和静态内容压缩到子网中:

 object-group network my-servers_pub network-object 1.1.1.0 255.255.255.240 static (inside,outside) 1.1.1.0 192.168.1.0 netmask 255.255.255.240 

在这种情况下,你甚至不需要为外部主机提供对象组,但是我这样做只是为了保持一致。

您可以使用static来映射IP 1对1。 喜欢这个:

 static (inside,outside) 1.2.3.1 192.168.0.1 netmask 255.255.255.255 static (inside,outside) 1.2.3.2 192.168.0.2 netmask 255.255.255.255 static (inside,outside) 1.2.3.3 192.168.0.3 netmask 255.255.255.255 

(如果映射按照例子的顺序,这些可以被压缩)

然后有一个单一的访问列表,如:

 access-list Outside_In ext permit tcp any any eq 21 access-list Outside_In ext permit tcp any any eq 25 access-list Outside_In ext permit tcp any any eq 53 access-group Outside_In in int Outside 

警告! 这将打开所有映射IP的所有端口。 如果你的所有服务器都需要这些端口,那么configuration要快得多。

(显然改变的东西的名称是适合您的网站)

确定访问列表,你可以使用对象组合在一起。

 object-group network TAG network-object 192.168.1.2 255.255.255.255 network-object 192.168.1.3 255.255.255.255 network-object 192.168.1.4 255.255.255.255 network-object 192.168.1.5 255.255.255.255 object-group protocol PROTO_TAG protocol-object tcp 80 access-list NAT_ME permit ip object-group TAG eq object-group PROTO_TAG static (outside,inside) IP access-list NAT_ME 

公平的警告我没有testing过任何东西。 这是文件说的应该工作。