Configurazione statica di Cisco ASA NAT
Contenuto della lezione
Nelle lezioni precedenti ho spiegato come utilizzare dynamic NAT o PAT in modo che i tuoi host o server all’interno della tua rete siano in grado di accedere al mondo esterno. Questo è grande, ma è solo per il traffico in uscita o in “terminologia ASA” – traffico da un livello di sicurezza più elevato andando a un livello di sicurezza più basso.
Cosa succede se un host esterno su Internet vuole raggiungere un server sul nostro interno o DMZ? Questo è impossibile con solo NAT dinamico o PAT. Quando vogliamo raggiungere questo obiettivo dobbiamo fare due cose:
- Configurare NAT statico in modo che il server interno sia raggiungibile tramite un indirizzo IP pubblico esterno.
- Configurare un access-list in modo che il traffico sia consentito.
Per dimostrare NAT statico userò la seguente topologia:
Sopra abbiamo il nostro firewall ASA con due interfacce; una per la DMZ e un’altra per il mondo esterno. Immagina che R1 sia un server Web sulla DMZ mentre R2 è un host su Internet che vuole raggiungere il nostro server Web. Configuriamo il nostro firewall in modo che ciò sia possibile
Configurazione NAT statica
Per prima cosa creeremo un oggetto di rete che definisce il nostro “webserver” nella DMZ e configureremo anche a quale indirizzo IP dovrebbe essere tradotto. Questa configurazione è per ASA versione 8.3 e successive:
ASA1(config)# object network WEB_SERVERASA1(config-network-object)# host 192.168.1.1ASA1(config-network-object)# nat (DMZ,OUTSIDE) static 192.168.2.200
La configurazione sopra indica all’ASA che ogni volta che un dispositivo esterno si connette all’indirizzo IP 192.168.2.200 dovrebbe essere tradotto all’indirizzo IP 192.168.1.1. Questo si occupa di NAT, ma dobbiamo ancora creare un elenco di accesso o il traffico verrà eliminato:
ASA1(config)# access-list OUTSIDE_TO_DMZ extended permit tcp any host 192.168.1.1
L’access-list di cui sopra consente a qualsiasi indirizzo IP di origine di connettersi all’indirizzo IP 192.168.1.1. Quando si utilizza ASA versione 8.3 o successiva è necessario specificare l’indirizzo IP “reale”, non l’indirizzo “NAT tradotto”. Attiviamo questa lista di accesso:
ASA1(config)# access-group OUTSIDE_TO_DMZ in interface OUTSIDE
Ciò abilita l’access-list sull’interfaccia esterna. Facciamo telnet da R2 a R1 sulla porta TCP 80 per vedere se funziona:
R2#telnet 192.168.2.200Trying 192.168.2.200 ... Open
Ottimo, siamo in grado di connetterci da R2 a R1, diamo un’occhiata all’ASA per verificare alcune cose:
ASA1# show xlate1 in use, 1 most usedFlags: D - DNS, e - extended, I - identity, i - dynamic, r - portmap, s - static, T - twice, N - net-to-netNAT from DMZ:192.168.1.1 to OUTSIDE:192.168.2.200 flags s idle 0:08:44 timeout 0:00:00
ASA1# show access-listaccess-list cached ACL log flows: total 0, denied 0 (deny-flow-max 4096) alert-interval 300access-list OUTSIDE_TO_DMZ; 1 elements; name hash: 0xe96c1ef3access-list OUTSIDE_TO_DMZ line 1 extended permit tcp any host 192.168.1.1 eq www (hitcnt=6) 0x408b914e
Sopra puoi vedere la voce NAT statica e anche il colpo sulla lista di accesso. Tutto funziona come dovrebbe essere.
NAT statico per l’intera sottorete
L’esempio precedente andava bene se si hanno solo pochi server poiché è possibile creare un paio di traduzioni NAT statiche ed essere fatto con esso. C’è un’altra opzione però, è anche possibile tradurre un’intera sottorete in un intero pool di indirizzi IP. Lasciate che vi faccia un esempio di ciò di cui sto parlando:
La topologia sopra è esattamente la stessa dell’esempio precedente, ma ho aggiunto R3 alla DMZ. Ora immagina che il nostro ISP ci abbia dato un pool di indirizzi IP, diciamo 10.10.10.0 /24. Possiamo usare questo pool per tradurre tutti i server nella DMZ, lascia che ti mostri come: