grundlæggende ASA NAT-konfiguration: internetserver i Asa Version 8.3 og nyere

introduktion

dette dokument giver et enkelt og ligetil eksempel på, hvordan man konfigurerer NETVÆRKSADRESSEOVERSÆTTELSE (NAT) og adgangskontrollister (ACL ‘ er) på en Asa-Brandvæg for at tillade udgående såvel som indgående forbindelse. Dette dokument er skrevet med en Adaptive Security Appliance (ASA) 5510 end kører ASA kode version 9.1 (1), Men dette kan let gælde for enhver anden Asa-platform. Hvis du bruger en platform som en ASA 5505, der bruger VLAN ‘ er i stedet for en fysisk grænseflade, skal du ændre grænsefladetyperne efter behov.

forudsætninger

krav

der er ingen specifikke krav til dette dokument.

anvendte komponenter

oplysningerne i dette dokument er baseret på en ASA 5510-brandvæg, der kører Asa-kodeversion 9.1(1).

oplysningerne i dette dokument blev oprettet fra enhederne i et specifikt laboratoriemiljø. Alle de enheder, der blev brugt i dette dokument, startede med en ryddet (standard) konfiguration. Hvis dit netværk er live, skal du sørge for, at du forstår den potentielle indvirkning af enhver kommando.

oversigt

mål

i denne eksempelkonfiguration kan du se på, hvilken NAT-og ACL-konfiguration der er behov for for at tillade indgående adgang til en internetserver i en ASA-brandvæg og tillade udgående forbindelse fra interne værter. Dette kan opsummeres som to mål:

  1. Tillad værter på indersiden og udgående forbindelse til internettet.
  2. Tillad værter på internettet at få adgang til en internetserver med en IP-adresse på 192.168.1.100.

før du kommer til de trin, der skal udfyldes for at nå disse to mål, går dette dokument kort over den måde, ACLs og NAT arbejder på de nyere versioner af ASA-kode (version 8.3 og nyere).

oversigt over adgangskontrollister

adgangskontrollister (kort sagt adgangslister eller ACL ‘ ER) er den metode, hvormed ASA-brandvæggen bestemmer, om trafik er tilladt eller nægtet. Som standard nægtes trafik, der går fra et lavere til højere sikkerhedsniveau. Dette kan tilsidesættes af en ACL, der anvendes på den lavere sikkerhedsgrænseflade. Også ASA tillader som standard trafik fra højere til lavere sikkerhedsgrænseflader. Denne adfærd kan også tilsidesættes med en ACL.

i tidligere versioner af ASA-kode (8.2 og tidligere) sammenlignede ASA en indgående forbindelse eller pakke mod ACL på en grænseflade uden først at overføre pakken. Med andre ord måtte ACL tillade pakken, som om du skulle fange den pakke på grænsefladen. I version 8.3 og senere kode oversætter ASA den pakke, før den kontrollerer grænsefladen ACL ‘ er. Det betyder, at for 8.3 og nyere kode og dette dokument er trafik til værtens rigtige IP tilladt og ikke værtens oversatte IP.

se afsnittet Konfiguration af adgangsregler i Bog 2: Cisco ASA-serien CLI Configuration Guide, 9.1 for mere information om ACL ‘ er.

nat oversigt

NAT på ASA i version 8.3 og nyere er opdelt i to typer kendt som Auto NAT (Object NAT) og manuel NAT (to gange NAT). Den første af de to, Object NAT, er konfigureret inden for definitionen af et netværksobjekt. Et eksempel på dette findes senere i dette dokument. En primær fordel ved denne NAT-metode er, at ASA automatisk bestiller reglerne for behandling for at undgå konflikter. Dette er den nemmeste form for NAT, men med den lethed kommer en begrænsning i konfigurationsgranularitet. For eksempel kan du ikke træffe en oversættelsesbeslutning baseret på destinationen i pakken, som du kunne med den anden type NAT, manuel Nat. Manuel NAT er mere robust i sin granularitet, men det kræver, at linjerne konfigureres i den rigtige rækkefølge, så den kan opnå den korrekte opførsel. Dette komplicerer denne NAT-type, og som et resultat vil den ikke blive brugt i dette konfigurationseksempel.

