Configuración de política de seguridad y PAT en FW PAN

fw

Para este post, mostraré como configurar la interfaz de management del Firewall Palo Alto Networks, una política de seguridad para permitir el acceso a Internet a los usuarios de la red, y la configuración del PAT para la salida a Internet usando la IP pública del FW.

Para la conexión de los clientes de la red hacia Internet, vamos a permitir solamente:

  • Web
  • SSL
  • DNS

Para este laboratório, utilizaré la siguiente topología:

fw01

Lo primero que haré, será la configuración de la interfaz de mgmt del FW para poder acceder este vía un navegador web:

admin@PA-VM> configure 
Entering configuration mode
[edit]                                                                                                                                                        
admin@PA-VM# set deviceconfig system ip-address 10.1.1.254 netmask 255.255.255.0 default-gateway 10.1.1.1 dns-setting servers primary 9.9.9.9 secondary 8.8.8.8

[edit]                                                                                                                                                        
admin@PA-VM# commit 



Commit job 2 is in progress. Use Ctrl+C to return to command prompt
...55%75%.....100%
Configuration committed successfully

[edit]                                                                                                                                                        
admin@PA-VM#

Ahora que tenemos configurada la interfaz de mgmt del equipo, podemos acceder a través de un navegador web, usando las credenciales de superuser (las por defecto admin/admin):

fw02

Luego de acceder al equipo vía GUI, nos vamos a Policie > Security, donde podemos observar que se tienen dos políticas, las cuales vienen por defecto, donde la primera indica que se permite la comunicación entre equipos dentro de la misma zona, mientras que la segunda, especifica que no se permite la comunicación entre equipos de zonas diferentes.

fw03

NOTA: es necesario destacar que, al momento de crear nuevas políticas, las que vienen por defecto en el FW quedan en las últimas líneas y, además, estas no pueden ser eliminadas. También, cabe mencionar, que las políticas se leen de arriba hacia abajo, entonces, la primera con la que hace match, el FW deja de buscar que política aplicar (como consejo, es recomendable configurar las políticas más específicas primero, y después, las más generales).

Para agregar una nueva política de seguridad, damos clic en Add:

fw04

Lo primero que debemos hacer, es especificar un nombre (y si queremos, podemos dar una descripción a esta):

fw05

Luego especificamos la zona y la red de origen que, en mi caso será desde la red LAN (segmento 10.1.1.0/24):

fw06

Otro campo obligatorio de la policy es indicar a zona de destino, que es la zona outside, y como la política es para el acceso a Internet, el destino es Any:

fw07

Como se especificó en un comienzo, solo se permite el tráfico SSL, DNS y Web:

fw08

Característica de la aplicación SSL:

fw09

Característica de la aplicación DNS:

fw10

Característica de la aplicación Web:

fw11

Y por último, la acción será Allow para permitir este tráfico:

fw12

Como se indicó, la política creada queda sobre las que vienen por defecto:

fw13

Para configurar el NAT, nos vamos a Policies > NAT > Add:

fw14

Al igual que en la política, le damos un nombre y una descripción:

fw15

Luego indicamos desde donde viene y hacia dónde va el paquete antes de ser nateado:

fw16

Y por último indicamos que al momento de hacer el NAT, este será con overload (también conocido como PAT [Port Address Translation]):

fw17

Y podemos ver cómo quedó configurado el NAT:

fw18

Para que el FW aplique todos los cambios que realizamos, es necesario dar clic en Commit:

fw19

Y en caso de que todo quede OK, les debería salir un pop-up similar al de abajo:

fw20

Luego desde una máquina desde la LAN hacemos pruebas de ping para saber si llegamos al gateway de la red (que es el FW):

wf@ubuntu:~$ ping 10.1.1.1
PING 10.1.1.1 (10.1.1.1) 56(84) bytes of data.
64 bytes from 10.1.1.1: icmp_seq=1 ttl=64 time=1.91 ms
64 bytes from 10.1.1.1: icmp_seq=2 ttl=64 time=1.65 ms
64 bytes from 10.1.1.1: icmp_seq=3 ttl=64 time=1.97 ms
^C
--- 10.1.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.654/1.849/1.977/0.140 ms

Luego revisamos si el Ubuntu puede resolver nombres:

wf@ubuntu:~$ nslookup
> www.google.com
Server:		127.0.1.1
Address:	127.0.1.1#53

Non-authoritative answer:
Name:	www.google.com
Address: 64.233.190.103
Name:	www.google.com
Address: 64.233.190.105
Name:	www.google.com
Address: 64.233.190.147
Name:	www.google.com
Address: 64.233.190.104
Name:	www.google.com
Address: 64.233.190.106
Name:	www.google.com
Address: 64.233.190.99
> ^Cwf@ubuntu:~$ ping www.google.com
PING www.google.com (64.233.190.103) 56(84) bytes of data.
^C
--- www.google.com ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2055ms

wf@ubuntu:~$

Como se puede apreciar en el output del cliente, al momento de hacer un nslookup, este resuelve el nombre, y en el ping también resuelve el nombre (pero como no está habilitado en el FW, no sale el ping).

Luego vemos la prueba de una conexión a una página:

fw21

Y podemos ver que se permite el SSL:

fw22

Para ver el tráfico en el FW, pueden ir a la pestaña Monitor > Logs > Traffic, pero en este caso, mostraré cómo verlo en la CLI.

Para ver el tráfico pasando por el Palo Alto, usamos el comando show session all:

admin@PA-VM> show session all

--------------------------------------------------------------------------------
ID          Application    State   Type Flag  Src[Sport]/Zone/Proto (translated IP[Port])
Vsys                                          Dst[Dport]/Zone (translated IP[Port])
--------------------------------------------------------------------------------
89           ocsp           DISCARD FLOW  NS   10.1.1.50[47058]/inside/6  (200.0.0.1[12307])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
106          ssl            ACTIVE  FLOW  NS   10.1.1.50[51284]/inside/6  (200.0.0.1[64732])
vsys1                                          104.92.131.126[443]/outside  (104.92.131.126[443])
87           ocsp           DISCARD FLOW  NS   10.1.1.50[47054]/inside/6  (200.0.0.1[25513])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
132          ocsp           DISCARD FLOW  NS   10.1.1.50[47144]/inside/6  (200.0.0.1[52374])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
101          ocsp           DISCARD FLOW  NS   10.1.1.50[47082]/inside/6  (200.0.0.1[35626])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
140          ssl            ACTIVE  FLOW  NS   10.1.1.50[35278]/inside/6  (200.0.0.1[59306])
vsys1                                          172.82.210.19[443]/outside  (172.82.210.19[443])
81           ssl            ACTIVE  FLOW  NS   10.1.1.50[46514]/inside/6  (200.0.0.1[22108])
vsys1                                          52.31.122.196[443]/outside  (52.31.122.196[443])
117          ssl            ACTIVE  FLOW  NS   10.1.1.50[44184]/inside/6  (200.0.0.1[34952])
vsys1                                          35.166.31.163[443]/outside  (35.166.31.163[443])
90           ocsp           DISCARD FLOW  NS   10.1.1.50[47060]/inside/6  (200.0.0.1[48381])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
119          ssl            ACTIVE  FLOW  NS   10.1.1.50[44188]/inside/6  (200.0.0.1[65490])
vsys1                                          35.166.31.163[443]/outside  (35.166.31.163[443])
75           ocsp           DISCARD FLOW  NS   10.1.1.50[47030]/inside/6  (200.0.0.1[1382])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
145          ssl            ACTIVE  FLOW  NS   10.1.1.50[53948]/inside/6  (200.0.0.1[15997])
vsys1                                          54.191.241.246[443]/outside  (54.191.241.246[443])
91           ocsp           DISCARD FLOW  NS   10.1.1.50[47062]/inside/6  (200.0.0.1[50973])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
85           ocsp           DISCARD FLOW  NS   10.1.1.50[54324]/inside/6  (200.0.0.1[15183])
vsys1                                          35.156.236.11[80]/outside  (35.156.236.11[80])
68           web-browsing   ACTIVE  FLOW  NS   10.1.1.50[39704]/inside/6  (200.0.0.1[18938])
vsys1                                          23.215.103.19[80]/outside  (23.215.103.19[80])
148          ocsp           DISCARD FLOW  NS   10.1.1.50[47176]/inside/6  (200.0.0.1[2309])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
129          ocsp           DISCARD FLOW  NS   10.1.1.50[47138]/inside/6  (200.0.0.1[52041])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
133          ocsp           DISCARD FLOW  NS   10.1.1.50[47146]/inside/6  (200.0.0.1[32822])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
144          ssl            ACTIVE  FLOW  NS   10.1.1.50[53946]/inside/6  (200.0.0.1[62576])
vsys1                                          54.191.241.246[443]/outside  (54.191.241.246[443])
104          ocsp           DISCARD FLOW  NS   10.1.1.50[47088]/inside/6  (200.0.0.1[10621])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
100          ssl            ACTIVE  FLOW  NS   10.1.1.50[41314]/inside/6  (200.0.0.1[52173])
vsys1                                          54.71.189.148[443]/outside  (54.71.189.148[443])
70           ssl            ACTIVE  FLOW  NS   10.1.1.50[47336]/inside/6  (200.0.0.1[53375])
vsys1                                          52.43.9.103[443]/outside  (52.43.9.103[443])
76           ocsp           DISCARD FLOW  NS   10.1.1.50[47032]/inside/6  (200.0.0.1[27148])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
99           google-base    DISCARD FLOW  NS   10.1.1.50[38506]/inside/6  (200.0.0.1[26852])
vsys1                                          64.233.186.95[443]/outside  (64.233.186.95[443])
142          ssl            ACTIVE  FLOW  NS   10.1.1.50[55796]/inside/6  (200.0.0.1[35717])
vsys1                                          52.84.170.253[443]/outside  (52.84.170.253[443])
116          ssl            ACTIVE  FLOW  NS   10.1.1.50[44182]/inside/6  (200.0.0.1[51255])
vsys1                                          35.166.31.163[443]/outside  (35.166.31.163[443])
127          ocsp           DISCARD FLOW  NS   10.1.1.50[47134]/inside/6  (200.0.0.1[35184])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
96           ssl            ACTIVE  FLOW  NS   10.1.1.50[54268]/inside/6  (200.0.0.1[52449])
vsys1                                          34.211.99.53[443]/outside  (34.211.99.53[443])
118          ssl            ACTIVE  FLOW  NS   10.1.1.50[44186]/inside/6  (200.0.0.1[27761])
vsys1                                          35.166.31.163[443]/outside  (35.166.31.163[443])
77           ocsp           DISCARD FLOW  NS   10.1.1.50[47034]/inside/6  (200.0.0.1[37773])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
107          ocsp           DISCARD FLOW  NS   10.1.1.50[54368]/inside/6  (200.0.0.1[12239])
vsys1                                          35.156.236.11[80]/outside  (35.156.236.11[80])
73           ssl            ACTIVE  FLOW  NS   10.1.1.50[43596]/inside/6  (200.0.0.1[51782])
vsys1                                          52.84.177.87[443]/outside  (52.84.177.87[443])
128          ocsp           DISCARD FLOW  NS   10.1.1.50[47136]/inside/6  (200.0.0.1[53090])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
143          ssl            ACTIVE  FLOW  NS   10.1.1.50[53944]/inside/6  (200.0.0.1[49827])
vsys1                                          54.191.241.246[443]/outside  (54.191.241.246[443])
74           ocsp           DISCARD FLOW  NS   10.1.1.50[47028]/inside/6  (200.0.0.1[61622])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
130          ocsp           DISCARD FLOW  NS   10.1.1.50[47140]/inside/6  (200.0.0.1[49022])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
139          ssl            ACTIVE  FLOW  NS   10.1.1.50[54430]/inside/6  (200.0.0.1[48819])
vsys1                                          52.43.87.30[443]/outside  (52.43.87.30[443])
94           google-base    DISCARD FLOW  NS   10.1.1.50[35398]/inside/6  (200.0.0.1[9130])
vsys1                                          64.233.186.190[443]/outside  (64.233.186.190[443])
131          ocsp           DISCARD FLOW  NS   10.1.1.50[47142]/inside/6  (200.0.0.1[25020])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
102          ssl            ACTIVE  FLOW  NS   10.1.1.50[60110]/inside/6  (200.0.0.1[62972])
vsys1                                          23.34.165.25[443]/outside  (23.34.165.25[443])
95           google-base    DISCARD FLOW  NS   10.1.1.50[35400]/inside/6  (200.0.0.1[59963])
vsys1                                          64.233.186.190[443]/outside  (64.233.186.190[443])
115          ssl            ACTIVE  FLOW  NS   10.1.1.50[44180]/inside/6  (200.0.0.1[27516])
vsys1                                          35.166.31.163[443]/outside  (35.166.31.163[443])
109          twitter-base   DISCARD FLOW  NS   10.1.1.50[34496]/inside/6  (200.0.0.1[62701])
vsys1                                          199.96.57.6[443]/outside  (199.96.57.6[443])
147          ocsp           DISCARD FLOW  NS   10.1.1.50[47174]/inside/6  (200.0.0.1[44507])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
79           ssl            ACTIVE  FLOW  NS   10.1.1.50[57620]/inside/6  (200.0.0.1[45721])
vsys1                                          104.91.179.72[443]/outside  (104.91.179.72[443])
136          google-base    DISCARD FLOW  NS   10.1.1.50[44394]/inside/6  (200.0.0.1[63321])
vsys1                                          64.233.186.149[443]/outside  (64.233.186.149[443])
84           ssl            ACTIVE  FLOW  NS   10.1.1.50[55220]/inside/6  (200.0.0.1[30838])
vsys1                                          23.3.253.160[443]/outside  (23.3.253.160[443])
80           ssl            ACTIVE  FLOW  NS   10.1.1.50[57622]/inside/6  (200.0.0.1[53096])
vsys1                                          104.91.179.72[443]/outside  (104.91.179.72[443])
138          ssl            ACTIVE  FLOW  NS   10.1.1.50[55948]/inside/6  (200.0.0.1[7352])
vsys1                                          54.207.76.183[443]/outside  (54.207.76.183[443])
149          ssl            ACTIVE  FLOW  NS   10.1.1.50[45994]/inside/6  (200.0.0.1[15179])
vsys1                                          72.163.10.10[443]/outside  (72.163.10.10[443])
114          ssl            ACTIVE  FLOW  NS   10.1.1.50[44178]/inside/6  (200.0.0.1[45530])
vsys1                                          35.166.31.163[443]/outside  (35.166.31.163[443])
69           ssl            ACTIVE  FLOW  NS   10.1.1.50[54214]/inside/6  (200.0.0.1[51844])
vsys1                                          34.211.99.53[443]/outside  (34.211.99.53[443])
110          facebook-base  DISCARD FLOW  NS   10.1.1.50[49778]/inside/6  (200.0.0.1[48275])
vsys1                                          31.13.67.20[443]/outside  (31.13.67.20[443])
112          ocsp           DISCARD FLOW  NS   10.1.1.50[45740]/inside/6  (200.0.0.1[37004])
vsys1                                          23.64.171.27[80]/outside  (23.64.171.27[80])
111          linkedin-base  DISCARD FLOW  NS   10.1.1.50[46106]/inside/6  (200.0.0.1[42181])
vsys1                                          192.229.173.136[443]/outside  (192.229.173.136[443])
88           ocsp           DISCARD FLOW  NS   10.1.1.50[47056]/inside/6  (200.0.0.1[33621])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
67           dns            ACTIVE  FLOW  NS   10.1.1.50[33605]/inside/17  (200.0.0.1[55670])
vsys1                                          9.9.9.9[53]/outside  (9.9.9.9[53])
126          ocsp           DISCARD FLOW  NS   10.1.1.50[47132]/inside/6  (200.0.0.1[28599])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
97           ssl            ACTIVE  FLOW  NS   10.1.1.50[55246]/inside/6  (200.0.0.1[13481])
vsys1                                          23.3.253.160[443]/outside  (23.3.253.160[443])
146          ocsp           DISCARD FLOW  NS   10.1.1.50[47172]/inside/6  (200.0.0.1[25791])
vsys1                                          72.21.91.29[80]/outside  (72.21.91.29[80])
admin@PA-VM>

