Basic ASA Configuração NAT: Servidor Web na DMZ na ASA Versão 8.3 e, mais Tarde,

Introdução

Este documento fornece uma maneira simples e simples exemplo de como configurar o NAT (Network Address Translation) e Listas de Controle de Acesso (ACLs) em um Firewall ASA, a fim de permitir a saída, bem como a entrada de conectividade. Este documento foi escrito com um firewall adaptativo de segurança (ASA) 5510 do que executa o código ASA versão 9.1(1), mas isto pode facilmente aplicar-se a qualquer outra plataforma de firewall ASA. Se você usar uma plataforma como um ASA 5505, que usa VLANs em vez de uma interface física, você precisa mudar os tipos de interface conforme apropriado.

pré-Requisitos

Requisitos

não Existem requisitos específicos para este documento.

Componentes Utilizados

a informação contida neste documento baseia-se numa firewall ASA 5510 que funciona como código versão 9.1(1).

a informação neste documento foi criada a partir dos dispositivos em um ambiente de laboratório específico. Todos os dispositivos usados neste documento começaram com uma configuração limpa (por omissão). Se a sua rede estiver ao vivo, certifique-se de que compreende o impacto potencial de qualquer comando.

Visão

Objetivos

neste exemplo de configuração, você pode olhar para o que NAT e configuração de ACL será necessária para permitir o acesso de entrada para um servidor web na DMZ de um firewall ASA, e permitir a saída da conectividade interna e a DMZ hosts. Isto pode ser resumido como dois objetivos:

  1. permitir hosts no interior e DMZ conectividade de saída para a Internet.
  2. permitir hosts na Internet para acessar um servidor web na DMZ com um endereço IP de 192.168.1.100.

Antes de chegar aos passos que devem ser completados a fim de alcançar estes dois objetivos, este documento vai brevemente sobre a forma como ACLs e NAT trabalham nas versões mais recentes do Código ASA (versão 8.3 e mais tarde).

Visão Geral da lista de controlo de acesso

listas de controlo de acesso (listas de acesso ou ACLs para abreviar) são o método pelo qual a Firewall ASA determina se o tráfego é permitido ou negado. Por padrão, o tráfego que passa de um nível de segurança menor para maior é negado. Isto pode ser substituído por uma ACL aplicada a essa interface de segurança mais baixa. Também o ASA, por padrão, permite o tráfego de interfaces de maior para menor segurança. Este comportamento também pode ser sobreposto com um ACL.

em versões anteriores do Código ASA (8.2 e anteriores), o ASA comparou uma ligação ou pacote de entrada contra o ACL em uma interface sem destrancar o pacote primeiro. Em outras palavras, o ACL tinha que permitir o pacote como se você fosse capturar esse pacote na interface. Na versão 8.3 e mais tarde código, o ASA destranca o pacote antes de verificar a interface ACLs. Isto significa que para o código 8.3 e posterior, e este documento, o tráfego para o IP real do host é permitido e não o IP traduzido do host.

veja a secção Configurar as regras de acesso do Livro 2: Cisco ASA Series Firewall CLI Configuration Guide, 9.1 para mais informações sobre ACLs.

NAT Overview

NAT on the ASA in version 8.3 and later is broken into two types known as Auto NAT (Object NAT) and Manual NAT (Twice NAT). O primeiro dos dois, objeto NAT, é configurado dentro da definição de um objeto de rede. Um exemplo disso é fornecido mais tarde neste documento. Uma das principais vantagens deste método NAT é que o ASA ordena automaticamente as regras de processamento para evitar conflitos. Esta é a forma mais fácil de NAT, mas com essa facilidade vem uma limitação na granularidade de configuração. Por exemplo, você não pode tomar uma decisão de tradução com base no destino no pacote como você poderia com o segundo tipo de NAT, manual Nat. O manual NAT é mais robusto em sua granularidade, mas requer que as linhas sejam configuradas na ordem correta para que possa alcançar o comportamento correto. Isto complica este tipo de NAT, e como resultado não será usado neste exemplo de configuração.

veja a informação sobre a secção NAT do Livro 2: Cisco ASA Series Firewall CLI Configuration Guide, 9.1 para mais informações sobre NAT.

configurar

iniciar

a configuração básica do ASA é três interfaces ligadas a três segmentos de rede. O segmento de rede ISP está conectado à interface Ethernet0/0 e marcado para fora com um nível de segurança de 0. A rede interna foi conectada à Ethernet0 / 1 e rotulada como dentro com um nível de segurança de 100. O segmento DMZ, onde reside o servidor web, está conectado a Ethernet0 / 2 e rotulado como DMZ com um nível de segurança de 50.

a configuração da interface e os endereços IP, por exemplo, são vistos aqui:

interface Ethernet0/0
nameif outside
security-level 0
ip address 198.51.100.100 255.255.255.0
!
interface Ethernet0/1
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!
interface Ethernet0/2
nameif dmz
security-level 50
ip address 192.168.1.1 255.255.255.0
!
route outside 0.0.0.0 0.0.0.0 198.51.100.1

aqui você pode ver que a interface interna do ASA está definida com o endereço IP de 192.168.0.1, e é o gateway padrão para as máquinas internas. A interface externa do ASA é configurada com um endereço IP obtido do ISP. Há uma rota padrão no lugar, que define o próximo-hop para ser o gateway ISP. Se você usar DHCP isto é fornecido automaticamente. A interface DMZ é configurada com o endereço IP de 192.168.1.1, e é o gateway padrão para hosts no segmento de rede DMZ.

topologia

:

Passo 1 – Configurar o NAT para Permitir que Hosts de Ir para a Internet

Para este exemplo de Objeto de NAT, também conhecido como AutoNAT, é usado. A primeira coisa a configurar é as regras NAT que permitem que os hosts nos segmentos interno e DMZ se conectem à Internet. Como estes hosts usam endereços IP privados, você precisa traduzi-los para algo que é roteável na Internet. Neste caso, traduza os endereços para que se pareçam com o endereço IP da interface externa do ASA. Se o seu IP externo muda frequentemente (talvez devido ao DHCP) esta é a maneira mais direta de configurar isso.

para configurar este NAT, você precisa criar um objeto de rede que representa a sub-rede interna, bem como um que representa a sub-rede DMZ. Em cada um desses objetos, configure uma regra nat dinâmica que irá portar a tradução de endereço (PAT) esses clientes à medida que passam de suas respectivas interfaces para a interface externa.

esta configuração parece semelhante a esta:

object network inside-subnet
subnet 192.168.0.0 255.255.255.0
nat (inside,outside) dynamic interface
!
object network dmz-subnet
subnet 192.168.1.0 255.255.255.0
nat (dmz,outside) dynamic interface

se olhar para a configuração em execução neste ponto (com o resultado do comando Mostrar executar), irá ver que a definição do objecto está dividida em duas partes do resultado. A primeira parte indica apenas o que está no objeto (máquina/sub-rede, endereço IP, e assim por diante), enquanto a segunda seção mostra que a regra NAT está ligada a esse objeto. Se você pegar o primeiro item no resultado anterior:

quando as máquinas coincidem com a sub-rede 192.168.0.0/24 da interface interna para a interface externa, você quer traduzi-las dinamicamente para a interface externa.

Passo 2 – Configurar o NAT para Acessar o Servidor da Web a partir da Internet

Agora que o hospeda no interior e DMZ interfaces pode sair para a Internet, você precisará modificar a configuração para que os usuários da Internet podem acessar o nosso servidor web na porta TCP 80. Neste exemplo, a configuração é para que as pessoas na Internet podem se conectar a outro endereço IP que o ISP forneceu, um endereço IP adicional que possuímos. Para este exemplo, use 198.51.100.101. Com esta configuração, os usuários na Internet serão capazes de alcançar o servidor web DMZ acessando 198.51.100.101 na porta tcp 80. Use o objeto NAT para esta tarefa, e o ASA irá traduzir a porta tcp 80 no servidor web (192.168.1.100) para se parecer com 198.51.100.101 na porta tcp 80 no exterior. Similarmente ao que foi feito anteriormente, defina um objeto e defina regras de tradução para esse objeto. Além disso, defina um segundo objeto para representar o IP para o qual você irá traduzir este host.