se afsnittet Oplysninger om NAT i Bog 2: Cisco ASA-serien CLI Configuration Guide, 9.1 for mere information om NAT.

Konfigurer

kom i gang

den grundlæggende Asa-konfigurationsopsætning er tre grænseflader forbundet til tre netværkssegmenter. ISP-netværkssegmentet er forbundet til Ethernet0 / 0-grænsefladen og mærket udenfor med et sikkerhedsniveau på 0. Det interne netværk er blevet tilsluttet Ethernet0 / 1 og mærket som inside med et sikkerhedsniveau på 100. Det segment, hvor internetserveren befinder sig, er forbundet til Ethernet0/2 og mærket med et sikkerhedsniveau på 50.

interfacekonfigurationen og IP-adresserne for eksemplet ses her:

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

her kan du se, at ASA ‘ s indvendige grænseflade er indstillet med IP-adressen 192.168.0.1, og det er standardporten til de interne værter. ASA ‘ s eksterne grænseflade er konfigureret med en IP-adresse opnået fra internetudbyderen. Der er en standardrute på plads, som sætter næste hop til at være ISP-porten. Hvis du bruger DHCP, leveres dette automatisk. Det er en af de mest almindelige måder at gøre dette på, er at bruge en IP-adresse på 192.168.1.1.

topologi

her er et visuelt kig på, hvordan dette er kablet og konfigureret:

Trin 1-Konfigurer NAT for at tillade værter at gå ud på internettet

til dette eksempel objekt NAT, også kendt som AutoNAT, bruges. Den første ting at konfigurere er NAT-reglerne, der gør det muligt for værterne på indersiden og DMS-segmenterne at oprette forbindelse til internettet. Da disse værter bruger private IP-adresser, skal du oversætte dem til noget, der kan dirigeres på internettet. I dette tilfælde skal du oversætte adresserne, så de ligner ASA ‘ s eksterne interface-IP-adresse. Hvis din eksterne IP ofte ændres (måske på grund af DHCP), er dette den mest enkle måde at konfigurere dette på.

for at konfigurere denne NAT skal du oprette et netværksobjekt, der repræsenterer det indvendige undernet, såvel som et, der repræsenterer DMS-undernet. I hvert af disse objekter skal du konfigurere en dynamisk nat-regel, der vil Portadress Translation (PAT) disse klienter, når de passerer fra deres respektive grænseflader til den udvendige grænseflade.

denne konfiguration ligner denne:

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

hvis du ser på den løbende konfiguration på dette tidspunkt (med output fra kommandoen Vis Kør), vil du se, at objektdefinitionen er opdelt i to dele af output. Den første del angiver kun, hvad der er i objektet (vært/undernet, IP-adresse osv.), mens det andet afsnit viser, at NAT-reglen er bundet til det pågældende objekt. Hvis du tager den første post i den forrige udgang:

når værter, der matcher 192.168.0.0 / 24 subnet, krydser fra den indvendige grænseflade til den udvendige grænseflade, vil du dynamisk oversætte dem til den udvendige grænseflade.

Trin 2 – Konfigurer NAT for at få adgang til internetserveren fra internettet

nu hvor værterne på indersiden og DMS-grænsefladerne kan komme ud til internettet, skal du ændre konfigurationen, så brugere på internettet kan få adgang til vores internetserver på TCP-port 80. I dette eksempel er opsætningen sådan, at folk på internettet kan oprette forbindelse til en anden IP-adresse, som internetudbyderen leverede, en ekstra IP-adresse, vi ejer. I dette eksempel skal du bruge 198.51.100.101. Med denne konfiguration vil brugere på internettet kunne nå DMS – serveren ved at få adgang til 198.51.100.101 på TCP-port 80. Brug Object NAT til denne opgave, og ASA vil oversætte TCP-port 80 på internetserveren (192.168.1.100) til at ligne 198.51.100.101 på TCP-port 80 på ydersiden. På samme måde som det, der blev gjort tidligere, skal du definere et objekt og definere oversættelsesregler for det objekt. Definer også et andet objekt til at repræsentere den IP, du vil oversætte denne vært til.