Todo lo que está en azul, es lo permitido en la política de seguridad, pero como se ve, google, twitter, facebook y linkedin no se están permitiendo, porque el firewall los toma como aplicaciones, y como la app no está en la política, se bloquea.

Para ver el NAT, usamos los siguientes comandos: show running global-ippool y show running ippool.

admin@PA-VM> show running global-ippool

Idx  Type             From                             To              ToNum Ref. Cnt Mem Size Ratio Ready
---- ---------------  -------------------------------- --------------- ----- -------- -------- ----- ------
1    Dynamic IP/Port 10.1.1.0-9.2.1.0                 200.0.0.1       1     1           20376     2 k1 /p1

Usable NAT DIP/DIPP shared memory size: 34615700
Used NAT DIP/DIPP shared memory size: 20376(0.06%)
Dynamic IP NAT Pool: 0(0.00%)
Dynamic IP/Port NAT Pool: 1(0.06%)


admin@PA-VM> show running ippool

VSYS 1 has 1 NAT rules, DIP and DIPP rules:
Rule                             Type            Used       Available  Mem Size Ratio
-------------------------------- --------------- ---------- ---------- -------- -----
PAT Policy to Internet           Dynamic IP/Port 0          129024        20376     2

Para poder saber con qué política de seguridad y NAT se está haciendo match, se puede usar el comando test:

admin@PA-VM> test security-policy-match source 10.1.1.200 destination 8.8.8.8 from inside to outside protocol 6 destination-port 80

"LAN to Internet" {
        from inside;
        source 10.1.1.0/24;
        source-region none;
        to outside;
        destination any;
        destination-region none;
        user any;
        category any;
        application/service [ ssl/tcp/any/443 dns/tcp/any/53 dns/udp/any/53 dns/udp/any/5353 web-browsing/tcp/any/80 ];
        action allow;
        icmp-unreachable: no
        terminal yes;
        type interzone;
}






admin@PA-VM>test nat-policy-match source 10.1.1.200 destination 8.8.8.8 from inside to outside protocol 6 destination-port 80

Source-NAT: Rule matched: PAT Policy to Internet
10.1.1.200:0 => 200.0.0.1:50184 (6), ethernet1/1


admin@PA-VM>