esta configuração parece semelhante a esta:

object network webserver-external-ip
host 198.51.100.101
!
object network webserver
host 192.168.1.100
nat (dmz,outside) static webserver-external-ip service tcp www www

apenas para resumir o que essa regra NAT significa neste exemplo:

quando uma máquina corresponde ao endereço IP 192.168.1.100 nos segmentos DMZ estabelece uma conexão obtida a partir do Porto tcp 80 (www) e essa conexão sai pela interface externa, você quer traduzir isso para o porto tcp 80 (www) na interface externa e traduzir esse endereço IP para 198.51.100.101.Isso parece um pouco estranho… “sourced from TCP port 80 (www)”, but web traffic is destined to port 80. É importante compreender que estas regras NAT são de natureza bidirecional. Como resultado, você pode mudar o texto para reformular esta frase. O resultado faz muito mais sentido.:

quando as máquinas do lado de fora estabelecerem uma ligação a 198.51.100.101 no porto de destino tcp 80 (www), irá traduzir o endereço IP de destino para 192.168.100 e o porto de destino será o porto tcp 80 (www) e enviá-lo-á para a DMZ.

isto faz mais sentido quando formulado desta forma. A seguir, tens de preparar o SCA.

Passo 3-Configurar ACLs

NAT está configurado e o fim desta configuração está próximo. Lembre-se, o ACLs no ASA permite-lhe sobrepor o comportamento de segurança por omissão, que é o seguinte::

  • tráfego que vai de uma interface de segurança mais baixa é negado quando vai para uma interface de segurança mais elevada.
  • tráfego que vai de uma interface de segurança mais elevada é permitido quando vai para uma interface de segurança mais baixa.

assim, sem a adição de quaisquer ACLs à configuração, este tráfego no exemplo funciona:

  • Hosts no interior (nível de segurança 100) pode se conectar a hosts na DMZ (nível de segurança 50).
  • Hosts on the inside (security level 100) can connect to hosts on the outside (security level 0).
  • Hosts on the DMZ (security level 50) can connect to hosts on the outside (security level 0).

no entanto, este tráfego é negado:

  • máquinas no exterior (nível de Segurança 0) não se podem ligar a máquinas no interior (nível de segurança 100).
  • Hosts no exterior (nível de Segurança 0) não podem se conectar a hosts na DMZ (nível de segurança 50).
  • Hosts on the DMZ (security level 50) cannot connect to hosts on the inside (security level 100).

como o tráfego de fora para a rede DMZ é negado pelo ASA com sua configuração atual, os usuários na Internet não podem alcançar o servidor web, apesar da configuração NAT no Passo 2. Você precisa permitir explicitamente este tráfego. Em 8.3 e Código posterior você deve usar o IP real do host no ACL e não o IP traduzido. Isto significa que a configuração precisa permitir o tráfego destinado a 192.168.1.100 e não o tráfego destinado a 198.51.100.101 no porto 80. Por uma questão de simplicidade, os objetos definidos no Passo 2 serão usados para este ACL também. Uma vez que o ACL é criado, você precisa aplicá-lo em entrada na interface externa.

aqui está como esses comandos de configuração se parecem:

access-list outside_acl extended permit tcp any object webserver eq www
!
access-group outside_acl in interface outside

os estados da linha da lista de acesso:

permitir o tráfego de qualquer (onde) para a máquina representada pelo servidor web do objecto (192.168.1.100) no porto 80.

é importante que a configuração Use qualquer palavra-chave aqui. Como o endereço IP de origem dos clientes não é conhecido como ele chega ao seu site, especifique qualquer significado “qualquer endereço IP”.

e o tráfego do segmento DMZ destinado a hospedeiros no segmento de rede interna? Por exemplo, um servidor na rede interna a que as hosts na DMZ precisam se conectar. Como pode o ASA permitir apenas esse tráfego específico destinado ao servidor interno e bloquear tudo o resto destinado ao segmento interno da DMZ?

