Blog / nftables: Un Vistazo Profundo a la Seguridad en Linux

nftables: Un Vistazo Profundo a la Seguridad en Linux

por SW Team

Descubre la importancia de las nftables en la administración de redes Linux. Aprende cómo estas reglas y comandos proporcionan un Firewall efectivo, controlan el tráfico y garantizan la seguridad. Conoce funciones clave como el filtrado de paquetes, NAT, control de conexiones y protección contra DDoS.

cta:cloud_so

Introducción

nftables es un marco de filtrado de paquetes y una herramienta de manipulación de redes en el kernel de Linux. Es una tecnología de red que proporciona un conjunto de funciones para filtrar y manipular paquetes de red en un sistema Linux.

nftables reemplaza a iptables, que ha sido el marco de filtrado de paquetes estándar en Linux durante muchos años.

Algunas de las características de nftables incluyen:

Eficiencia

nftables está diseñado para ser más eficiente en términos de uso de recursos que iptables, lo que significa que puede manejar un mayor volumen de tráfico de red con menos carga en el sistema.

Sintaxis mejorada

la sintaxis de configuración de nftables es más flexible y fácil de entender que la de iptables, lo que facilita la creación y el mantenimiento de reglas de filtrado de paquetes.

Unificación de herramientas

nftables unifica varias herramientas de manipulación de redes en una sola interfaz, lo que simplifica la administración y la configuración del firewall y otras funciones de red en sistemas Linux.

Compatibilidad con IPv4 e IPv6

nftables es compatible tanto con IPv4 como con IPv6, lo que permite filtrar y manipular paquetes en redes que utilizan cualquiera de estos protocolos.

En resumen, nftables es una tecnología avanzada de filtrado de paquetes y manipulación de redes en Linux que ofrece eficiencia, flexibilidad y una sintaxis mejorada en comparación con iptables.

Funciones principales

Las funciones principales de nftables incluyen filtrado de paquetes, traducción de direcciones de red (NAT), equilibrio de carga, clasificación de paquetes (QoS), etc.

Filtrado de paquetes

nftables permite definir reglas para filtrar paquetes de red en función de criterios como direcciones IP, puertos, protocolos, interfaces de red y otras características. Esto permite controlar qué paquetes pueden entrar, salir o transitar a través del sistema.

Traducción de direcciones de red (NAT)

nftables puede realizar traducción de direcciones de red (NAT) para modificar las direcciones IP y puertos en los paquetes de red a medida que atraviesan el sistema. Esto es útil para implementar técnicas como la traducción de direcciones de red estática (SNAT y DNAT) o la traducción de puertos (masquerading).

Equilibrio de carga

nftables puede utilizarse para implementar equilibrio de carga en redes de servidores, distribuyendo el tráfico entrante entre múltiples servidores backend. Esto mejora la disponibilidad y la escalabilidad de los servicios de red al distribuir la carga de manera equitativa.

Registro de paquetes (Logging)

nftables permite registrar ciertos paquetes que coinciden con ciertas reglas. Esto es útil para fines de auditoría, monitoreo y solución de problemas de red, ya que permite rastrear el tráfico que atraviesa el sistema y registrar eventos importantes.

Clasificación de paquetes (QoS)

nftables admite la clasificación de paquetes para implementar Calidad de Servicio (QoS). Esto permite priorizar ciertos tipos de tráfico sobre otros, garantizando un rendimiento adecuado para aplicaciones críticas en redes congestionadas.

Manipulación de paquetes

nftables ofrece capacidades avanzadas de manipulación de paquetes, lo que permite modificar campos específicos de los paquetes de red a medida que atraviesan el sistema. Esto puede incluir la modificación de direcciones IP, puertos, etiquetas VLAN, y otros campos de los paquetes.

Protección contra ataques DDoS: Mitigando Amenazas

nftables, como herramienta de filtrado y manipulación de paquetes en Linux, puede ser utilizada para mitigar ataques de denegación de servicio distribuido (DDoS, por sus siglas en inglés) de varias maneras:

Filtrado por dirección IP

nftables puede bloquear o limitar el tráfico entrante de direcciones IP sospechosas o que están generando un alto volumen de solicitudes. Esto puede ayudar a mitigar ataques de inundación de paquetes (como ataques SYN flood) bloqueando el tráfico malicioso en la etapa inicial.

Filtrado por protocolo y puerto

nftables puede bloquear el tráfico que utiliza ciertos protocolos o puertos específicos, lo que puede ayudar a mitigar ataques dirigidos a servicios específicos que utilizan esos puertos.

Limitación de conexiones

nftables puede imponer límites en el número de conexiones simultáneas permitidas desde una dirección IP o hacia un servicio específico, lo que puede ayudar a mitigar ataques de saturación de recursos limitando el número de conexiones que un atacante puede establecer.

Balanceo de carga y redirección de tráfico

En algunos casos, nftables puede utilizarse para redirigir el tráfico entrante a través de múltiples servidores o ubicaciones, lo que puede ayudar a distribuir la carga y mitigar el impacto de los ataques DDoS.

Registros y monitoreo

nftables puede configurarse para registrar información detallada sobre el tráfico de red, lo que puede ayudar en la detección y análisis de ataques DDoS. Los registros pueden ser utilizados para identificar patrones de tráfico malicioso y ajustar las reglas de filtrado en consecuencia.

