Professional Documents
Culture Documents
##########################################
Introduccion al Cisco PIX Firewall
##########################################
--[ Contenidos
1 - Introduccion
2 - Conceptos antes de empezar
3 - Configuracion basica
4 - NAT "Network Address Traslation"
5 - PAT "Port Address Traslation"
6 - Armando el Ruteado
7 - Reglas de filtrado
8 - Restringiendo el acceso
8.1 - Logueandonos al PIX
8.2 - Privilegios de los usuarios
9 - Configurando el Syslog
10 - Todo lo no cubierto
11 - Referencias
--[ 1 - Introduccion
Este articulo es una introduccion a la filosofia y configuracion basica de un
Cisco PIX Firewall. Estara focalizado mas en la parte practica que teorica, y
acompaado con comentarios de diferentes experiencias.
Se puede decir que el fuerte de Cisco Systems, y lo que la mayoria conoce, son
sus routers. Por ello, constantemente compararemos a los routers de Cisco con
su firewall.
Si bien este articulo es solo una introduccion, contiene todo lo necesario para
configurar y administrar un PIX desde cero, y darles las herramientas para poder
seguir investigando. O por lo menos esa es la idea, no los aburro mas...
Pueden enviarme cualquier consulta o comentario relacionado a este articulo.
red a otra que utiliza los mismos rangos de direcciones IP que nosotros. En
estos casos podemos usar NAT's para trasladar una direccion IP a otra que no
se suporponga con la nuestra.
Al comenzar a dise~ar la seguridad de nuestra red debemos tener presente que
siempre el primer escalon de seguridad van a ser los NATs.
Como habia comentado anteriormente, desde una interfaz de menor seguridad no
se puede acceder a otra de mayor seguridad, por esta razon es que deberemos
realizar un NAT para trasladar una IP de una red de mayor seguridad hacia otra
de menor seguridad y pueda ser accedida. Aqui es donde el dise~o de los NATs
se vuelve fundamental para permitir el acceso a los sistemas estrictamente
necesarios.
Una traslacion, llamada "xlate", equivale al mapeo de una direccion IP a otra
direccion IP. Dentro de cada traslacion podemos encontrar muchas conexiones,
llamadas "conn".
Existen cuatro tipos de NATs muy similares que vamos a poder usar en un PIX, el
NAT Inside Estatico, NAT Inside Dinamico, NAT Outside estatico y NAT Outside
Dinamico. El que mas utilizaremos es el NAT Inside Estatico, que realiza una
traslacion entre una direccion IP en una interfaz segura a una direccion IP en
una interfaz menos segura.
Arcadia(config)# static (dmz,outside) 200.0.0.20 192.168.2.45
Arcadia(config)# static (inside,dmz) 10.0.0.9 10.0.0.9
En el primer ejemplo, hacemos un NAT Estatico para que el host 192.168.2.45 de
la DMZ pueda ser accedido desde Internet con la IP publica 200.0.0.20. En el
segundo ejemplo hacemos un NAT para que los hosts que se encuentran en la DMZ
puedan acceder al host 10.0.0.9 de la red interna, de otra forma no seria
posible dado que la DMZ posee un nivel de seguridad menor al de la red interna
y por lo tanto sin un NAT no puede acceder a ella.
En la sintaxis del comando vemos que entre parentesis se encuentra primero la
interfaz de mayor seguridad y luego la de menor seguridad, fuera del parentesis
es al contrario, primero viene la IP de menor seguridad y luego la de mayor
seguridad. No me pregunten porque esto es asi, cosas de Cisco.
Hay un tipo mas de NAT que no se encuentra en las categorias antes mencionadas
conocida como "Identity NAT". Este tipo de NAT nos permitiria, por ejemplo,
acceder desde Internet a un host de nuestra red interna sin ninguna traslacion,
obviamente esto es muy inseguro.
Arcadia(config)# nat (inside) 0 200.0.0.69 255.255.255.255
nat 0 200.0.0.69 will be non-translated
Como vemos esto lo hacemos con el comando "nat 0", y una vez aplicado el comando
nos aparecera un mensaje diciendo que la IP no sera trasladada. Hay que tener en
cuenta que para hacer esto, dentro de nuestra red interna 10.0.0.0/8 deberiamos
tener un host con una IP publica 200.0.0.69.
Finalmente, para que el PIX tome cualquier tipo de cambio que hayamos realizado
en los NAT deberemos utilizar el comando "xlate". Este comando nos permitira ver
o borrar el contenido de los slots de traslaciones.
llamarlos por su nombre, por ejemplo al puerto 80 con www, al 21 con ftp, al
443 con https, etc.
Arcadia(config)# access-list ACLIN permit tcp any host 200.32.102.217
range 9000 9100
En este ejemplo, usamos "any" para indicar cualquier direccion IP de origen, y
usamos la opcion "range" para indicar un rango de puertos.
Arcadia(config)# access-list ACLIN permit ip any any
Cuando usamos "ip" como protocolo, estamos declarando que puede ser cualquier
protocolo, osea TCP, UDP o ICMP. En este ejemplo permitimos absolutamente todo
sin restriccion de puertos.
Cada ACL que aplicamos se va a cargar al final de la lista, esto nos complicara
decirle al PIX que debe chequear primero ya que lo hace en forma descendiente
desde la primer regla, y por supuesto todo sera un gran desorden.
Para evitar esto, generalmente se administran las reglas de dos formas. Cuando
tenemos que hacer muchos cambios, borramos todas las reglas con el comando "no
access-list", volvemos a cargar las reglas, y las aplicamos en la interface con
"access-group". Todo esto con un simple "copy + paste".
Arcadia(config)# no access-list ACLDMZ
Arcadia(config)# access-list ACLDMZ deny ip host 192.168.1.10 10.0.0.0
255.255.255.0
Arcadia(config)# access-list ACLDMZ permit tcp host 192.168.1.10 any eq 21
Arcadia(config)# access-list ACLDMZ permit tcp host 192.168.1.10 any eq 80
Arcadia(config)# access-list ACLDMZ permit tcp host 192.168.1.10 any eq 443
Arcadia(config)# access-group ACLDMZ in interface dmz
Aquellos que configuran routers de Cisco se preguntaran si no es necesario
desaplicar las reglas de la interface con un "no access-group", pues no, solo
tienen que borrarlas con "no access-list". Mas curiosidades del FOS.
Otra forma muy parecida a esta, es cargar las nuevas ACLs con otro nombre, por
ejemplo ACLDMZ-2, y pisar las anteriores con "access-group".
Arcadia(config)# access-list ACLDMZ-2 deny ip host 192.168.1.10 10.0.0.0
255.255.255.0
Arcadia(config)# access-list ACLDMZ-2 permit tcp host 192.168.1.10 any eq 21
Arcadia(config)# access-list ACLDMZ-2 permit tcp host 192.168.1.10 any eq 80
Arcadia(config)# access-list ACLDMZ-2 permit tcp host 192.168.1.10 any eq 443
Arcadia(config)# access-group ACLDMZ-2 in interface dmz
Se puede decir que esta ultima forma es un poco mas segura, pero tambien solo
la vamos a usar cuando tengamos que hacer muchos cambios. Imaginen que hacer
un "copy + paste" de 2000 ACLs porque queriamos modificar solo una, no es muy
agradable.
Para cargar solo una ACL, primero usamos "sh access-list" para ver el orden de
las reglas, y luego la cargamos en la posicion que deseamos indicando la "line".
Arcadia(config)# sh access-list ACLDMZ
De esta forma le damos permiso al usuario "ca0s" para que tenga control total
en el PIX, y a los demas usuarios les vamos a restringir el acceso a los
comandos que pueden utilizar. Esto es util cuando hay varios administradores
y no queremos que vayan a cometer un error en nuestro firewall, uno nunca sabe.
Por ejemplo, si queremos que los demas usuarios unicamente puedan configurar
ACLs, podemos usar el comando "privilege" para ello:
Arcadia(config)# privilege configure level 10 mode enable command configure
Arcadia(config)# privilege level 10 command access-list
Como el comando "access-list" tambien trabaja en modo de configuracion, primero
permitimos al nivel 10 que pueda utilizar el comando "configure". Luego dejamos
que el comando "access-list" pueda ser usado con cualquiera de sus opciones,
aunque tambien podriamos haber permitido solo un "show access-list".
Ahora para que todo lo que hemos hecho tome efecto, nos faltan los siguientes
comandos:
Arcadia(config)# aaa authentication enable console LOCAL
Arcadia(config)# aaa authorization command LOCAL
Con el primer comando, estamos diciendo que para ingresar a modo privilegiado,
no importa que nivel, nos vamos a autenticar con la base de datos local. Con el
segundo comando, decimos que vamos a controlar las acciones permitidas.
Veamos como quedo todo:
root@warsteiner:~# ssh 10.0.0.1 -lpix
pix@10.0.0.1's password:
Type help or '?' for a list of available commands.
Arcadia> sh cu
Current privilege level : 1
Current Mode/s : P_UNPR
Arcadia> en
Username: ca0s
Password: *****
Arcadia# sh cu
Current privilege level : 15
Current Mode/s : P_PRIV
Arcadia# wr mem
Building configuration...
Cryptochecksum: f255b4a1 b513bc4e 2db32f44 a3a2a310
[OK]
Arcadia# dis
Arcadia> en
Username: polos
Password: **********
Arcadia# sh cu
Current privilege level : 10
Current Mode/s : P_PRIV
Arcadia# wr mem
Command authorization failed
Arcadia# conf t
Arcadia(config)# access-list ACLIN permit ip any any
Anteriormente les mencione la versatilidad de PIX para trabajar con VPN's, esto
realmente es asi, y en especial para road warriors con los Cisco VPN Clients. El
problema surge cuando queremos restringir diferentes tipos de accesos, donde la
mejor solucion termina siendo que otro dispositivo termine las VPN's en una DMZ,
y los accesos sean controlados con access lists.
Como sabran, hay muchos protocolos que abren puertos dinamicamente o reciben
conexiones desde el servidor. El ejemplo mas comun es el del FTP, donde en modo
activo la conexion para el canal de datos es iniciada desde el servidor hacia
el cliente, por ello es que en redes con firewall's se aconseja usar el modo
pasivo, donde las conexiones salen del cliente hacia el servidor. Para resolver
este tipo de problemas existen los comandos "fixup", que entienden este tipo de
conexiones y las manejan de manera transparente para nosotros. Para otros
protocolos como el HTTP o el SMTP, los comandos "fixup" verifican que el trafico
recibido se ajuste a sus respectivos RFC's.
Algo que hace mucho se le reclamaba a Cisco y finalmente lo encontramos en la
ultima version del FOS, es la posibilidad de utilizar VLAN's. Lo cual nos sera
muy util, pero nos encontraremos con algunas limitaciones. El numero de VLAN's
que se pueden configurar por PIX varia entre 3 y 12 dependiendo del modelo y
licencia que tengamos. Tambien la performance y el throughput puede ser un
problema si configuramos varias VLAN's en la misma interfaz fisica. Por esta
razon deberemos hacer una evaluacion del ancho de banda antes de utilizarlas.
Tambien deberia mencionar el PDM "PIX Device Manager", que es la interfaz
grafica via web para administrar el PIX. En mi opinion otro fallido intento de
copiar la interfaz grafica del Firewall-1 de CheckPoint. Sinceramente no se
quien querria utilizar el PDM teniendo una poderosa linea de comandos.
Desde una perspectiva de opciones de seguridad, no podemos decir que el PIX
posea la plataforma mas flexible de firewall. Pero con cada version mejora a
grandes pasos y su fuerte sigue siendo soluciones que requieren gran velocidad
de proceso. Se comenta que la version 7.0 del FOS ya esta en Beta, y viene con
varias novedades y por supuesto bugs corregidos.
--[ 11 - Referencias
Ref. 1 : http://ccie.pl/articles/frankenpix.html
Ref. 2 : http://sigsauer.wiretapped.net/routermonkey/
Ref. 3 : http://www.kiwisyslog.com
Ref. 4 : http://www.cisco.com
----------------------------------------------------------------------|| ||
|| ||
|||| ||||
...||||||....||||||..
ciscoSystems