basic asa Nat Configuration: Server web în DMZ în ASA Version 8.3 și versiuni ulterioare

Introducere

acest document oferă un exemplu simplu și direct al modului de configurare a traducerii adreselor de rețea (Nat) și a listelor de Control al accesului (ACL) pe un Firewall ASA pentru a permite conectivitatea de ieșire și de intrare. Acest document a fost scris cu un Adaptive Security Appliance (ASA) 5510 firewall decât rulează codul ASA versiunea 9.1(1), dar acest lucru se poate aplica cu ușurință la orice altă platformă ASA firewall. Dacă utilizați o platformă, cum ar fi un ASA 5505, care utilizează VLAN-uri în loc de o interfață fizică, trebuie să modificați tipurile de interfață, după caz.

cerințe preliminare

cerințe

nu există cerințe specifice pentru acest document.

componente utilizate

informațiile din acest document se bazează pe un firewall ASA 5510 care rulează codul ASA versiunea 9.1(1).

informațiile din acest document au fost create de la dispozitivele dintr-un mediu de laborator specific. Toate dispozitivele utilizate în acest document au început cu o configurație eliminată (implicită). Dacă rețeaua dvs. este live, Asigurați-vă că înțelegeți impactul potențial al oricărei comenzi.

Prezentare generală

obiective

în această configurație de exemplu, puteți să vă uitați la ce configurație NAT și ACL vor fi necesare pentru a permite accesul de intrare la un server web în DMZ al unui firewall ASA și pentru a permite conectivitatea de ieșire de la gazdele interne și DMZ. Acest lucru poate fi rezumat ca două obiective:

  1. permiteți gazdelor din interior și conectivitatea de ieșire DMZ la Internet.
  2. permiteți gazdelor de pe Internet să acceseze un server web pe DMZ cu o adresă IP de 192.168.1.100.

înainte de a ajunge la pașii care trebuie finalizați pentru a realiza aceste două obiective, acest document trece pe scurt modul în care ACL-urile și NAT lucrează la versiunile mai noi ale codului ASA (versiunea 8.3 și versiunile ulterioare).

Lista de control acces prezentare generală

listele de Control acces (liste de acces sau ACL-uri pe scurt) sunt metoda prin care firewall-ul ASA determină dacă traficul este permis sau refuzat. În mod implicit, traficul care trece de la un nivel de securitate inferior la unul superior este refuzat. Acest lucru poate fi înlocuit de un ACL aplicat acelei interfețe de securitate mai mici. De asemenea, ASA, în mod implicit, permite traficul de la interfețe de securitate mai mari la mai mici. Acest comportament poate fi, de asemenea, înlocuit cu un ACL.

în versiunile anterioare ale codului ASA (8.2 și anterioare), ASA a comparat o conexiune sau un pachet de intrare cu ACL pe o interfață fără a traduce mai întâi pachetul. Cu alte cuvinte, ACL a trebuit să permită pachetul ca și cum ați captura acel pachet pe interfață. În versiunea 8.3 și cod mai târziu, asa untradlates că pachetul înainte de a verifica ACL-uri de interfață. Aceasta înseamnă că pentru codul 8.3 și ulterior și acest document, traficul către IP-ul real al gazdei este permis și nu ip-ul tradus al gazdei.

consultați secțiunea Configurarea regulilor de acces din Cartea 2: Cisco ASA Series Firewall CLI Configuration Guide, 9.1 pentru mai multe informații despre ACL-uri.

Nat Prezentare generală

NAT pe ASA în versiunea 8.3 și mai târziu este împărțit în două tipuri cunoscute sub numele de Auto Nat (obiect NAT) și Manual Nat (de două ori Nat). Primul dintre cele două, Object NAT, este configurat în definiția unui obiect de rețea. Un exemplu în acest sens este furnizat mai târziu în acest document. Un avantaj principal al acestei metode NAT este că ASA comandă automat regulile de procesare pentru a evita conflictele. Aceasta este cea mai ușoară formă de NAT, dar cu această ușurință vine o limitare a granularității configurației. De exemplu, nu puteți lua o decizie de traducere pe baza destinației din pachet, așa cum ați putea cu al doilea tip de Nat, Manual Nat. Nat Manual este mai robust în granularitatea sa, dar necesită ca liniile să fie configurate în ordinea corectă, astfel încât să poată obține comportamentul corect. Acest lucru complică acest tip NAT și, ca urmare, nu va fi utilizat în acest exemplu de configurare.

