ASA5505::访问列表允许端口列表上的公共 IP(非范围)

ASA5505::访问列表允许端口列表上的公共 IP(非范围)

这可能是一个常见问题,但无法找到解决方案。

问题在于:在 Web 服务器环境中,有一组需要打开的常用端口,例如:21、25、53、80、110、143、3306 等。

我知道如何创建访问列表以允许外部 IP 访问给定端口,以及如何创建静态规则以将端口流量导向目标内部 IP。但是,当你有 15 个公共 IP 时,执行单个 IP + 单个端口规则是一件非常繁琐的工作,因为所有这些 IP 都需要打开完全相同的 20 多个端口。

有没有办法为每个公共 IP 指定一个端口访问列表和相应的静态规则?基本上,我想用 30 行代码(15 个公共 IP X(1 个访问列表 + 1 个静态))而不是 600 行代码来实现这一点!

非常感谢你的想法(在这种情况下,显然如此);-)

答案1

对象组在这里是您的好朋友。假设最坏的情况是您的公共地址块不连续,并且没有直接子网映射到您的私有子网,并且您的外部访问列表的默认名称为outside_access_in您将需要如下配置...

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

我应该提醒一下,由于思科在 natting 方面做了一些重大改变,此配置需要进行一些调整才能在 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

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

答案2

您可以使用static1 对 1 映射 IP。如下所示:

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 打开所有端口。如果您的所有服务器都需要这些端口,那么配置会快得多。

(显然,更改事物的名称以适合您的网站)

答案3

好的,对于访问列表,您可以使用对象组将它们集中在一起。

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

公平警告,我还没有在任何方面测试过这一点。文档中说应该可以正常工作。

相关内容