neste exemplo, assume-se que existe um servidor DNS na rede interna no endereço IP 192.168.0.53 que as máquinas na DMZ precisam acessar para resolução DNS. Você cria a ACL necessária e aplica-a na interface DMZ para que o ASA possa anular esse comportamento de segurança padrão, mencionado anteriormente, para o tráfego que entra nessa interface.

aqui está como esses comandos de configuração se parecem:

object network dns-server
host 192.168.0.53
!
access-list dmz_acl extended permit udp any object dns-server eq domain
access-list dmz_acl extended deny ip any object inside-subnet
access-list dmz_acl extended permit ip any any
!
access-group dmz_acl in interface dmz

o ACL é mais complexo do que simplesmente permitir que o tráfego para o servidor DNS na porta UDP 53. Se tudo o que fizemos foi a primeira linha de “licença”, Então todo o tráfego seria bloqueado da DMZ para hosts na Internet. O ACLs tem um implícito “negue ip any” no final do ACL. Como resultado, seus hosts DMZ não seriam capazes de sair para a Internet. Mesmo que o tráfego da DMZ para o exterior é permitido por padrão, com a aplicação de um ACL para a interface DMZ, esses comportamentos de segurança padrão para a interface DMZ não estão mais em vigor e você deve permitir explicitamente o tráfego na interface ACL.

Step 4 – Test Configuration with the Packet Tracer Feature

Now that the configuration is completed, you need to test it in order to make sure it works. O método mais fácil é usar máquinas reais (se esta é a sua rede). No entanto, no interesse de testar isso a partir do CLI e explorar ainda mais algumas das ferramentas do ASA, use o rastreador de pacotes a fim de testar e potencialmente depurar quaisquer problemas encontrados.

Rastreador de pacotes funciona simulando um pacote baseado em uma série de parâmetros e injetando esse pacote para o caminho de dados da interface, similar ao que um pacote da vida real faria se fosse pego do fio. Este pacote é seguido através da miríade de verificações e processos que são feitos à medida que passa através da firewall, e rastreador de pacotes nota o resultado. Simule o hospedeiro interno indo para um host na Internet. O comando abaixo instrui a firewall para:

simula um pacote TCP vindo na interface interna do endereço IP 192.168.0.125 na porta fonte 12345 destinado a um endereço IP de 203.0.113.1 na porta 80.

ciscoasa# packet-tracer input inside tcp 192.168.0.125 12345 203.0.113.1 80
Phase: 1
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
MAC Access list
Phase: 2
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config:Additional Information:
in 0.0.0.0 0.0.0.0 outsidePhase: 3
Type: NAT
Subtype:
Result: ALLOW
Config:
object network inside-subnet
nat (inside,outside) dynamic interface
Additional Information:
Dynamic translate 192.168.0.125/12345 to 198.51.100.100/12345
Phase: 4
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 5
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 6
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 7
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 8
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 1, packet dispatched to next module
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow

o resultado final é que o tráfego é permitido, o que significa que passou todas as verificações NAT e ACL na configuração e foi enviado para fora a interface de saída, fora. Note que o pacote foi traduzido na fase 3 e os detalhes dessa fase mostram qual regra é atingida. A máquina 192.168.0.125 é traduzido dinamicamente para 198.51.100.100 de acordo com a configuração.

now, run it for a connection from the Internet to the web server. Lembre-se, hosts na Internet vai acessar o servidor web conectando-se a 198.51.100.101 na interface externa. Mais uma vez, este próximo comando traduz para:

simular um pacote TCP vindo na interface externa do endereço IP 192.0.2.123 na porta fonte 12345 destinado a um endereço IP de 198.51.100.101 na porta 80.

