LINUX

Cómo usar /etc/sysctl.conf para fortalecer la seguridad del kernel de Linux

Sysctl es un poderoso comando de Linux que actúa como una interfaz para cambiar dinámicamente los parámetros del kernel. Con este comando, puede cambiar los parámetros del kernel sin volver a compilar el kernel o reiniciar la máquina.

Los parámetros disponibles para modificar se pueden encontrar en el directorio /proc/sys. Entonces, procfs (simular el sistema de archivos para poder comunicarse con el kernel a través del sistema de archivos) es obligatorio para «sysctl». Solo el superusuario (root) puede ejecutar este comando.

Cambiar los parámetros del kernel usando el comando sysctl

Los parámetros del kernel se pueden cambiar de forma temporal o permanente. Los cambios temporales a los parámetros del kernel son:

1. Lea los parámetros actuales del núcleo,

sysctl -a

2. Use el interruptor «-w» para escribir un valor en una variable:

Ejemplo:

sysctl –w net.ipv4.icmp_echo_ignore_all=1

Este comando indicará al servidor que ignore los paquetes ICMP (solicitudes de ping). El valor «0» representa «Desactivado» y «1» representa «Activado». Estos cambios son temporales y se restablecerán al reiniciar.

Modificación permanente de los parámetros del Kernel

A. Modificación directa de valores en procfs

Puede modificar directamente los archivos en procfs (el directorio /proc/sys) para cambiar el parámetro del kernel.

Ejemplo:

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

El comando anterior deshabilitará los paquetes ICMP.

b. Modificación del archivo de configuración /etc/sysctl.conf

Esta es la forma más recomendada de cambiar los parámetros del kernel. Debe agregar la siguiente línea a /etc/sysctl.conf para el filtrado de paquetes ICMP.

net.ipv4.icmp_echo_ignore_all = 1

Después de modificar el archivo de configuración de sysctl, debe ejecutar el siguiente comando para cargar la configuración de sysctl desde el archivo /etc/sysctl.conf.

sysctl -p

Ajuste de seguridad y rendimiento mediante sysctl

1. Controlar el reenvío de paquetes IP

El reenvío de paquetes IP debe habilitarse solo en servidores que actúan como enrutadores o puertas de enlace. En todos los demás servidores, esta función debe estar deshabilitada.

net.ipv4.ip_forward = 0

2. Verificación de la dirección de origen

Esta «comprobación de cordura» ayuda contra el ataque de suplantación de identidad.

net.ipv4.conf.all.rp_filter = 1

3. Habilite la protección execshield

Execshield es un parche de seguridad para el kernel de Linux para evitar gusanos y otros problemas. Agregue las siguientes líneas a /etc/sysctl.conf para habilitar la protección execshield.

kernel.exec-shield = 1
kernel.randomize_va_space = 1

4. Protección contra inundaciones SYN

En este ataque, el sistema se inunda con una serie de paquetes SYN. Cada paquete hace que el sistema emita una respuesta SYN-ACK. Luego, el sistema espera el ACK que sigue al SYN+ACK (apretón de manos de tres vías). Dado que el ataque nunca devuelve ACK, se llena todo el recurso del sistema, llamado cola. Una vez que la cola esté llena, el sistema ignorará las solicitudes entrantes de usuarios legítimos de servicios (http/correo, etc.). Para detener esto, debe habilitar SYNcookies en sysctl.conf.

net.ipv4.tcp_syncookies = 1

5. Prevención de ataques de pitufos

Un ataque pitufo es una explotación de la dirección de transmisión del Protocolo de Internet (IP) para crear una denegación de servicio. El programa smurf construye un paquete de red que parece provenir de una dirección diferente (esto se conoce como suplantación de direcciones IP). El paquete contiene un mensaje de ping ICMP que se dirige a una dirección IP de difusión, es decir, todas las direcciones IP en una red determinada. Las respuestas de eco al mensaje de ping se devuelven a la dirección de la «víctima». Suficientes pings y los ecos resultantes pueden inundar la red, haciéndola inutilizable para el tráfico real.

Una forma de derrotar al smurfing es deshabilitar la dirección de transmisión IP.

net.ipv4.icmp_echo_ignore_broadcasts = 1

6. Registra todos los paquetes marcianos

Un paquete marciano es un paquete IP que especifica una dirección de origen o de destino que está reservada para un uso especial por parte de la Autoridad de Números Asignados de Internet (IANA) y que en realidad no puede originarse como se afirma o entrega.

Los paquetes marcianos suelen surgir de la suplantación de direcciones IP en ataques de denegación de servicio,

net.ipv4.conf.all.log_martians = 1

Conclusión

En este tutorial, aprendimos cómo usar el comando sysctl y configurar el parámetro del kernel en Linux. Espero que hayas disfrutado leyendo y por favor deja tu sugerencia en la sección de comentarios a continuación.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar