Firewall y usos en redes

Buenas noches,

ante todo quería disculparme por no escribir durante un mes, pero con la entrega de prácticas, el trabajo de fin de grado, y la semana santa de por medio, me ha sido imposible.

En el post de hoy quería explicar algunos conceptos del Firewall y adjuntar dos prácticas que he realizado, dónde se ven algunos comandos que utilizo y su empleo.

 

¿Qué es un Firewall?

Un firewall es un sistema que aplica una política de control de acceso dentro de la red.

Tiene la propiedad de ser el punto de tránsito sólo entre redes.

Entre los beneficios que proporciona está evitar la exposición a usuarios no confiables, prevenir la explotación de los fallos de protocolo, evitar que los datos maliciosos se envíen a los servidores y clientes, subordinar la ejecución de políticas de seguridad y reducir la complejidad de la gestión de la seguridad (control de red en un par de puntos). Entre los tipos de filtrado de un firewall se encuentran:

  • Cortafuego de filtrado de paquete

Algunos contenidos de los paquetes entrantes en los routers son filtrados. Trabaja en el nivel de red (direcciones IP e interfaz) y transporte (puertos y tipo de conexión) usando listas de acceso.

Se basan en permitir y denegar un conjunto de reglas, son compatibles con la mayoría de los routers, aplica a dispositivos de capa de red y tienen un bajo impacto en el rendimiento de la red, ya que son fáciles de implementar.

Sin embargo, las desventajas de este tipo de filtrado son que es susceptible a la falsificación de direcciones IP, son paquetes independientes, no guardan información de contexto y son difíciles de seguir en ejecución y usa ACL complejas, difíciles de mantener e implementar.

  • Cortafuego de estado

Es un tipo de filtrado de paquete que tiene en cuenta la conexión o nivel de flujo. Mantiene una tabla de estado y en función de ella se inspecciona cada paquete.

Como ventajas tiene que tiene un mayor rendimiento gracias al filtrado de paquete o servidores proxy, un control más estricto, defensa para filtrar paquetes no deseados y protege contra spoofing y ataque DoS.

Por otra parte no se pueden evitar ataques al nivel de aplicación, no son compatibles con la autenticación de usuarios, no todos los protocolos son STATEFUL (por ejemplo UDP e ICMP) y algunas aplicaciones requieren múltiples conexiones abiertas.

 

 CONTROL DE ACCESO BASADO EN CONTEXTO (CBAC)

Es una mejora radical en comparación de las opciones de firewall TCP established y ACLs reflexivas en varios aspectos como son: el monitoreo del establecimientos de conexiones TCP, revisar los números de secuencia TCP, inspeccionar consultas y respuestas DNS, tipos de mensajes ICMP, direcciones incrustadas, información de capa de aplicación y soportar aplicaciones de múltiples conexiones.

CBAC detecta y previene contra ataques populares en las redes, sólo ofrece detección y protección contra ataques que pasan a través del Firewall, y sólo ofrece filtrados para los protocolos especificados por el administrador (si no las listas de control de acceso se encargan).

 

Práctica: Configurando control de acceso basado en contexto (CBAC)

Capt22ura

Antes de nada, hay que configurar una lista de control de acceso para saber qué direcciones vamos a permitir y cuáles no, y ponerla en la interfaz correspondiente. En nuestro caso configuraremos el router R3:

R3(config)# ip Access-list extended FUERADENTRO

R3(config-ext-nacl)# den ip any any

R3(config-ext-nacl)# exit

R3(config)# interface serial0/1

R3(config-if)# ip access-group FUERADENTRO in

R3(config-if)#exit

Ahora pasamos a crear algunas reglas de inspección CBAC para distintos protocolos:

R3(config)# ip inspect name MICBAC telnet

R3(config)# ip inspect name MICBAC http

R3(config)# ip inspect name MICBAC icmp

Una vez declaradas estas reglas, podemos ponerles mensajes en el tiempo, haciéndolo de la siguiente forma:

R3(config)# ip inspect audit-trail

R3(config)# service timestamps debug datetime msec

R3(config)# logging host 192.168.1.3

Cuando acabamos de configurar las reglas CBAC como queremos, ahora sí tenemos que incluirlo en la interfaz correspondiente del siguiente modo:

R3(config)# interface serial 0/1

R3(config-if)# ip inspect MICBAC out

Ya hemos finalizado, para verificar estos resultados yo he usado los siguientes comandos:

  • Show ip inspect sessions
  • Show ip inspect interfaces
  • Show ip inspect config
  • Debug ip inspect detailed

 

FIREWALL BASADO EN ZONAS

Es un tipo de Firewall cuya diferencia con el Firewall de Control de Acceso basado en Contexto son el empleo de zonas, quedando en un router distintas zonas, en las que podemos declarar a una de ellas como origen y otra como destino. Un ejemplo de este tipo de firewall sería la siguiente práctica:

 

Práctica: Configurando Firewall basado en zona (ZPF)

Capt22ura

Si queremos poner un Firewall en el Router R3, después de poner las IPs y que haya conectividad entre todos los elementos escribimos lo siguiente:

Para declarar las zonas que serán la de dentro y la de fuera del tráfico en el router:

R3(config)# zone security ZONADENTRO

R3(config)# zone security ZONAFUERA

Ahora creamos una lista de acceso para permitir o denegar el tráfico que queremos que pase, en nuestro caso desde nuestra red 192.168.3.0 queremos que vaya a cualquier destino:

R3(config)# Access-list 101 permit 192.168.3.0 0.0.0.255 any

A continuación, declaramos un mapa dónde tendremos que incluir la lista de control de acceso previamente hecha:

R3(config)# class-map type inspect match-all MIMAPA

R3(config-cmap)# match access-group 101

R3(config-cmap)# exit

Una vez configurado el mapa con el nombre de MIMAPA (todo lo que está en mayúsculas son nombres identificativos). Ahora realizaremos una política basada en nuestro mapa:

R3(config)# police-map type inspect MIPOLITICA

R3(config-pmap)# class type inspect MIMAPA

R3(config-pmap-c)# inspect

Ahora vamos a crear un par de zonas dónde diremos qué zona (hechas al principio) serán la del origen y cual la del destino. Además de aplicar la política que acabamos de realizar a nuestro par de zonas:

R3(config)# zone-pair security MIPARDEZONAS source ZONADENTRO destination ZONAFUERA

R3(config-sec-zone-pair)# service-policy type inspect MIPOLITICA

R3(config-sec-zone-pair)#exit

Y por último sólo queda poner a cada interfaz la zona a la que pertenece:

R3(config)# interface fastEthernet0/0

R3(config-if)# zona-member security ZONADENTRO

R3(config-if)# exit

 R3(config)# interface serial0/0

R3(config-if)# zona-member security ZONAFUERA

R3(config-if)# exit

 Para verificar esta práctica yo he usado el comando: show policy-map type inspect zone-pair sessions

 

Para finalizar con este post, decir que unas buenas prácticas de Firewall son aquellas en la que se tienen en cuenta estos factores:

  • Controlar el acceso físico al Firewall
  • Monitorear regularmente los registros
  • Denegar el tráfico por defecto
  • Que el cortafuego sea la seguridad principal
  • Posicionar el Firewall en los límites de seguridad

Deja un comentario