GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo bloquear direcciones falsificadas locales usando el firewall de Linux

Los atacantes están encontrando formas sofisticadas de penetrar incluso en redes remotas que están protegidas por sistemas de detección y prevención de intrusiones. Ningún IDS/IPS puede detener o minimizar los ataques de piratas informáticos que están decididos a apoderarse de su red. La configuración incorrecta permite a los atacantes eludir todas las medidas de seguridad de red implementadas.

En este artículo, explicaré cómo los ingenieros de seguridad o los administradores de sistemas pueden prevenir estos ataques.

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

Casi todas las distribuciones de Linux vienen con un firewall incorporado para proteger los procesos y las aplicaciones que se ejecutan en el host de Linux. La mayoría de los cortafuegos están diseñados como soluciones IDS/IPS, cuyo objetivo principal es detectar y evitar que los paquetes malintencionados accedan a una red.

Un firewall de Linux generalmente viene con dos interfaces:iptables e ipchains. La mayoría de la gente se refiere a estas interfaces como "cortafuegos iptables" o "cortafuegos ipchains". Ambas interfaces están diseñadas como filtros de paquetes. Iptables actúa como un cortafuegos con estado, tomando decisiones basadas en paquetes anteriores. Ipchains no toma decisiones basadas en paquetes anteriores; por lo tanto, está diseñado como un cortafuegos sin estado.

En este artículo, nos centraremos en el cortafuegos iptables, que viene con la versión 2.4 del kernel y posteriores.

Con el cortafuegos de iptables, puede crear políticas, o conjuntos ordenados de reglas, que comunican al núcleo cómo debe tratar clases específicas de paquetes. Dentro del núcleo se encuentra el marco de Netfilter. Netfilter es tanto un marco como el nombre del proyecto para el firewall de iptables. Como marco, Netfilter permite que iptables enlace funciones diseñadas para realizar operaciones en paquetes. En pocas palabras, iptables se basa en el marco de Netfilter para crear funciones de cortafuegos, como el filtrado de paquetes de datos.

Cada regla de iptables se aplica a una cadena dentro de una tabla. Una cadena de iptables es una colección de reglas que se comparan con paquetes con características similares, mientras que una tabla (como nat o mangle) describe diversas categorías de funcionalidad. Por ejemplo, una tabla de mangle altera los datos del paquete. Por lo tanto, se le aplican reglas especializadas que modifican los datos del paquete y se aplican reglas de filtrado a la tabla de filtros porque la tabla de filtros filtra los datos de los paquetes.

Las reglas de Iptables tienen un conjunto de coincidencias, junto con un objetivo, como Drop o Deny , que le indica a iptables qué hacer con un paquete que cumple con la regla. Por lo tanto, sin un objetivo y un conjunto de coincidencias, iptables no puede procesar paquetes de manera efectiva. Un objetivo simplemente se refiere a una acción específica que se debe realizar si un paquete coincide con una regla. Las coincidencias, por otro lado, deben cumplirse en cada paquete para que iptables las procese.

Ahora que entendemos cómo funciona el firewall de iptables, veamos cómo usar el firewall de iptables para detectar y rechazar o descartar direcciones falsificadas.

Activar la verificación de la dirección de origen

El primer paso que yo, como ingeniero de seguridad, tomo cuando trato con direcciones falsificadas de hosts remotos es activar la verificación de la dirección de origen en el kernel.

La verificación de la dirección de origen es una función a nivel de kernel que descarta paquetes que pretenden provenir de su red. Utiliza el método de filtro de ruta inversa para verificar si la fuente del paquete recibido es accesible a través de la interfaz en la que llegó.

Para activar la verificación de la dirección de origen, utilice el script de shell simple a continuación en lugar de hacerlo manualmente:

#!/bin/sh
#author’s name: Michael K Aboagye
#purpose of program: to enable reverse path filtering
#date: 7/02/18
#displays “enabling source address verification” on the screen
echo -n "Enabling source address verification…"
#Overwrites the value 0 to 1 to enable source address verification
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo "completed"

El script anterior, cuando se ejecuta, muestra el mensaje Enabling source address verification sin añadir una nueva línea. El valor predeterminado del filtro de ruta inversa es 0.0, lo que significa que no hay validación de fuente. Por lo tanto, la segunda línea simplemente sobrescribe el valor predeterminado de 0 a 1. 1 significa que el kernel validará la fuente al confirmar la ruta inversa.

Finalmente, puede usar el siguiente comando para descartar o rechazar direcciones falsificadas de hosts remotos eligiendo cualquiera de estos objetivos:DROP o REJECT . Sin embargo, recomiendo usar DROP por razones de seguridad.

Reemplace el marcador de posición "Dirección IP" con su propia dirección IP, como se muestra a continuación. Además, debe elegir usar REJECT o DROP; los dos objetivos no funcionan juntos.

   iptables -A INPUT -i internal_interface -s IP_address -j REJECT / DROP  

    iptables -A INPUT -i internal_interface -s 192.168.0.0/16  -j REJECT/ DROP

Este artículo proporciona solo los conceptos básicos sobre cómo evitar ataques de suplantación de identidad de hosts remotos que utilizan el firewall de iptables.


Linux
  1. Cómo extraer el archivo tar.gz en Linux usando la línea de comandos

  2. Cómo eliminar un usuario en Linux usando la línea de comandos

  3. ¿Cómo obtener la cantidad de CPU en Linux usando C?

  4. Cómo restringir el acceso a Internet para un usuario en particular en la LAN usando iptables en Linux

  5. ¿Cómo registrar las direcciones IP que intentan conectarse a un puerto?

Cómo mejorar la seguridad de los sistemas Linux usando Firejail

Cómo bloquear un puerto usando un firewall en Linux

Cómo proteger un firewall de Linux con reglas de IPTables

Cómo configurar el cortafuegos UFW en Linux

Cómo encriptar dispositivos de bloque usando LUKS en Linux

Cómo configurar un cortafuegos en su servidor Linux