consultați secțiunea Informații despre NAT din Cartea 2: Cisco ASA Series Firewall CLI Configuration Guide, 9.1 pentru mai multe informații despre nat.

Configure

Noțiuni de bază

configurarea de bază a ASA este formată din trei interfețe conectate la trei segmente de rețea. Segmentul de rețea ISP este conectat la interfața Ethernet0/0 și etichetat în exterior cu un nivel de securitate de 0. Rețeaua internă a fost conectată la Ethernet0 / 1 și etichetată ca în interior cu un nivel de securitate de 100. Segmentul DMZ, unde se află serverul web, este conectat la Ethernet0 / 2 și etichetat ca DMZ cu un nivel de securitate de 50.

configurația interfeței și adresele IP pentru exemplu sunt văzute aici:

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

aici puteți vedea că interfața interioară a ASA este setată cu adresa IP a 192.168.0.1 și este gateway-ul implicit pentru gazdele interne. Interfața exterioară a ASA este configurată cu o adresă IP obținută de la ISP. Există o rută implicită în loc, care stabilește următorul hop pentru a fi gateway-ul ISP. Dacă utilizați DHCP acest lucru este furnizat automat. Interfața DMZ este configurată cu adresa IP a 192.168.1.1 și este gateway-ul implicit pentru gazdele din segmentul de rețea DMZ.

topologie

Iată o privire vizuală asupra modului în care este cablat și configurat:

Step 1-Configurarea NAT pentru a permite gazdelor să iasă la Internet

pentru acest exemplu obiect NAT, de asemenea, cunoscut sub numele de AutoNAT, este folosit. Primul lucru de configurat este Regulile NAT care permit gazdelor din segmentele interior și DMZ să se conecteze la Internet. Deoarece aceste gazde folosesc adrese IP private, trebuie să le traduceți în ceva care poate fi rutat pe Internet. În acest caz, traduceți adresele astfel încât să arate ca adresa IP a interfeței exterioare a ASA. Dacă IP-ul dvs. extern se schimbă frecvent (probabil din cauza DHCP), acesta este cel mai simplu mod de a configura acest lucru.

pentru a configura acest NAT, trebuie să creați un obiect de rețea care reprezintă subrețeaua interioară, precum și unul care reprezintă subrețeaua DMZ. În fiecare dintre aceste obiecte, configurați o regulă dinamică NAT care va Porta traducerea adresei (PAT) acești clienți pe măsură ce trec de la interfețele respective la interfața exterioară.

această configurație arată similar cu aceasta:

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

dacă vă uitați la configurația de rulare în acest moment (cu ieșirea comenzii show run), veți vedea că definiția obiectului este împărțită în două părți ale ieșirii. Prima parte indică doar ceea ce este în obiect (gazdă/subrețea, adresa IP, și așa mai departe), în timp ce a doua secțiune arată că regula nat legat de acel obiect. Dacă luați prima intrare în ieșirea anterioară:

când gazdele care se potrivesc 192.168.0.0 / 24 traversa subrețea de la interfața interioară la interfața exterioară, doriți să le traduceți dinamic la interfața exterioară.

Pasul 2 – Configurați nat pentru a accesa serverul Web de pe Internet

acum că gazdele din interior și interfețele DMZ pot ieși la Internet, trebuie să modificați configurația astfel încât utilizatorii de pe Internet să poată accesa serverul nostru web pe portul TCP 80. În acest exemplu, configurarea este astfel încât oamenii de pe Internet să se poată conecta la o altă adresă IP furnizată de ISP, o adresă IP suplimentară pe care o deținem. Pentru acest exemplu, utilizați 198.51.100.101. Cu această configurație, utilizatorii de pe Internet vor putea ajunge la serverul web DMZ accesând 198.51.100.101 pe portul TCP 80. Utilizați Object nat pentru această sarcină, iar ASA va traduce portul TCP 80 pe serverul web (192.168.1.100) pentru a arăta ca 198.51.100.101 pe portul TCP 80 din exterior. Similar cu ceea ce s-a făcut anterior, definiți un obiect și definiți regulile de traducere pentru acel obiect. De asemenea, definiți un al doilea obiect pentru a reprezenta IP-ul în care veți traduce această gazdă.