Es importante tener en cuenta que la eficacia de nftables para mitigar ataques DDoS depende en gran medida de la configuración específica y la capacidad del sistema para procesar el tráfico entrante. Además, en entornos de producción, es recomendable implementar una estrategia de mitigación de DDoS integral que incluya varias capas de defensa, incluidas soluciones a nivel de red, como sistemas de detección y prevención de intrusiones (IDS/IPS), servicios de mitigación de DDoS dedicados, y medidas de seguridad a nivel de aplicación.

nftables en acción: ejemplo práctico

Un ejemplo práctico del uso de nftables podría ser configurar un conjunto de reglas básicas para un servidor web en un sistema Linux. Supongamos que queremos permitir el tráfico HTTP (puerto 80) y HTTPS (puerto 443), mientras bloqueamos el resto de tráfico entrante. Además, queremos permitir que el servidor pueda realizar solicitudes salientes a través de cualquier puerto.

Aquí hay un ejemplo de cómo podría ser la configuración de nftables para este caso:

# Limpiar todas las reglas y conjuntos existentes
sudo nft flush ruleset

# Definir conjuntos de direcciones IP para permitir/denegar acceso total
sudo nft add set ip filter_allowed_ips { type ipv4_addr\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\; }
sudo nft add set ip filter_denied_ips { type ipv4_addr\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\; }

# Añadir direcciones IP permitidas y denegadas a los conjuntos correspondientes
sudo nft add element ip filter_allowed_ips { 192.168.1.100 }
sudo nft add element ip filter_denied_ips { 10.0.0.1 }

# Permitir acceso desde las direcciones IP permitidas
sudo nft add rule ip filter input ip saddr @filter_allowed_ips accept

# Denegar acceso desde las direcciones IP denegadas
sudo nft add rule ip filter input ip saddr @filter_denied_ips drop
# Permitir tráfico de entrada en los puertos 80 (HTTP) y 443 (HTTPS)
sudo nft add rule ip filter input tcp dport { 80, 443 } accept

# Denegar todo el resto de tráfico de entrada
sudo nft add rule ip filter input counter drop

# Permitir tráfico saliente en todas las interfaces
sudo nft add rule ip filter output accept

En este ejemplo:

  • Se definen conjuntos de direcciones IP para las direcciones permitidas (filter_allowed_ips) y denegadas (filter_denied_ips).

  • Se añaden direcciones IP específicas al conjunto de direcciones permitidas y denegadas.

  • Se permiten las conexiones entrantes desde las direcciones IP permitidas y se deniegan las conexiones entrantes desde las direcciones IP denegadas.

  • Se permite el tráfico de entrada en los puertos 80 y 443.

  • Se deniega cualquier otro tráfico de entrada que no se haya aceptado en la regla anterior

  • Se permite el tráfico saliente en todas las interfaces.

Este es un ejemplo básico y puede adaptarse según las necesidades específicas del entorno y los servicios que se estén ejecutando en el servidor. Es importante tener en cuenta que una configuración de firewall debe ajustarse cuidadosamente para equilibrar la seguridad y la accesibilidad de los servicios.

FAQs (Preguntas Frecuentes)

¿Qué es nftables?

nftables es un marco de filtrado de paquetes y una herramienta de manipulación de redes en el kernel de Linux. Proporciona una forma más moderna y flexible de filtrar y manipular paquetes de red en comparación con iptables.

¿Cuáles son las diferencias entre nftables e iptables?

nftables reemplaza a iptables como el marco de filtrado de paquetes predeterminado en Linux. Ofrece una sintaxis más flexible y fácil de usar, mayor eficiencia en el uso de recursos y una mayor capacidad de manipulación de paquetes.

¿Por qué debería usar nftables en lugar de iptables?

nftables ofrece varias ventajas sobre iptables, incluida una sintaxis más intuitiva, mejor rendimiento y capacidad de manipulación de paquetes más avanzada. Además, nftables es el enfoque futuro para la filtración de paquetes en Linux, lo que lo convierte en una opción más sostenible a largo plazo.

¿Cómo instalo y configuro nftables en mi sistema Linux?

La instalación y configuración de nftables varía según la distribución de Linux que estés utilizando. Generalmente, puedes instalar el paquete nftables desde el repositorio de software de tu distribución y luego configurar las reglas de filtrado según tus necesidades específicas.

¿Puedo migrar mis reglas de iptables a nftables?

Sí, es posible migrar reglas de iptables a nftables. Hay herramientas disponibles, como iptables-translate, que pueden ayudar a convertir reglas de iptables a sintaxis compatible con nftables. Sin embargo, es posible que necesites ajustar manualmente algunas reglas para aprovechar al máximo las capacidades de nftables.

¿Cuáles son algunas características avanzadas de nftables?

nftables ofrece varias características avanzadas, como la capacidad de manipular paquetes a nivel de capa 2 (Ethernet), la integración con el sistema de seguimiento de conexiones del kernel, la compatibilidad con múltiples tablas y cadenas, y la posibilidad de definir reglas basadas en conjuntos de direcciones IP dinámicas.

¿Cómo puedo monitorear el tráfico de red con nftables?

nftables proporciona capacidades integradas para registrar paquetes que coinciden con ciertas reglas. Puedes configurar reglas de registro para capturar información sobre el tráfico de red entrante y saliente, lo que te permite realizar un seguimiento y análisis detallado de la actividad de la red.

¿Hay algún riesgo al usar nftables?

Al igual que con cualquier herramienta de filtrado de paquetes, configurar incorrectamente nftables podría resultar en bloqueos involuntarios de tráfico legítimo o exposición involuntaria de servicios a la red. Es importante comprender las reglas de filtrado que estás aplicando y realizar pruebas exhaustivas antes de implementar nftables en un entorno de producción.

cta:cloud_so

i