- introduktion
- förutsättningar
- krav
- komponenter som används
- översikt
- mål
- översikt över Åtkomstkontrolllista
- Nat översikt
- konfigurera
- Kom igång
- topologi
- Steg 1-konfigurera NAT för att tillåta värdar att gå ut till Internet
- steg 2-konfigurera NAT för att komma åt webbservern från Internet
- steg 3-Konfigurera ACLs
- steg 4-testkonfiguration med Packet Tracer-funktionen
- verifiera
- Felsök
- slutsats
introduktion
detta dokument ger ett enkelt och enkelt exempel på hur du konfigurerar nätverksadressöversättning (nat) och Åtkomstkontrolllistor (ACL) på en Asa-brandvägg för att möjliggöra både utgående och inkommande anslutning. Detta dokument har skrivits med en Adaptive Security Appliance (ASA) 5510 brandvägg än kör ASA kod version 9.1 (1), men detta kan enkelt tillämpas på alla andra Asa-brandväggsplattformar. Om du använder en plattform som en ASA 5505, som använder VLAN istället för ett fysiskt gränssnitt, måste du ändra gränssnittstyperna efter behov.
förutsättningar
krav
det finns inga specifika krav för detta dokument.
komponenter som används
informationen i detta dokument är baserad på en ASA 5510-brandvägg som kör ASA-kod version 9.1(1).
informationen i det här dokumentet skapades från enheterna i en specifik labbmiljö. Alla enheter som används i det här dokumentet började med en rensad (standard) konfiguration. Om ditt nätverk är live, Se till att du förstår den potentiella effekten av något kommando.
översikt
mål
i den här exempelkonfigurationen kan du titta på vilken nat-och ACL-konfiguration som behövs för att tillåta inkommande åtkomst till en webbserver i DMZ i en ASA-brandvägg och tillåta utgående anslutning från interna och DMZ-värdar. Detta kan sammanfattas som två mål:
- Tillåt värdar på insidan och DMZ utgående anslutning till Internet.
- Tillåt värdar på Internet att komma åt en webbserver på DMZ med en IP-adress på 192.168.1.100.
innan du kommer till stegen som måste slutföras för att uppnå dessa två mål, går detta dokument kort över hur ACL och NAT arbetar med de nyare versionerna av ASA-kod (version 8.3 och senare).
översikt över Åtkomstkontrolllista
Åtkomstkontrolllistor (åtkomstlistor eller ACL för kort) är den metod som ASA-brandväggen bestämmer om trafik är tillåten eller nekad. Som standard nekas trafik som går från en lägre till högre säkerhetsnivå. Detta kan åsidosättas av en ACL som tillämpas på det lägre säkerhetsgränssnittet. Även ASA tillåter som standard trafik från högre till lägre säkerhetsgränssnitt. Detta beteende kan också åsidosättas med en ACL.
i tidigare versioner av ASA-kod (8.2 och tidigare) jämförde ASA en inkommande anslutning eller ett paket mot ACL på ett gränssnitt utan att översätta paketet först. Med andra ord måste ACL tillåta paketet som om du skulle fånga det paketet på gränssnittet. I version 8.3 och senare kod, Asa untranslates det paketet innan det kontrollerar gränssnittet ACL. Detta innebär att för 8.3 och senare kod, och detta dokument, är trafik till värdens verkliga IP tillåten och inte värdens översatta IP.
se avsnittet Konfigurera åtkomstregler i bok 2: Cisco ASA Series Firewall CLI Configuration Guide, 9.1 för mer information om ACL.
Nat översikt
NAT på ASA i version 8.3 och senare är uppdelad i två typer som kallas Auto NAT (Object NAT) och manuell NAT (två gånger NAT). Den första av de två, Object NAT, konfigureras inom definitionen av ett nätverksobjekt. Ett exempel på detta ges senare i detta dokument. En primär fördel med denna nat-metod är att ASA automatiskt beställer reglerna för bearbetning för att undvika konflikter. Detta är den enklaste formen av NAT, men med den lättheten kommer en begränsning i konfigurationsgranularitet. Du kan till exempel inte fatta ett översättningsbeslut baserat på destinationen i paketet som du kunde med den andra typen av Nat, Manuell Nat. Manuell NAT är mer robust i sin granularitet, men det kräver att linjerna konfigureras i rätt ordning så att den kan uppnå rätt beteende. Detta komplicerar denna NAT-typ, och som ett resultat kommer den inte att användas i detta konfigurationsexempel.
se avsnittet Information om NAT i bok 2: Cisco ASA Series Firewall CLI Configuration Guide, 9.1 för mer information om NAT.
konfigurera
Kom igång
den grundläggande Asa-konfigurationsinställningen är tre gränssnitt anslutna till tre nätverkssegment. ISP-nätverkssegmentet är anslutet till Ethernet0/0-gränssnittet och märkt utanför med en säkerhetsnivå på 0. Det interna nätverket har anslutits till Ethernet0/1 och märkts som inuti med en säkerhetsnivå på 100. DMZ-segmentet, där webbservern finns, är ansluten till Ethernet0/2 och märkt som DMZ med en säkerhetsnivå på 50.
gränssnittskonfigurationen och IP-adresserna för exemplet ses här:
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
här kan du se att ASA: s inre gränssnitt är inställt med IP-adressen 192.168.0.1, och det är standardgatewayen för de interna värdarna. ASA: s externa gränssnitt är konfigurerat med en IP-adress som erhållits från ISP. Det finns en standardrutt på plats, som ställer in nästa hopp för att vara ISP-gatewayen. Om du använder DHCP tillhandahålls detta automatiskt. DMZ-gränssnittet är konfigurerat med IP-adressen 192.168.1.1, och det är standardgatewayen för värdar i DMZ-nätverkssegmentet.
topologi
här är en visuell titt på hur detta är kabel och konfigurerad:
Steg 1-konfigurera NAT för att tillåta värdar att gå ut till Internet
för detta exempel objekt nat, även känd som AutoNAT, används. Det första att konfigurera är Nat-reglerna som tillåter värdarna på insidan och DMZ-segmenten att ansluta till Internet. Eftersom dessa värdar använder privata IP-adresser måste du översätta dem till något som kan dirigeras på Internet. Översätt i så fall adresserna så att de ser ut som ASA: s externa gränssnitt IP-adress. Om din externa IP ändras ofta (kanske på grund av DHCP) är detta det enklaste sättet att ställa in detta.
för att konfigurera denna NAT måste du skapa ett nätverksobjekt som representerar det inre delnätet samt ett som representerar DMZ-delnätet. I vart och ett av dessa objekt konfigurerar du en dynamisk nat-regel som portadress Translation (PAT) dessa klienter när de passerar från sina respektive gränssnitt till det yttre gränssnittet.
den här konfigurationen liknar den här:
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
om du tittar på den löpande konfigurationen vid denna punkt (med utgången från kommandot show run) ser du att objektdefinitionen är uppdelad i två delar av utgången. Den första delen anger bara vad som finns i objektet (värd/subnät, IP-adress och så vidare), medan det andra avsnittet visar att nat-regeln är knuten till det objektet. Om du tar den första posten i föregående utgång:
när värdar som matchar 192.168.0.0 / 24-undernätet går från det inre gränssnittet till det yttre gränssnittet, vill du dynamiskt översätta dem till det yttre gränssnittet.
steg 2-konfigurera NAT för att komma åt webbservern från Internet
nu när värdarna på insidan och DMZ-gränssnitt kan komma ut till Internet måste du ändra konfigurationen så att användare på Internet kan komma åt vår webbserver på TCP-port 80. I det här exemplet är inställningen så att personer på Internet kan ansluta till en annan IP-adress som internetleverantören tillhandahåller, en ytterligare IP-adress vi äger. I det här exemplet använder du 198.51.100.101. Med denna konfiguration kommer användare på Internet att kunna nå DMZ-webbservern genom att komma åt 198.51.100.101 på TCP-port 80. Använd Object NAT för den här uppgiften, och ASA kommer att översätta TCP-port 80 på webbservern (192.168.1.100) för att se ut som 198.51.100.101 på TCP-port 80 på utsidan. På samma sätt som tidigare, definiera ett objekt och definiera översättningsregler för det objektet. Definiera också ett andra objekt för att representera den IP du ska översätta den här värden till.
den här konfigurationen liknar den här:
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
bara för att sammanfatta vad den NAT-regeln betyder i det här exemplet:
när en värd som matchar IP-adressen 192.168.1.100 på DMZ-segmenten etablerar en anslutning från TCP-port 80 (www) och den anslutningen går ut utanför gränssnittet, du vill översätta det till TCP-port 80 (www) på det yttre gränssnittet och översätta den IP-adressen till 198.51.100.101.
det verkar lite udda… ”kommer från TCP-port 80 (www)”, men webbtrafik är avsedd att port 80. Det är viktigt att förstå att dessa nat-regler är dubbelriktade. Som ett resultat kan du vända formuleringen för att omformulera denna mening. Resultatet är mycket mer meningsfullt:
när värdar på utsidan upprättar en anslutning till 198.51.100.101 på destination TCP port 80 (www), kommer du att översätta destinationens IP-adress till 192.168.1.100 och destinationsporten kommer att vara TCP port 80 (www) och skicka ut DMZ.
detta är mer meningsfullt när det formuleras på detta sätt. Därefter måste du ställa in ACL: erna.
steg 3-Konfigurera ACLs
NAT är konfigurerad och slutet på denna konfiguration är nära. Kom ihåg att ACL på ASA tillåter dig att åsidosätta standardsäkerhetsbeteendet som är som följer:
- trafik som går från ett lägre säkerhetsgränssnitt nekas när det går till ett högre säkerhetsgränssnitt.
- trafik som går från ett högre säkerhetsgränssnitt är tillåtet när det går till ett lägre säkerhetsgränssnitt.
så utan tillägg av några ACL till konfigurationen fungerar denna trafik i exemplet:
- värdar på insidan (säkerhetsnivå 100) kan ansluta till värdar på DMZ (säkerhetsnivå 50).
- värdar på insidan (säkerhetsnivå 100) kan ansluta till värdar på utsidan (säkerhetsnivå 0).
- värdar på DMZ (säkerhetsnivå 50) kan ansluta till värdar på utsidan (säkerhetsnivå 0).
denna trafik nekas dock:
- värdar på utsidan (säkerhetsnivå 0) kan inte ansluta till värdar på insidan (säkerhetsnivå 100).
- värdar på utsidan (säkerhetsnivå 0) kan inte ansluta till värdar på DMZ (säkerhetsnivå 50).
- värdar på DMZ (säkerhetsnivå 50) kan inte ansluta till värdar på insidan (säkerhetsnivå 100).
eftersom trafik från utsidan till DMZ-nätverket nekas av ASA med sin nuvarande konfiguration kan användare på Internet inte nå webbservern trots nat-konfigurationen i steg 2. Du måste uttryckligen tillåta denna trafik. I 8.3 och senare kod måste du använda värdens verkliga IP i ACL och inte den översatta IP. Detta innebär att konfigurationen måste tillåta trafik avsedd att 192.168.1.100 och inte trafik avsedd att 198.51.100.101 på port 80. För enkelhetens skull kommer objekten som definieras i steg 2 också att användas för denna ACL. När ACL har skapats måste du tillämpa det inkommande på det yttre gränssnittet.
här är vad dessa konfigurationskommandon ser ut:
access-list outside_acl extended permit tcp any object webserver eq www
!
access-group outside_acl in interface outside
access-list-linjen anger:
Tillåt trafik från någon (var) till värden som representeras av objektets webbserver (192.168.1.100) på port 80.
det är viktigt att konfigurationen använder alla sökord här. Eftersom källans IP-adress för klienter inte är känd när den når din webbplats, ange vilken betydelse som helst ’någon IP-adress’.
vad sägs om trafik från DMZ-segmentet som är avsett för värdar på det inre nätverkssegmentet? Till exempel en server på det inre nätverket som värdarna på DMZ behöver ansluta till. Hur kan ASA bara tillåta den specifika trafiken som är avsedd för inside-servern och blockera allt annat som är avsett för inside-segmentet från DMZ?
i det här exemplet antas det att det finns en DNS-server på det inre nätverket vid IP-adress 192.168.0.53 som värdarna på DMZ behöver komma åt för DNS-upplösning. Du skapar den ACL som behövs och tillämpar den på DMZ-gränssnittet så att ASA kan åsidosätta det standardsäkerhetsbeteendet, som nämnts tidigare, för trafik som kommer in i det gränssnittet.
här är vad dessa konfigurationskommandon ser ut:
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
ACL är mer komplex än att bara tillåta den trafiken till DNS-servern på UDP-port 53. Om allt vi gjorde är att första ’tillstånd’ linje, då all trafik skulle blockeras från DMZ till värdar på Internet. ACL: er har en implicit ’neka ip any any’ i slutet av ACL. Som ett resultat skulle dina DMZ-värdar inte kunna gå ut på Internet. Även om trafik från DMZ till utsidan är tillåten som standard, med tillämpning av en ACL till DMZ-gränssnittet, är dessa standardsäkerhetsbeteenden för DMZ-gränssnittet inte längre i kraft och du måste uttryckligen tillåta trafiken i gränssnittet ACL.
steg 4-testkonfiguration med Packet Tracer-funktionen
nu när konfigurationen är klar måste du testa den för att se till att den fungerar. Den enklaste metoden är att använda faktiska värdar (om det här är ditt nätverk). Men för att testa detta från CLI och ytterligare utforska några av ASA: s verktyg, använd packet tracer för att testa och eventuellt felsöka eventuella problem.
Packet tracer fungerar genom att simulera ett paket baserat på en serie parametrar och injicera det paketet till gränssnittsdatabanan, liknande det sätt som ett verkligt paket skulle göra om det plockades upp av tråden. Detta paket följs genom myriaden av de kontroller och processer som görs när den passerar genom brandväggen, och packet tracer noterar resultatet. Simulera den interna värden som går ut till en värd på Internet. Kommandot nedan instruerar brandväggen att:
simulera ett TCP-paket som kommer i det inre gränssnittet från IP-adress 192.168.0.125 på källport 12345 avsedd till en IP-adress på 203.0.113.1 på port 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
slutresultatet är att trafiken är tillåten, vilkeninnebär att den passerade alla nat-och ACL-kontroller i konfigurationen och skickades ut ur gränssnittet, utanför. Observera att paketet översattes i fas 3 och detaljerna i den fasen visar vilken regel som träffas. Värden 192.168.0.125 översätts dynamiskt till 198.51.100.100 enligt konfigurationen.
kör det nu för en anslutning från Internet till webbservern. Kom ihåg att värdar på Internet kommer åt webbservern genom att ansluta till 198.51.100.101 på det yttre gränssnittet. Återigen översätter detta nästa kommando till:
simulera ett TCP-paket som kommer i det yttre gränssnittet från IP-adress 192.0.2.123 på källport 12345 avsedd till en IP-adress på 198.51.100.101 på port 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
återigen är resultatet att paketet är tillåtet. ACL: erna checkar ut, konfigurationen ser bra ut och användare på Internet (utanför) ska kunna komma åt den webbservern med den externa IP-adressen.
verifiera
verifieringsprocedurer ingår i steg 4 – testkonfiguration med Packet Tracer-funktionen.
Felsök
det finns för närvarande ingen specifik felsökningsinformation tillgänglig för denna konfiguration.
slutsats
konfigurationen av en ASA att göra grundläggande NAT är inte så skrämmande för en uppgift. Exemplet i det här dokumentet kan anpassas till ditt specifika scenario Om du ändrar IP-adresser och portar som används i exempelkonfigurationerna. Den slutliga Asa-konfigurationen för detta, när den kombineras, liknar detta för en 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
på en ASA 5505, till exempel med gränssnitten anslutna som visat tidigare (utanför ansluten till Ethernet0 / 0, inuti ansluten till Ethernet0 / 1 och DMZ ansluten till 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