Os grupos de objetos são seus amigos aqui. Supondo um cenário de pior caso em que seu bloco de endereço público não é contíguo e não há um mapeamento de sub-rede direto em sua sub-rede privada e que sua lista de acesso externa tem o nome padrão outside_access_in , será necessário configuração ao longo das linhas de ...
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
Eu devo advertir que essa configuração precisará de alguns ajustes para funcionar no ASA versão 8.3 e acima, devido a algumas mudanças significativas que a Cisco fez com relação ao natting.
Se você tiver a sorte de ter espaço de endereço público contíguo e um mapeamento de host 1: 1, poderá condensar os grupos de objetos & estática em sub-redes:
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
Você nem precisaria do grupo de objetos para seus hosts externos nesse cenário, mas fiz isso dessa forma apenas para mantê-lo consistente.