această configurație arată similar cu aceasta:

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

doar pentru a rezuma ce înseamnă acea regulă NAT în acest exemplu:

atunci când o gazdă care se potrivește cu adresa IP 192.168.1.100 pe segmentele DMZ stabilește o conexiune provenită din portul TCP 80 (www) și acea conexiune iese din interfața exterioară, doriți să traduceți portul TCP 80 (www) pe interfața exterioară și să traduceți adresa IP să fie 198.51.100.101.

pare puțin ciudat… „provenind din portul TCP 80 (www)”, dar traficul web este destinat portului 80. Este important să înțelegem că aceste reguli NAT sunt de natură bidirecțională. Drept urmare, puteți răsturna formularea pentru a reformula această propoziție. Rezultatul are mult mai mult sens:

când gazdele din exterior stabilesc o conexiune la 198.51.100.101 pe portul TCP de destinație 80 (www), veți traduce adresa IP de destinație pentru a fi 192.168.1.100, iar portul de destinație va fi portul TCP 80 (www) și îl veți trimite în DMZ.

acest lucru are mai mult sens atunci când este formulat în acest fel. Apoi, trebuie să configurați ACL-urile.

Pasul 3 – configurați ACL-urile

NAT este configurat și sfârșitul acestei configurații este aproape. Amintiți – vă, ACL-uri pe ASA vă permit să suprascrie comportamentul de securitate implicit, care este după cum urmează:

  • traficul care merge de la o interfață de securitate mai mică este refuzat atunci când merge la o interfață de securitate mai mare.
  • traficul care merge de la o interfață de securitate mai mare este permis atunci când merge la o interfață de securitate mai mică.

deci, fără adăugarea oricăror ACL-uri la configurație, acest trafic din exemplu funcționează:

  • gazdele din interior (nivelul de securitate 100) se pot conecta la gazdele de pe DMZ (nivelul de securitate 50).
  • gazdele din interior (nivelul de securitate 100) se pot conecta la gazdele din exterior (nivelul de securitate 0).
  • gazdele de pe DMZ (nivelul de securitate 50) se pot conecta la gazdele din exterior (nivelul de securitate 0).

cu toate acestea, acest trafic este refuzat:

  • gazdele din exterior (nivel de securitate 0) nu se pot conecta la gazdele din interior (nivel de securitate 100).
  • gazdele din exterior (nivel de securitate 0) nu se pot conecta la gazdele din DMZ (nivel de securitate 50).
  • gazdele de pe DMZ (nivel de securitate 50) nu se pot conecta la gazdele din interior (nivel de securitate 100).

deoarece traficul din exterior către rețeaua DMZ este refuzat de ASA cu configurația sa actuală, utilizatorii de pe Internet nu pot ajunge la serverul web în ciuda configurației NAT din pasul 2. Trebuie să permiteți în mod explicit acest trafic. În codul 8.3 și ulterior trebuie să utilizați IP-ul Real al gazdei în ACL și nu ip-ul tradus. Aceasta înseamnă că configurația trebuie să permită traficul destinat 192.168.1.100 și nu traficul destinat 198.51.100.101 pe portul 80. De dragul simplității, obiectele definite în pasul 2 vor fi utilizate și pentru acest ACL. Odată ce ACL este creat, trebuie să îl aplicați inbound pe interfața exterioară.

Iată cum arată aceste comenzi de configurare:

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

linia listă de acces:

permiteți traficul de la orice (unde) către gazda reprezentată de serverul web obiect (192.168.1.100) pe portul 80.

este important ca configurația să utilizeze orice cuvânt cheie aici. Deoarece adresa IP sursă a clienților nu este cunoscută deoarece ajunge pe site-ul dvs. web, specificați orice semnificație ‘orice adresă IP’.

cum rămâne cu traficul din segmentul DMZ destinat gazdelor din segmentul de rețea interioară? De exemplu, un server din rețeaua interioară la care gazdele de pe DMZ trebuie să se conecteze. Cum poate ASA să permită doar acel trafic specific destinat serverului interior și să blocheze orice altceva destinat segmentului interior din DMZ?

