Basic ASA NAT Configuration: webserver in de DMZ in ASA Versie 8.3 en hoger

Introduction

dit document geeft een eenvoudig en duidelijk voorbeeld van het configureren van Nat (Network Address Translation) en ACL ‘ s (Access Control Lists) op een ASA Firewall om zowel uitgaande als inkomende connectiviteit mogelijk te maken. Dit document is geschreven met een Adaptive Security Appliance (ASA) 5510 firewall dan draait ASA code versie 9.1 (1), maar dit kan gemakkelijk van toepassing zijn op elk ander ASA firewall platform. Als u een platform gebruikt zoals een ASA 5505, die VLAN ‘ s gebruikt in plaats van een fysieke interface, moet u de interfacetypen aanpassen.

vereisten

vereisten

er zijn geen specifieke vereisten voor dit document.

gebruikte componenten

de informatie in dit document is gebaseerd op een ASA 5510 firewall die ASA code Versie 9.1(1) uitvoert.

de informatie in dit document is gemaakt van de apparaten in een specifieke labomgeving. Alle apparaten die in dit document worden gebruikt, zijn gestart met een gewist (standaard) configuratie. Als uw netwerk live is, zorg er dan voor dat u de mogelijke impact van een commando begrijpt.

overzicht

doelen

in deze voorbeeldconfiguratie kunt u kijken welke NAT-en ACL-configuratie nodig zijn om inkomende toegang tot een webserver in de DMZ van een ASA firewall toe te staan en uitgaande connectiviteit van interne en DMZ-hosts toe te staan. Dit kan worden samengevat als twee doelen:

  1. laat hosts op de binnenkant en DMZ uitgaande connectiviteit met het Internet.
  2. laat hosts op het Internet toegang krijgen tot een webserver op de DMZ met een IP-adres van 192.168.1.100.

voordat u begint met de stappen die moeten worden uitgevoerd om deze twee doelen te bereiken, gaat dit document kort over de manier waarop ACLs en NAT werken op de nieuwere versies van ASA code (Versie 8.3 en later).

Access Control List Overview

Access Control Lists (ACL ’s of kortweg ACL’ s) zijn de methode waarmee de ASA firewall bepaalt of verkeer is toegestaan of geweigerd. Verkeer dat van een lager naar een hoger beveiligingsniveau overgaat, wordt standaard geweigerd. Dit kan worden overschreven door een ACL die wordt toegepast op die lagere beveiligingsinterface. Ook de ASA staat standaard verkeer toe van hogere naar lagere beveiligingsinterfaces. Dit gedrag kan ook worden overschreven met een ACL.

in eerdere versies van ASA code (8.2 en eerder), vergeleek de ASA een inkomende verbinding of pakket met de ACL op een interface zonder het pakket eerst te untransleren. Met andere woorden, de ACL moest het pakket toestaan alsof je dat pakket op de interface zou vastleggen. In versie 8.3 en later code, de ASA untranslates dat pakket voordat het controleert de interface ACLs. Dit betekent dat Voor 8.3 en later code, en dit document, verkeer naar het echte IP van de host is toegestaan en niet het vertaalde IP van de host.

zie de sectie toegangsregels configureren van Boek 2: Cisco ASA Series Firewall CLI Configuration Guide, 9.1 voor meer informatie over ACL ‘ s.

nat overzicht

NAT op de ASA in versie 8.3 en later is opgesplitst in twee types die bekend staan als Auto NAT (Object NAT) en Manual NAT (tweemaal NAT). Het eerste van de twee, Object NAT, wordt geconfigureerd binnen de definitie van een netwerkobject. Een voorbeeld hiervan wordt verderop in dit document gegeven. Een van de belangrijkste voordelen van deze nat methode is dat de ASA automatisch de regels voor de verwerking bestelt om conflicten te voorkomen. Dit is de makkelijkste vorm van NAT, maar met dat gemak komt een beperking in configuratie granulariteit. U kunt bijvoorbeeld geen vertaalbeslissing nemen op basis van de bestemming in het pakket, zoals u zou kunnen doen met het tweede type NAT, Manual Nat. Handmatige NAT is robuuster in zijn granulariteit, maar het vereist dat de lijnen worden geconfigureerd in de juiste volgorde, zodat het het juiste gedrag kan bereiken. Dit compliceert dit NAT-type, en als gevolg daarvan zal het niet worden gebruikt in dit configuratievoorbeeld.