denne konfiguration ligner denne:

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

bare for at opsummere, hvad den NAT-regel betyder i dette eksempel:

når en vært, der matcher IP-adressen 192.168.1.100 på segmenterne opretter en forbindelse hentet fra TCP-port 80, og den forbindelse går ud af den udvendige grænseflade, du vil oversætte den til TCP-port 80 på den udvendige grænseflade og oversætte den IP-adresse til at være 198.51.100.101.

det virker lidt underligt… “hentet fra TCP port 80”, men internettrafik er bestemt til port 80. Det er vigtigt at forstå, at disse NAT-regler er tovejs. Som et resultat kan du vende ordlyden rundt for at omformulere denne sætning. Resultatet giver meget mere mening:

når værter på ydersiden opretter en forbindelse til 198.51.100.101 på destination TCP-port 80, vil du oversætte destinations-IP-adressen til at være 192.168.1.100, og destinationsporten vil være TCP-port 80 og sende den ud.

dette giver mere mening, når det formuleres på denne måde. Dernæst skal du oprette ACL ‘ erne.

Trin 3 – Konfigurer ACLs

NAT er konfigureret, og slutningen af denne konfiguration er nær. Husk, at ACL ‘ ER på ASA giver dig mulighed for at tilsidesætte standardsikkerhedsadfærden, som er som følger:

  • trafik, der går fra en lavere sikkerhedsgrænseflade, nægtes, når den går til en højere sikkerhedsgrænseflade.
  • trafik, der går fra en højere sikkerhedsgrænseflade, er tilladt, når den går til en lavere sikkerhedsgrænseflade.

så uden tilføjelse af ACL ‘ ER til konfigurationen fungerer denne trafik i eksemplet:

  • værter på indersiden (sikkerhedsniveau 100) kan oprette forbindelse til værter på sikkerhedsniveau (sikkerhedsniveau 50).
  • værter på indersiden (sikkerhedsniveau 100) kan oprette forbindelse til værter på ydersiden (sikkerhedsniveau 0).
  • værter på sikkerhedsniveau 50 kan oprette forbindelse til værter på ydersiden (sikkerhedsniveau 0).

denne trafik nægtes dog:

  • værter på ydersiden (sikkerhedsniveau 0) kan ikke oprette forbindelse til værter på indersiden (sikkerhedsniveau 100).
  • værter på ydersiden (sikkerhedsniveau 0) kan ikke oprette forbindelse til værter på sikkerhedsniveau (sikkerhedsniveau 50).
  • værter på sikkerhedsniveau 50 kan ikke oprette forbindelse til værter på indersiden (sikkerhedsniveau 100).

da trafik udefra til netværket nægtes af ASA med sin nuværende konfiguration, kan brugere på internettet ikke nå internetserveren på trods af NAT-konfigurationen i trin 2. Du skal udtrykkeligt tillade denne trafik. I 8.3 og nyere kode skal du bruge den rigtige IP for værten i ACL og ikke den oversatte IP. Dette betyder, at konfigurationen skal tillade trafik bestemt til 192.168.1.100 og ikke trafik bestemt til 198.51.100.101 på port 80. For enkelhedens skyld vil de objekter, der er defineret i trin 2, også blive brugt til denne ACL. Når ACL er oprettet, skal du anvende den indgående på den udvendige grænseflade.

Sådan ser disse konfigurationskommandoer ud:

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

adgangslistelinjen angiver:

Tillad trafik fra enhver (hvor) til værten repræsenteret af objektets internetserver (192.168.1.100) på port 80.

det er vigtigt, at konfigurationen bruger ethvert nøgleord her. Da kilden IP-adressen på klienter ikke er kendt som det når din hjemmeside, angive enhver betydning ‘enhver IP-adresse’.

hvad med trafik fra DMSSEGMENTET, der er bestemt til værter på det indvendige netværkssegment? For eksempel skal en server på det indvendige netværk, som værterne på DMS skal oprette forbindelse til. Hvordan kan ASA kun tillade den specifikke trafik, der er bestemt til den indvendige server, og blokere alt andet, der er bestemt til det indvendige segment fra DMS?

