Configuración de política de seguridad y PAT en FW PAN
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:
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):
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.
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:
Lo primero que debemos hacer, es especificar un nombre (y si queremos, podemos dar una descripción a esta):
Luego especificamos la zona y la red de origen que, en mi caso será desde la red LAN (segmento 10.1.1.0/24):
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:
Como se especificó en un comienzo, solo se permite el tráfico SSL, DNS y Web:
Característica de la aplicación SSL:
Característica de la aplicación DNS:
Característica de la aplicación Web:
Y por último, la acción será Allow para permitir este tráfico:
Como se indicó, la política creada queda sobre las que vienen por defecto:
Para configurar el NAT, nos vamos a Policies > NAT > Add:
Al igual que en la política, le damos un nombre y una descripción:
Luego indicamos desde donde viene y hacia dónde va el paquete antes de ser nateado:
Y por último indicamos que al momento de hacer el NAT, este será con overload (también conocido como PAT [Port Address Translation]):
Y podemos ver cómo quedó configurado el NAT:
Para que el FW aplique todos los cambios que realizamos, es necesario dar clic en Commit:
Y en caso de que todo quede OK, les debería salir un pop-up similar al de abajo:
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:
Y podemos ver que se permite el SSL:
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>