zie de sectie Informatie over NAT van Boek 2: Cisco ASA Series Firewall CLI Configuration Guide, 9.1 voor meer informatie over NAT.

Configure

aan de slag

de basis Asa configuratie setup is drie interfaces verbonden met drie netwerksegmenten. Het ISP – netwerksegment is verbonden met de Ethernet0/0-interface en wordt naar buiten gelabeld met een beveiligingsniveau van 0. Het interne netwerk is verbonden met Ethernet0 / 1 en gelabeld als inside met een beveiligingsniveau van 100. Het DMZ-segment, waar de webserver zich bevindt, is verbonden met Ethernet0/2 en gelabeld als DMZ met een beveiligingsniveau van 50.

de interface configuratie en IP adressen Voor het voorbeeld zijn hier te zien:

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

hier kun je zien dat de ASA ‘ s binnen interface is ingesteld met het IP adres van 192.168.0.1, en het is de standaard gateway voor de interne hosts. De buiteninterface van de ASA is geconfigureerd met een IP-adres verkregen van de ISP. Er is een standaard route op zijn plaats, die stelt de next-hop is de ISP gateway. Als u DHCP gebruikt, wordt dit automatisch verstrekt. De DMZ interface is geconfigureerd met het IP adres van 192.168.1.1, en het is de standaard gateway voor hosts op het DMZ netwerk segment.

topologie

hier is een visuele kijk op hoe dit is bekabeld en geconfigureerd:

Stap 1-configureer NAT zodat Hosts naar het Internet kunnen gaan

voor dit voorbeeld wordt NAT, ook wel AutoNAT genoemd, gebruikt. Het eerste wat je moet configureren is de NAT regels die de hosts aan de binnenkant en DMZ segmenten toestaan om verbinding te maken met het Internet. Omdat deze hosts privé IP-adressen gebruiken, moet je ze vertalen naar iets dat routeerbaar is op het Internet. In dit geval, vertaal de adressen zodat ze eruit zien als de ASA ‘ s buiteninterface IP-adres. Als je externe IP regelmatig verandert (misschien door DHCP) is dit de meest eenvoudige manier om dit op te zetten.

om deze NAT te configureren, moet u een netwerkobject maken dat zowel het subnet binnen als het DMZ-subnet vertegenwoordigt. Configureer in elk van deze objecten een dynamische nat-regel die de Adresvertaling (PAT) van deze clients poort terwijl ze van hun respectieve interfaces naar de externe interface gaan.

Deze configuratie lijkt op deze:

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

als u op dit punt naar de draaiende configuratie kijkt (met de uitvoer van het show run commando), zult u zien dat de objectdefinitie is opgesplitst in twee delen van de uitvoer. Het eerste deel geeft alleen aan wat er in het object zit (host/subnet, IP-adres, enzovoort), terwijl het tweede deel laat zien dat de NAT-regel aan dat object gebonden is. Als u de eerste invoer in de vorige uitvoer neemt:

wanneer hosts die overeenkomen met het 192.168.0.0/24 subnet van de binneninterface naar de buiteninterface gaan, wil je ze dynamisch vertalen naar de buiteninterface.

Stap 2-NAT Instellen om toegang te krijgen tot de webserver vanaf het Internet

nu de hosts aan de binnenkant en DMZ interfaces naar het Internet kunnen, moet u de configuratie wijzigen zodat gebruikers op het Internet toegang hebben tot onze webserver op tcp-poort 80. In dit voorbeeld is de setup zo dat mensen op het Internet verbinding kunnen maken met een ander IP-adres dat de ISP heeft opgegeven, een extra IP-adres dat wij bezitten. Gebruik in dit voorbeeld 198.51.100.101. Met deze configuratie kunnen gebruikers op het Internet de DMZ webserver bereiken door 198.51.100 te gebruiken.101 op tcp-poort 80. Gebruik Object NAT voor deze taak, en de ASA zal tcp poort 80 vertalen op de webserver (192.168.1.100) om eruit te zien als 198.51.100.101 op TCP poort 80 aan de buitenkant. Zoals eerder gedaan, definieer een object en definieer de vertaalregels voor dat object. Definieer ook een tweede object om het IP weer te geven waarnaar je deze host wilt vertalen.

