Un firewall es un sistema que proporciona seguridad de red al filtrar el tráfico de red entrante y saliente en función de un conjunto de reglas definidas por el usuario.
En general, el propósito de un cortafuegos es reducir o eliminar la ocurrencia de comunicaciones de red no deseadas mientras permite que toda comunicación legítima fluya libremente. En la mayoría de las infraestructuras de servidores, los firewalls proporcionan una capa esencial de seguridad que, combinada con otras medidas, evita que los atacantes accedan a sus servidores de manera maliciosa.
Paquetes de red TCP
Antes de analizar los diferentes tipos de firewalls, echemos un vistazo rápido al aspecto del tráfico de red del Protocolo de control de transporte (TCP).
El tráfico de red TCP se mueve alrededor de una red en paquetes, que son contenedores que consisten en un encabezado de paquete, que contiene información de control, como las direcciones de origen y destino, y la información de secuencia de paquetes, y los datos (también conocidos como carga útil).
Si bien la información de control en cada paquete ayuda a garantizar que sus datos asociados se entreguen correctamente, los elementos que contiene también brindan a los firewalls una variedad de formas de hacer coincidir los paquetes con las reglas del firewall.
Es importante tener en cuenta que la recepción exitosa de paquetes TCP entrantes requiere que el receptor envíe paquetes de confirmación de salida al remitente.
La combinación de la información de control en los paquetes entrantes y salientes se puede utilizar para determinar el estado de conexión entre el emisor y el receptor.
Tipos
Existen tres tipos básicos de firewalls de red: filtrado de paquetes (sin estado), con estado y capa de aplicación.
Vamos a analizarlos.
Firewall de filtrado de paquetes
Los firewalls de filtrado de paquetes o sin estado funcionan inspeccionando los paquetes individuales de forma aislada. Como tal, desconocen el estado de conexión y solo pueden permitir o denegar paquetes basados en encabezados de paquetes individuales.
Firewall con estado
Los firewalls con estado pueden determinar el estado de conexión de los paquetes, lo que los hace mucho más flexibles que los firewalls sin estado. Funcionan recolectando paquetes relacionados hasta que se pueda determinar el estado de la conexión antes de que se apliquen las reglas del firewall al tráfico.
Firewall de aplicación
Los cortafuegos de aplicaciones van un paso más allá al analizar los datos que se transmiten, lo que permite que el tráfico de la red coincida con las reglas de cortafuegos que son específicas de servicios o aplicaciones individuales. Estos también se conocen como firewalls basados en proxy.
Otra clasificación de los firewalls distingue entre cortafuegos de software y de hardware.
Firewall de software
Un firewall de software es como un conserje que filtra todo el correo entrante incluso antes de que se distribuya a los residentes. Él tiene un papel similar en su escritorio.
Comprueba la dirección del remitente en la lista. Si su dirección no está en la lista, su carta va directamente a la papelera. También filtra el correo saliente, consulta su lista para ver qué residentes pueden escribir al mundo exterior.
Este tipo de bloqueo se realiza a nivel del sistema operativo. Un firewall de software se asegura de que la carta nunca llegue allí.
Firewall de hardware
Un firewall de hardware es como tener un experto en seguridad bien entrenado en tu oficina de correos local. Este tiene una lista similar a la del conserje, que detalla quién puede enviar cartas a quién.
Podría estar protegiendo solo tu dirección IP, o podría estar trabajando para docenas de direcciones al mismo tiempo, o tal vez incluso para toda la comunidad. Examina cada bit de correo que entra y sale de tu ciudad. Cualquier cosa que no le guste, lo bloquea.
Además del software de firewall, que está disponible en todos los sistemas operativos modernos, la funcionalidad de firewall también puede ser proporcionada por dispositivos de hardware, como enrutadores o dispositivos de firewall.
Por supuesto, puedes implementar todos estos niveles de protección. Y puedes tener múltiples firewalls de hardware.
Ten en cuenta que, en la práctica, un «firewall de hardware» es solo un ordenador que está totalmente dedicado a ser un firewall y está físicamente separado de su servidor web. El firewall en sí mismo sigue siendo una pieza de software en ese ordenador.
¿Cómo funciona un cortafuegos?
El tráfico de red que atraviesa un firewall o cortafuegos se compara con las reglas para determinar si se debe permitir o no. Una manera fácil de explicar cómo se ven las reglas de firewall es mostrar algunos ejemplos, así que haremos eso ahora.
Supón que tienes un servidor con esta lista de reglas de firewall que se aplican al tráfico entrante:
- Acepta tráfico entrante nuevo y establecido a la interfaz de red pública en los puertos 80 y 443 (tráfico web HTTP y HTTPS)
- Deja caer el tráfico entrante de las direcciones IP de los empleados no técnicos en tu oficina al puerto 22 (SSH)
- Acepta el tráfico entrante nuevo y establecido desde el rango de IP de tu oficina a la interfaz de red privada en el puerto 22 (SSH)
Ten en cuenta que la primera palabra en cada uno de estos ejemplos es «aceptar», «rechazar» o «soltar». Esto especifica la acción que debe hacer el firewall en caso de que una parte del tráfico de red coincida con una regla.
Aceptar significa permitir el paso del tráfico, rechazar significa bloquear el tráfico pero responder con un error, y descartar significa bloquear el tráfico y no enviar ninguna respuesta. El resto de cada regla consiste en la condición con la que se compara cada paquete.
Como resultado, el tráfico de red se compara con una lista de reglas de firewall en una secuencia, o cadena, desde el primero hasta el último. Más específicamente, una vez que una regla coincide, la acción asociada se aplica al tráfico de red en cuestión.
En nuestro ejemplo, si un empleado de contabilidad intentara establecer una conexión SSH con el servidor, sería rechazado según la regla 2, incluso antes de que se verifique la regla 3. Sin embargo, un administrador del sistema sería aceptado porque solo coincidiría con la regla 3.
Política predeterminada
Es típico que una cadena de reglas de firewall no cubra explícitamente todas las condiciones posibles. Por esta razón, las cadenas de firewall siempre deben tener una política predeterminada especificada, que consiste solo en una acción (aceptar, rechazar o descartar).
Supongamos que la política predeterminada para la cadena de ejemplo anterior se establece como caída. Si algún ordenador fuera de tu oficina intentara establecer una conexión SSH con el servidor, el tráfico se interrumpiría porque no cumple con las condiciones de ninguna regla.
Si la política predeterminada se configurara para aceptar, cualquiera, excepto tus propios empleados no técnicos, podría establecer una conexión a cualquier servicio abierto en tu servidor. Este sería un ejemplo de un firewall muy mal configurado porque solo mantiene fuera a un subconjunto de empleados.
Tráfico entrante y saliente
Como el tráfico de red, desde la perspectiva de un servidor, puede ser entrante o saliente, un firewall mantiene un conjunto distinto de reglas para cada caso.
El tráfico que se origina en otro lugar, el tráfico entrante, se trata de manera diferente al tráfico saliente que envía el servidor. Es típico que un servidor permita la mayoría del tráfico saliente porque el servidor suele ser, en sí mismo, confiable. Aún así, el conjunto de reglas salientes se puede utilizar para evitar la comunicación no deseada en caso de que un atacante o un ejecutable malintencionado comprometa un servidor.
Para maximizar los beneficios de seguridad de un firewall, debes identificar todas las formas en que deseas que otros sistemas interactúen con tu servidor, crear reglas que los permitan explícitamente y luego descartar el resto del tráfico.
Ten en cuenta que las reglas de salida apropiadas deben estar en su lugar para que un servidor se permita enviar confirmaciones de salida a las conexiones entrantes apropiadas.
Además, como un servidor generalmente necesita iniciar su propio tráfico saliente por varias razones, por ejemplo, descargar actualizaciones o conectarse a una base de datos, es importante incluir esos casos también en el conjunto de reglas salientes.
Escribir reglas salientes
Supongamos que nuestro firewall de ejemplo está configurado para eliminar el tráfico saliente de manera predeterminada. Esto significa que nuestras reglas de aceptación entrantes serían inútiles sin reglas salientes complementarias.
Para complementar las reglas de firewall entrantes de ejemplo (1 y 3), de la sección Reglas de firewall, y permitir que se produzca una comunicación adecuada en esas direcciones y puertos, podríamos usar estas reglas de firewall salientes:
- Acepta el tráfico saliente establecido a la interfaz de red pública en los puertos 80 y 443 (HTTP y HTTPS)
- Acepta el tráfico saliente establecido a la interfaz de red privada en el puerto 22 (SSH)
Ten en cuenta que no necesitamos escribir explícitamente una regla para el tráfico entrante que se descarta (regla entrante 2) porque el servidor no necesita establecer o reconocer esa conexión.
Ahora que hemos analizado cómo funcionan los firewalls, echemos un vistazo a los paquetes de software comunes que pueden ayudarnos a configurar un firewall efectivo.
Si bien hay muchos otros paquetes relacionados con el firewall, estos son efectivos y son los más comunes.
Iptables
Iptables es un firewall estándar incluido en la mayoría de las distribuciones de Linux por defecto.
En realidad, es una interfaz para los ganchos de filtro de red a nivel de núcleo que pueden manipular la pila de red de Linux. Funciona haciendo coincidir cada paquete que cruza la interfaz de red con un conjunto de reglas para decidir qué hacer.
UFW
UFW, que significa Firewall sin complicaciones, es una interfaz para iptables que está orientada a simplificar el proceso de configuración de un firewall.
CortafuegosD
FirewallD es una solución completa de firewall disponible de forma predeterminada en los servidores CentOS 7. Por cierto, FirewallD usa iptables para configurar netfilter.
Fail2ban
Fail2ban es un software de prevención de intrusiones que puede configurar automáticamente tu firewall para bloquear intentos de inicio de sesión de fuerza bruta y ataques DDOS.
Configurar un Firewall
Los pasos que debes realizar para configurar un firewall en tu dispositivo son los siguientes.
1. Asegura el firewall
Si un atacante puede obtener acceso administrativo a tu cortafuegos, puede comprometer la seguridad de tu red. Por lo tanto, asegurar el firewall es el primer y más importante paso de este proceso.
Nunca pongas un cortafuegos en funcionamiento si no está debidamente protegido por al menos las siguientes acciones de configuración:
- Actualiza el firewall al último firmware.
- Elimina, deshabilita o cambia el nombre de cualquier cuenta de usuario predeterminada y cambia todas las contraseñas predeterminadas. Asegúrate de usar solo contraseñas complejas y seguras.
- Si varios administradores administrarán el firewall, crea cuentas de administrador adicionales con privilegios limitados en función de las responsabilidades. Nunca uses cuentas de usuario compartidas.
- Deshabilita el protocolo simple de administración de red (SNMP) o configúralo para usar una cadena de comunidad segura.
2. Diseña tus zonas de firewall y direcciones IP
Para proteger los activos valiosos en tu red, primero debes identificar cuáles son los activos (por ejemplo, los datos de la tarjeta de pago o los datos del paciente).
Luego, planifica la estructura de red para que estos activos se puedan agrupar y colocar en redes (o zonas) según un nivel de sensibilidad y función similares.
Por ejemplo, todos los servidores que brindan servicios a través de Internet (servidores web, servidores de correo electrónico, servidores de red privada virtual (VPN), etc.) deben ubicarse en una zona dedicada que permita un tráfico entrante limitado desde Internet.
Los servidores a los que no se debe acceder directamente desde Internet, como los servidores de bases de datos, deben colocarse en zonas de servidores internos.
Del mismo modo, las estaciones de trabajo, los dispositivos de punto de venta y los sistemas de voz sobre protocolo de Internet (VOIP) generalmente se pueden colocar en zonas de red internas.
En términos generales, cuantas más zonas crees, más segura será tu red. Pero ten en cuenta que administrar más zonas requiere tiempo y recursos adicionales, por lo que debes tener cuidado al decidir cuántas zonas de red deseas usar.
Una vez que hayas diseñado tu estructura de zona de red y establecido el esquema de dirección IP correspondiente, estarás listo para crear tus zonas de firewall y asignarlas a las interfaces o subinterfaces de firewall. A medida que desarrollas tu infraestructura de red, los conmutadores que admiten LAN virtuales (VLAN) deben usarse para mantener la separación de nivel 2 entre las redes.
3. Configurar listas de control de acceso
Ahora que has establecido tus zonas de red y las has asignado a las interfaces, debes determinar exactamente qué tráfico debe poder entrar y salir de cada zona.
Este tráfico se permitirá mediante reglas de firewall denominadas listas de control de acceso (ACL), que se aplican a cada interfaz o subinterfaz en el firewall.
Haz tus ACL específicas para las direcciones IP y los números de puerto de origen y / o destino exactos siempre que sea posible. Al final de cada lista de control de acceso, asegúrate de que haya una regla de «denegar todo» para filtrar todo el tráfico no aprobado. Aplica ACL entrantes y salientes a cada interfaz y subinterfaz en tu firewall para que solo se permita el tráfico aprobado dentro y fuera de cada zona.
Siempre que sea posible, generalmente se recomienda deshabilitar las interfaces de administración de firewall del acceso público. Esto ayudará a proteger la configuración de su firewall de amenazas externas. Asegúrate de deshabilitar todos los protocolos no cifrados para la administración del firewall, incluidas las conexiones Telnet y HTTP.
4. Configura tus otros servicios de firewall y registro
Si tu firewall también es capaz de actuar como un servidor de protocolo de configuración dinámica de host (DHCP), servidor de protocolo de hora de red (NTP), sistema de prevención de intrusiones (IPS), etc., continúa y configura los servicios que deseas utilizar. Deshabilita todos los servicios adicionales que no tienes intención de usar.
Para cumplir con los requisitos de PCI DSS, configura tu firewall para informar a tu servidor de registro y asegúrate de que se incluyan suficientes detalles para satisfacer los requisitos de PCI DSS.
5. Prueba la configuración de tu firewall
En un entorno de prueba, verifica que tu firewall funcione según lo previsto. No olvides verificar que tu cortafuegos esté bloqueando el tráfico que debe bloquearse de acuerdo con las configuraciones de ACL.
Probar el firewall debe incluir tanto el escaneo de vulnerabilidades como las pruebas de penetración.
Una vez que hayas terminado de probar tu firewall, este debería estar listo para funcionar. Recuerda siempre guardar una copia de seguridad de la configuración en un lugar seguro para que no se pierda todo el trabajo en caso de un fallo de hardware.
Ahora recuerda, esto es solo una descripción general para ayudarte a comprender los pasos principales de la configuración del firewall.
Cuando uses tutoriales, o incluso si decides configurar tu propio firewall, asegúrate de que un experto en seguridad revise la configuración para asegurarse de que esté configurado para mantener tus datos lo más seguros posible.
Ahora que entiendes cómo funcionan los firewalls, deberías considerar implementar un firewall que mejorará la seguridad de la configuración de tu servidor.