A la hora de recompilar un nuevo núcleo de Linux hemos de tener en cuenta
algunas opciones dentro del grupo `Networking Options' que pueden afectar
a la seguridad de nuestra máquina (algunos de estos aspectos, para núcleos
2.0, pueden encontrarse en [Wre98]). Sin embargo, antes de entrar en
detalles con opciones concretas, es muy conveniente que introduzcamos
soporte para sistemas de ficheros proc en `Filesystems' (CONFIG/SMALL>_PROC/SMALL>_FS) y activemos el interfaz sysctl en `General
Setup' (CONFIG/SMALL>_SYSCTL); con estos pasos habilitamos la capacidad de
Linux para modificar ciertos parámetros del núcleo (en /proc/sys/)
sin necesidad de reiniciar el sistema o recompilar el kernel.
Pasando ya a comentar algunas opciones que nos ofrece Linux, es bastante
interesante para la seguridad configurar nuestro sistema como un cortafuegos
a la hora de compilar el núcleo (CONFIG/SMALL>_IP/SMALL>_FIREWALL). Linux ofrece
en su kernel facilidades para definir un firewall de paquetes en
el sistema, que además permitirá el IP-Masquerading. Para que el
subsistema de filtrado funcione es necesario que el IP-Forwarding esté
activado de la forma que más tarde veremos.
Otra opción que nos puede ayudar a incrementar la seguridad de nuestro
equipo es la defragmentación de paquetes (CONFIG/SMALL>_IP/SMALL>_ALWAYS/SMALL>_DEFRAG)
que llegan a través de la red. Cuando un equipo situado entre el origen y el
destino de los datos
decide que los paquetes a enviar son demasiado grandes, los divide en fragmentos
de longitud menor; sin embargo, los números de puerto sólamente viajan
en el primer fragmento, lo que implica que un atacante puede insertar
información en el resto de tramas que en teoría no debe viajar en ellas.
Activando esta opción, en nuestra máquina estos fragmentos se reagruparán
de nuevo incluso si van a ser reenviados a otro host.
Siguiendo con las diferentes opciones del subsistema de red, podemos habilitar
el soporte para `SYN Cookies' (CONFIG/SMALL>_SYN/SMALL>_COOKIES) en el núcleo
que estamos configurando.
Una red TCP/IP habitual no puede soportar un ataque de negación de servicio
conocido como `SYN Flooding', consistente básicamente en enviar una
gran cantidad de tramas con el bit SYN activado para así saturar los
recursos de una máquina determinada hasta que los usuarios no pueden ni
siquiera conectar a ella. Las `SYN Cookies' proporcionan
cierta protección contra este tipo de ataques, ya que la pila TCP/IP utiliza
un protocolo criptográfico para permitir que un usuario legítimo pueda
seguir accediendo al sistema incluso si este está siendo atacado. Aunque
configuremos y ejecutemos un núcleo con esta opción soportada, hemos de
activar las `SYN Cookies' cada vez que el sistema arranca (como veremos
luego), ya que por defecto están deshabilitadas.
En ciertas situaciones es interesante analizar en espacio de usuario - es
decir, sin sobrecargar al núcleo más de lo estrictamente necesario - un
paquete o parte de él (típicamente, los 128 primeros bytes) que llega a
través de la red hasta nuestra máquina; de esta forma, un analizador simple
puede tomar ciertas decisiones en función del contenido del paquete recibido,
como enviar un correo al administrador en caso de sospecha o grabar un mensaje
mediante syslog. Justamente esto es lo que conseguimos si habilitamos
la opción Firewall Packet Netlink Device (CONFIG/SMALL>_IP/SMALL>_FIREWALL/SMALL>_NETLINK).
Hasta ahora hemos hablado de la posibilidad que tiene Linux para modificar
parámetros del núcleo sin necesidad de recompilarlo o de reiniciar el
equipo, mediante el interfaz sysctl; esto implica por ejemplo que podemos
modificar el comportamiento del subsistema de red simplemente modificando
determinados ficheros de /proc/sys/ (recordemos que el sistema de
ficheros /proc/ de algunos Unix es una interfaz entre estructuras de
datos del núcleo y el espacio de usuario). Veremos en el punto
10.5 algunos de estos parámetros configurables que tienen
mucho que ver con la seguridad Linux, en especial con el subsistema de red.
© 2002 Antonio Villalón Huerta