Deze configuratie lijkt op deze:

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

om samen te vatten wat die NAT-regel in dit voorbeeld betekent:

als een host die overeenkomt met het IP adres 192.168.1.100 op de DMZ segmenten maakt een verbinding afkomstig van tcp poort 80 (www) en die verbinding gaat uit de buiteninterface, u wilt dat vertalen naar TCP poort 80 (www) op de buiteninterface en vertalen dat IP-adres 198.51.100.101.

dat lijkt een beetje vreemd… “afkomstig van tcp poort 80 (www)”, maar webverkeer is bestemd voor poort 80. Het is belangrijk te begrijpen dat deze NAT-regels bidirectioneel van aard zijn. Als gevolg hiervan kunt u de formulering omdraaien om deze zin te herformuleren. Het resultaat is veel zinvoller:

wanneer hosts aan de buitenkant een verbinding tot stand brengen met 198.51.100.101 op bestemming TCP-poort 80 (www), vertaalt u het doel-IP-adres naar 192.168.1.100 en de doelpoort zal TCP-poort 80 (www) zijn en verzendt u het de DMZ.

dit is logischer als je het zo formuleert. Vervolgens moet u de ACLs instellen.

Stap 3-ACLs instellen

NAT is geconfigureerd en het einde van deze configuratie is nabij. Vergeet niet, ACLs op de ASA kunt u overschrijven de standaard beveiligingsgedrag dat is als volgt:

  • verkeer dat van een lagere beveiligingsinterface gaat, wordt geweigerd wanneer het naar een hogere beveiligingsinterface gaat.
  • verkeer dat van een hogere beveiligingsinterface gaat, is toegestaan wanneer het naar een lagere beveiligingsinterface gaat.

dus zonder toevoeging van ACLs aan de configuratie, werkt dit verkeer in het voorbeeld:

  • Hosts on the inside (security level 100) kunnen verbinding maken met hosts op de DMZ (security level 50).
  • Hosts aan de binnenkant (beveiligingsniveau 100) kunnen verbinding maken met hosts aan de buitenkant (beveiligingsniveau 0).
  • Hosts op de DMZ (beveiligingsniveau 50) kunnen verbinding maken met hosts aan de buitenkant (beveiligingsniveau 0).

dit verkeer wordt echter geweigerd:

  • Hosts aan de buitenkant (beveiligingsniveau 0) kunnen geen verbinding maken met hosts aan de binnenkant (beveiligingsniveau 100).
  • Hosts aan de buitenkant (beveiligingsniveau 0) kunnen geen verbinding maken met hosts op de DMZ (beveiligingsniveau 50).
  • Hosts op de DMZ (beveiligingsniveau 50) kunnen geen verbinding maken met hosts aan de binnenkant (beveiligingsniveau 100).

omdat verkeer van buitenaf naar het DMZ netwerk wordt geweigerd door de ASA met zijn huidige configuratie, kunnen gebruikers op het Internet de webserver niet bereiken ondanks de nat configuratie in Stap 2. U moet dit verkeer expliciet toestaan. In 8.3 en later code moet je het echte IP van de host in de ACL gebruiken en niet het vertaalde IP. Dit betekent dat de configuratie verkeer moet toestaan bestemd voor 192.168.1.100 en niet verkeer bestemd voor 198.51.100.101 op poort 80. Voor de eenvoud zullen de in Stap 2 gedefinieerde objecten ook voor deze ACL gebruikt worden. Zodra de ACL is gemaakt, je nodig hebt om het toe te passen inbound op de externe interface.

hier is hoe deze configuratie commando ‘ s eruit zien:

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

de status van de toegangslijst:

sta verkeer toe van elke (waar) naar de host vertegenwoordigd door de object webserver (192.168.1.100) op poort 80.

het is belangrijk dat de configuratie hier het sleutelwoord gebruikt. Omdat het bron-IP-adres van clients niet bekend staat als het uw website bereikt, geeft u de Betekenis ‘elk IP-adres’op.

hoe zit het met het verkeer van het DMZ-segment dat bestemd is voor hosts in het interne netwerksegment? Bijvoorbeeld, een server op het interne netwerk waarmee de hosts op de DMZ verbinding moeten maken. Hoe kan de ASA toestaan dat alleen dat specifieke verkeer bestemd voor de inside server en blokkeren al het andere bestemd voor het inside segment van de DMZ?