i dette eksempel antages det, at der er en DNS-server på det indvendige netværk på IP-adresse 192.168.0.53, som værterne på DMR skal have adgang til for DNS-opløsning. Du opretter den nødvendige ACL og anvender den på grænsefladen, så ASA kan tilsidesætte den tidligere nævnte standardsikkerhedsadfærd for trafik, der kommer ind i grænsefladen.

Sådan ser disse konfigurationskommandoer ud:

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 er mere kompleks end blot at tillade denne trafik til DNS-serveren på UDP-port 53. Hvis alt, hvad vi gjorde, er den første ’tilladelseslinje’, ville al trafik blive blokeret fra DMS til værter på internettet. ACL ‘ER har en implicit’ deny ip any any ‘ i slutningen af ACL. Som følge heraf ville dine DM-værter ikke kunne gå ud på internettet. Selvom det som standard er tilladt at anvende en ACL på grænsefladen, er disse standardsikkerhedsadfærd for grænsefladen ikke længere gældende, og du skal udtrykkeligt tillade trafikken i grænsefladen ACL.

Trin 4 – Test konfiguration med Packet Tracer-funktionen

nu hvor konfigurationen er afsluttet, skal du teste den for at sikre, at den fungerer. Den nemmeste metode er at bruge faktiske værter (hvis dette er dit netværk). Af hensyn til at teste dette fra CLI og yderligere udforske nogle af asas værktøjer skal du dog bruge packet tracer for at teste og potentielt debugge eventuelle problemer.

Packet tracer fungerer ved at simulere en pakke baseret på en række parametre og injicere den pakke til grænsefladedatabanen, svarende til den måde, en pakke i det virkelige liv ville, hvis den blev hentet fra ledningen. Denne pakke følges gennem det utal af de kontroller og processer, der udføres, når den passerer gennem brandvæggen, og packet tracer noterer resultatet. Simulere den interne vært, der går ud til en vært på internettet. Kommandoen nedenfor instruerer brandmuren til:

simulere en TCP-pakke, der kommer i den indvendige grænseflade fra IP-adresse 192.168.0.125 på kildeport 12345 bestemt til en IP-adresse 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 er, at trafikken er tilladt, hvilketbetyder, at den passerede alle NAT-og ACL-kontrollerne i konfigurationen og blev sendt ud af udgangsgrænsefladen udenfor. Bemærk, at pakken blev oversat i fase 3, og detaljerne i den fase viser, hvilken regel der er ramt. Værten 192.168.0.125 oversættes dynamisk til 198.51.100.100 i henhold til konfigurationen.

kør det nu for en forbindelse fra internettet til internetserveren. Husk, at værter på internettet får adgang til internetserveren ved at oprette forbindelse til 198.51.100.101 på den udvendige grænseflade. Igen oversættes denne næste kommando til:

simulere en TCP-pakke, der kommer i den udvendige grænseflade fra IP-adresse 192.0.2.123 på kildeport 12345 bestemt til en IP-adresse 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

igen er resultatet, at pakken er tilladt. ACL ‘ erne tjekker ud, konfigurationen ser fint ud, og brugere på internettet (udenfor) skal kunne få adgang til denne internetserver med den eksterne IP.

Bekræft

verifikationsprocedurer er inkluderet i Trin 4 – testkonfiguration med Packet Tracer-funktionen.

fejlfinding

der er i øjeblikket ingen specifikke fejlfindingsoplysninger tilgængelige for denne konfiguration.

konklusion

konfigurationen af en ASA til at gøre grundlæggende NAT er ikke så skræmmende af en opgave. Eksemplet i dette dokument kan tilpasses dit specifikke scenarie, hvis du ændrer IP-adresser og porte, der bruges i eksempelkonfigurationerne. Den endelige Asa-konfiguration til dette, når den kombineres, ligner dette for 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, for eksempel med grænsefladerne forbundet som vist tidligere (udenfor forbundet til Ethernet0/0, inde forbundet til Ethernet0/1 og DMN forbundet til 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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.