ciscoasa# packet-tracer input outside tcp 192.0.2.123 12345 198.51.100.101 80
Phase: 1
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
object network webserver
nat (dmz,outside) static webserver-external-ip service tcp www www
Additional Information:
NAT divert to egress interface dmz
Untranslate 198.51.100.101/80 to 192.168.1.100/80
Phase: 2
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group outside_acl in interface outside
access-list outside_acl extended permit tcp any object webserver eq www
Additional Information:
Phase: 3
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 4
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 5
Type: NAT
Subtype: rpf-check
Result: ALLOW
Config:
object network webserver
nat (dmz,outside) static webserver-external-ip service tcp www www
Additional Information:
Phase: 6
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 7
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 8
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 3, packet dispatched to next module
Result:
input-interface: outside
input-status: up
input-line-status: up
output-interface: dmz
output-status: up
output-line-status: up
Action: allow

mais uma vez, o resultado é que o pacote é permitido. O ACLs verificar, a configuração parece bem, e os usuários na Internet (fora) deve ser capaz de acessar esse servidor web com o IP externo.

verificar

os procedimentos de verificação estão incluídos na configuração de teste da Etapa 4 com a funcionalidade de rastreador de pacotes.

Troubleshoot

não existe actualmente informação específica de resolução de problemas disponível para esta configuração.

Conclusion

The configuration of an ASA to do basic NAT is not that daunting of a task. O exemplo neste documento pode ser adaptado ao seu cenário específico se você alterar os endereços IP e as portas usadas nas configurações de exemplo. O final da ASA de configuração para isso, quando o combinado, é semelhante a uma ASA 5510:

ASA Version 9.1(1)
!
interface Ethernet0/0
nameif outside
security-level 0
ip address 198.51.100.100 255.255.255.0
!
interface Ethernet0/1
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!
interface Ethernet0/2
nameif dmz
security-level 50
ip address 192.168.1.1 255.255.255.0
!
object network inside-subnet
subnet 192.168.0.0 255.255.255.0
object network dmz-subnet
subnet 192.168.1.0 255.255.255.0
object network webserver
host 192.168.1.100
object network webserver-external-ip
host 198.51.100.101
object network dns-server
host 192.168.0.53
!
access-list outside_acl extended permit tcp any object webserver eq www
access-list dmz_acl extended permit udp any object dns-server eq domain
access-list dmz_acl extended deny ip any object inside-subnet
access-list dmz_acl extended permit ip any any
!
object network inside-subnet
nat (inside,outside) dynamic interface
object network dmz-subnet
nat (dmz,outside) dynamic interface
object network webserver
nat (dmz,outside) static webserver-external-ip service tcp www www
access-group outside_acl in interface outside
access-group dmz_acl in interface dmz
!
route outside 0.0.0.0 0.0.0.0 198.51.100.1 1

Em uma ASA 5505, por exemplo, com as interfaces conectado como mostrado anteriormente (fora ligado a Ethernet0/0, dentro conectado para Ethernet0/1 e DMZ conectado para Ethernet0/2):

ASA Version 9.1(1)
!
interface Ethernet0/0
description Connected to Outside Segment
switchport access vlan 2
!
interface Ethernet0/1
description Connected to Inside Segment
switchport access vlan 1
!
interface Ethernet0/2
description Connected to DMZ Segment
switchport access vlan 3
!
interface Vlan2
nameif outside
security-level 0
ip address 198.51.100.100 255.255.255.0
!
interface Vlan1
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!
interface Vlan3
nameif dmz
security-level 50
ip address 192.168.1.1 255.255.255.0
!
object network inside-subnet
subnet 192.168.0.0 255.255.255.0
object network dmz-subnet
subnet 192.168.1.0 255.255.255.0
object network webserver
host 192.168.1.100
object network webserver-external-ip
host 198.51.100.101
object network dns-server
host 192.168.0.53
!
access-list outside_acl extended permit tcp any object webserver eq www
access-list dmz_acl extended permit udp any object dns-server eq domain
access-list dmz_acl extended deny ip any object inside-subnet
access-list dmz_acl extended permit ip any any
!
object network inside-subnet
nat (inside,outside) dynamic interface
object network dmz-subnet
nat (dmz,outside) dynamic interface
object network webserver
nat (dmz,outside) static webserver-external-ip service tcp www www
access-group outside_acl in interface outside
access-group dmz_acl in interface dmz
!
route outside 0.0.0.0 0.0.0.0 198.51.100.1 1

Deixe uma resposta

O seu endereço de email não será publicado.