in dit voorbeeld wordt aangenomen dat er een DNS-server op het IP-adres 192.168.0.53 is die de hosts op de DMZ moeten benaderen voor DNS-resolutie. Je maakt de benodigde ACL en past deze toe op de DMZ interface zodat de ASA dat standaard beveiligingsgedrag kan overschrijven, zoals eerder vermeld, voor verkeer dat die interface binnenkomt.

hier is hoe deze configuratie commando ‘ s eruit zien:

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

de ACL is complexer dan gewoon toestaan dat verkeer naar de DNS-server op UDP-poort 53. Als alles wat we deden is die eerste ‘permit’ lijn, dan zou al het verkeer worden geblokkeerd van de DMZ naar hosts op het Internet. ACL ’s hebben een impliciet’ deny ip any any ‘ aan het einde van de ACL. Als gevolg daarvan zouden uw DMZ-hosts niet naar het Internet kunnen gaan. Hoewel verkeer van de DMZ naar buiten standaard is toegestaan, met toepassing van een ACL op de DMZ interface, zijn deze standaard beveiligingsgedrag voor de DMZ interface niet langer van kracht en moet je expliciet toestaan dat het verkeer in de interface ACL.

Stap 4 – Test configuratie met de Packet Tracer functie

nu de configuratie is voltooid, moet u het testen om zeker te zijn dat het werkt. De makkelijkste methode is om echte hosts te gebruiken (als dit je netwerk is). Echter, in het belang van het testen van dit van de CLI en het verder verkennen van een aantal van de gereedschappen van de ASA, gebruik de packet tracer om eventuele problemen te testen en mogelijk te debuggen.

Packet tracer werkt door een pakket te simuleren op basis van een reeks parameters en dat pakket te injecteren in het interface data-pad, vergelijkbaar met de manier waarop een echt pakket zou worden opgepikt van de draad. Dit pakket wordt gevolgd door de talloze controles en processen die worden gedaan als het door de firewall gaat, en packet tracer noteert het resultaat. Simuleer de interne host die naar een host op het Internet gaat. Het commando hieronder instrueert de firewall om:

Simuleer een TCP-pakket dat in de binneninterface komt van IP-adres 192.168.0.125 op bronpoort 12345 bestemd voor een IP-adres van 203.0.113.1 op poort 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

het eindresultaat is dat het verkeer is toegestaan, wat betekent dat het alle nat-en ACL-controles in de configuratie heeft doorstaan en de uitgang interface naar buiten is gestuurd. Merk op dat het pakket werd vertaald in Fase 3 en de details van die fase laten zien welke regel wordt geraakt. De host 192.168.0.125 wordt dynamisch vertaald naar 198.51.100.100 volgens de configuratie.

voer het nu uit voor een verbinding van het Internet naar de webserver. Onthoud, hosts op het Internet zullen toegang krijgen tot de webserver door verbinding te maken met 198.51.100.101 op de externe interface. Nogmaals, dit volgende commando vertaalt zich naar:

Simuleer een TCP-pakket dat in de buiteninterface komt van IP-adres 192.0.2.123 op bronpoort 12345 bestemd voor een IP-adres van 198.51.100.101 op poort 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

nogmaals, het resultaat is dat het pakket is toegestaan. De ACLs check out, de configuratie ziet er prima uit, en gebruikers op het Internet (buiten) moeten in staat zijn om toegang te krijgen tot die webserver met de externe IP.

Verify

verificatieprocedures zijn opgenomen in Stap 4-testconfiguratie met de Packet Tracer-functie.

problemen oplossen

er is momenteel geen specifieke informatie voor het oplossen van problemen Beschikbaar voor deze configuratie.

conclusie

de configuratie van een ASA voor basis NAT is niet zo ontmoedigend. Het voorbeeld in dit document kan worden aangepast aan uw specifieke scenario als u de IP-adressen en poorten gebruikt in de voorbeeld configuraties te wijzigen. De uiteindelijke ASA configuratie voor deze, wanneer gecombineerd, lijkt op dit voor een 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

op een ASA 5505, bijvoorbeeld, met de interfaces aangesloten zoals eerder getoond (buiten aangesloten op Ethernet0 / 0, binnen aangesloten op Ethernet0 / 1 en de DMZ aangesloten op 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

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.