Mejores prácticas para configurar cualquier firewall en cualquier sistema

Los firewalls son una herramienta fundamental para proteger adecuadamente tanto nuestros PC, el router y toda la red de intrusiones externas. Los firewalls nos permitirán controlar el tráfico desde y hacia un destino, incorporando diferentes reglas. Si el paquete recibido o enviado cumple con una regla configurada, se ejecutará una de las tres acciones típicas de los cortafuegos: permitir el paquete (ACCEPT), denegar el paquete y eliminarlo (DROP), lanzar mensaje de rechazo (reject). Saber configurar un firewall, ya sea a través de la línea de comandos o en una interfaz gráfica de usuario es tan importante como conocer buenas prácticas para hacerlo. Hoy en RedesZone os vamos a realizar una serie de recomendaciones para que configuréis correctamente vuestro firewall.

Denegar el tráfico de forma implícita (por defecto)

Los firewalls permiten dos tipos de políticas a la hora de permitir o denegar el tráfico, configurar una política restrictiva con el tráfico de red que va y viene es algo totalmente fundamental para proteger adecuadamente los equipos y también la red. Los firewall se pueden configurar de dos formas diferentes:

  • Política permisiva: se permite cualquier tráfico de cualquier IP e interfaz, solamente lo que esté bloqueado explícitamente en el firewall se bloqueará.
  • Polícita restrictiva: no se permite ningún tráfico de ninguna dirección IP ni interfaz, solamente el tráfico que esté permitido explícitamente en el firewall se permitirá.

Por seguridad, siempre deberíamos configurar la política del firewall como «restrictiva», de hecho, muchos softwares de firewall por defecto ya vienen configurados con esta política de incluso routers y firewalls profesionales, es decir, tenemos una regla implícita al final del todo que indica un «denegar todo», tal y como ocurre con los routers Cisco o sistemas operativos orientados a firewall como pfSense. Por tanto, si no tenemos una regla de «permitir algo», automáticamente todo el tráfico viene denegado por defecto, con el objetivo de tener la mejor seguridad posible.

Los administradores de sistemas y redes deben configurar siempre el firewall para permitir solamente el tráfico mínimo indispensable para el buen funcionamiento del sistema, y bloquear cualquier otro tráfico que no es necesario. De esta forma, la gran mayoría de reglas que tengamos en el firewall será de «permitir» y no de «denegación», porque tendremos una denegación implícita al final de la lista.

Optimizar las reglas creadas y ordenarlas

Otro aspecto muy importante, es que todos los firewalls evalúan las diferentes reglas de forma secuencial, desde arriba hasta abajo, por tanto, debemos seguir unas recomendaciones para que las reglas funcionen correctamente:

  • Las reglas más específicas deben ir arriba, por encima de las reglas más generales. Por ejemplo, imaginemos que queremos permitir una determinada IP, pero bloquear el resto de equipos de la misma red. Primero debemos poner «permitir la IP» y después «bloquear la subred». Si primero colocamos la regla más general (bloquear la subred), jamás se cumplirá la regla más estricta (permitir la IP).
  • Las reglas más generales deben ir debajo de las más específicas.

Otra recomendación a la hora de configurar un firewall es el orden de las reglas, las reglas que más se vayan a «comprobar» deben ir lo más arriba del todo posible, y las reglas menos «comprobadas» abajo del todo, para optimizar el rendimiento del firewall, porque el sistema operativo tiene que comprobar todas desde arriba hasta a abajo.

  • Las reglas que más veces se vayan a cumplir, colocarlas lo más arriba posible.
  • Las reglas que menos se vayan a cumplir, abajo.

Dependiendo del sistema operativo y del firewall, es posible que tengamos diferentes políticas del firewall en diferentes interfaces. Por ejemplo, en el sistema operativo pfSense que es de ámbito profesional, la interfaz WAN de Internet tiene una denegación implícita, sin embargo, todo lo que sale de la LAN se permite de forma predeterminada. Eso mismo lo podemos hacer también en sistemas basados en Linux como Debian a través de iptables o nftables, configurando la política por defecto en las diferentes tablas y cadenas.

El listado de reglas lo más corto posible

Cuando configuramos un firewall, es muy recomendable que el listado de reglas que vayamos a incorporar sean lo más corto posible, con el objetivo de poder administrarlas y mantenerlas correctamente. Si tenemos un total de 10 reglas que podríamos «resumir» con solamente una regla, haciendo uso de «Alias» o conjuntos de IPs y puertos, mucho mejor. Siempre es recomendable tener el mínimo número de reglas por varios motivos:

  • Se pueden detectar fallos más rápidamente.
  • La administración de las reglas será más sencilla al tener pocas reglas.
  • Rendimiento del firewall, el sistema no tendrá que comprobar 100 reglas sino solamente 5, por tanto, el rendimiento aumentará y el consumo de CPU disminuirá.

Revisar que las reglas siguen vigentes en la red

Es muy recomendable revisar las reglas del firewall con cierta frecuencia, para comprobar que se siguen cumpliendo los requisitos para permitir o denegar el tráfico que nosotros deseemos. Si estamos en un entorno estático donde no haya habido cambios, entonces no será necesario realizar un mantenimiento de estas reglas de forma regular, sin embargo, en las redes que sí cambian, tendremos que encargarnos de ello.

Si en una determinada red vamos a eliminar un servidor o PC, y está en el firewall filtrado, deberemos comprobar si queremos seguir permitiendo o denegando ese tráfico, es decir, mantener actualizado el firewall dependiendo de la red.

Documentar todas las reglas en el campo «descripción»

En todas las reglas que vayamos a crear en el firewall, es totalmente necesario escribir en el campo de descripción qué es lo que está haciendo esa determinada regla. Cuando vamos a configurar un firewall, sabemos a la perfección qué es lo que queremos permitir o denegar, pero después de 2 o 3 meses, e incluso si lo gestiona otra persona, normalmente se nos ha olvidado o no sabe muy bien qué es lo que está permitiendo o denegando, y tiene que «tirar» del hilo para «adivinar» qué es lo que hace esa determinada regla.

Cuando en un futuro revisemos la configuración del firewall, agradeceremos haber incorporado estas descripciones en el firewall o en la documentación de la configuración, por qué son necesarias y por qué las hemos creado así. Por supuesto, es totalmente necesario mantener este documento de la configuración del firewall actualizado, y realizar revisiones periódicas de la configuración. Siempre que vayamos a actualizar la documentación deberemos realizar los cambios correspondientes.

Loguear el tráfico solamente que necesitemos

Todos los firewalls, en función de una determinada regla, nos van a permitir registrar el tráfico de red permitido o denegado en el firewall (dirección IP de origen y destino, puerto de origen y destino, y hora), de esta manera, podremos ver los intentos de acceso, tráfico permitido o denegado y más. En un primer momento podemos pensar que registrar todo el tráfico de red es buena idea, pero no lo es. Es recomendable solamente registrar el tráfico que realmente nos interesa para tareas de debug o para comprobar si nos están atacando.

Si registramos una gran cantidad de tráfico, tendremos muchísimo «ruido» en estos registros, es decir, registros que no nos servirán, y tendremos que empezar a filtrar ingentes cantidades de logs para llegar al que de verdad nos interesa. Por ejemplo, equipos con Windows o Mac envían y reciben continuamente información desde Internet, resuelven cientos de veces varios dominios y mucho más, por tanto, asegúrate si realmente quieres loguear este tráfico de navegación web. Además, si utilizas en tu red protocolos de enrutamiento dinámico como RIP o OSPF, y tienes entre medias el firewall, recibirás continuamente tráfico de estos protocolos, lo mismo si tienes HSRP o VRRP para la redundancia de los routers.

Mirar detenidamente los registros de cierto tráfico

Si logueas el tráfico de la WAN, debes tener en cuenta que tendremos un completo registro de todas las conexiones de Internet, lo más normal es registrar los paquetes que van dirigidos a nuestro servidor VPN o SSH, para detectar posibles actividades sospechas, y no la navegación web. También es recomendable mirar con frecuencia lo que aparece en el registro, ¿cada cuánto tiempo aparece este registro en concreto? ¿debería salir cada 30min o cada 60 min?

Por último, otro aspecto a tener en cuenta es que no solamente hay que loguear el tráfico que detenemos para ver quién nos está atacando, sino también el tráfico permitido.  ¿Realmente este tráfico permitido debe pasar o mejor lo bloqueamos?

Esperamos que con estas recomendaciones generales puedas configurar tu firewall correctamente, ya sea de un router, un firewall como pfSense e incluso en un sistema operativo como Windows o Linux, porque todos los cortafuegos funcionan exactamente iguales.