în acest exemplu se presupune că există un server DNS în interiorul rețelei la adresa IP 192.168.0.53 pe care gazdele de pe DMZ trebuie să le acceseze pentru rezoluția DNS. Creați ACL-ul necesar și aplicați-l la interfața DMZ, astfel încât ASA să poată suprascrie acel comportament de securitate implicit, menționat anterior, pentru traficul care intră în acea interfață.

Iată cum arată aceste comenzi de configurare:

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 este mai complex decât să permită pur și simplu acel trafic către serverul DNS pe portul UDP 53. Dacă tot ce am făcut este prima linie de permis, atunci tot traficul ar fi blocat de la DMZ la gazdele de pe Internet. ACL-urile au un implicit ‘deny ip any any’ la sfârșitul ACL-ului. Drept urmare, gazdele dvs. DMZ nu ar putea ieși pe Internet. Chiar dacă traficul de la DMZ la exterior este permis în mod implicit, cu aplicarea unui ACL la interfața DMZ, acele comportamente de securitate implicite pentru interfața DMZ nu mai sunt în vigoare și trebuie să permiteți în mod explicit traficul în interfața ACL.

Pasul 4 – testați configurația cu caracteristica de urmărire a pachetelor

acum că configurația este finalizată, trebuie să o testați pentru a vă asigura că funcționează. Cea mai ușoară metodă este să utilizați gazde reale (dacă aceasta este rețeaua dvs.). Cu toate acestea, în interesul testării acestui lucru de la CLI și explorării în continuare a unora dintre instrumentele ASA, utilizați tracerul de pachete pentru a testa și a depana eventualele probleme întâmpinate.

Packet tracer funcționează simulând un pachet bazat pe o serie de parametri și injectând acel pachet pe calea de date a interfeței, similar cu modul în care un pachet din viața reală ar fi dacă ar fi fost preluat de pe fir. Acest pachet este urmat prin multitudinea de verificări și procese care se fac pe măsură ce trece prin firewall, iar Packet tracer notează rezultatul. Simulați gazda internă care iese la o gazdă pe Internet. Comanda de mai jos instruiește firewall-ul să:

Simulați un pachet TCP care vine în interfața interioară de la adresa IP 192.168.0.125 pe portul sursă 12345 destinat unei adrese IP de 203.0.113.1 pe portul 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

rezultatul final este că traficul este permis, careînseamnă că a trecut toate verificările NAT și ACL în configurație și a fost trimisă interfața de ieșire, în afara. Rețineți că pachetul a fost tradus în faza 3 și detaliile acelei faze arată ce regulă este lovită. Gazda 192.168.0.125 este tradus dinamic la 198.51.100.100 conform configurației.

acum, rulați-l pentru o conexiune de la Internet la serverul web. Amintiți-vă, gazdele de pe Internet vor accesa serverul web conectându-se la 198.51.100.101 pe interfața exterioară. Din nou, această comandă următoare se traduce prin:

Simulați un pachet TCP care vine în interfața exterioară de la adresa IP 192.0.2.123 pe portul sursă 12345 destinat unei adrese IP de 198.51.100.101 pe portul 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

din nou, rezultatul este că pachetul este permis. Verificarea ACL-urilor, configurația arată bine, iar utilizatorii de pe Internet (din exterior) ar trebui să poată accesa acel server web cu IP-ul extern.

verificați dacă procedurile de verificare

sunt incluse în pasul 4 – Configurarea testării cu caracteristica Packet Tracer.

depanare

în prezent nu există informații specifice de depanare disponibile pentru această configurație.

concluzie

configurarea unui ASA pentru a face nat de bază nu este atât de descurajantă a unei sarcini. Exemplul din acest document poate fi adaptat scenariului dvs. specific dacă modificați adresele IP și porturile utilizate în configurațiile exemplului. Configurația finală ASA pentru aceasta, atunci când este combinată, arată similar cu aceasta pentru un 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

pe un ASA 5505, de exemplu, cu interfețele conectate așa cum s-a arătat anterior (în exterior conectat la Ethernet0 / 0, în interior conectat la Ethernet0 / 1 și DMZ conectat la 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

Lasă un răspuns

Adresa ta de email nu va fi publicată.