El sysctl… ¿Lo cualo lo qué?

Publicado: septiembre 23, 2013 en Seguridad, System
Etiquetas:, ,

Aquellos que tengáis la buena costumbre de revisar las News de Archlinux, habréis visto que se ha terminado el soporte de /etc/sysctl.conf. Pero… ¿Y qué es sysctl? ¿Para qué nos sirve?

El núcleo Linux dispone de múltiples opciones que son configurables. Entre otras: opciones para configurar las tarjetas de red, prioridad de uso entre memoria real y virtual, cantidad de archivos que pueden estar abiertos en el sistema, etc.

Con el comando sysctl podemos ver cuales son los valores de estas variables y además, nos permite cambiarlos en caliente (con el sistema arrancado). Aparte de esto, el archivo /etc/sysctl.conf o, tal como tenemos ahora, el directorio /etc/sysctl.d/, alojará la configuración específica que se aplicará en nuestro sistema.

En general, para la mayor parte de los equipos, la configuración con la que está compilado el núcleo, suele ser suficiente. Sin embargo, para fortificar un poco nuestro equipo, o para conseguir aumentar el rendimiento, podemos jugar con alguno de estos valores. Veamos unos ejemplos de valores que es posible que nos interese revisar.

Un uso típico, aunque en Arch, que ya no es necesario, pues está por defecto incluido en el núcleo, es la protección de vulnerabilidades TOCTOU en los links. Para protegernos de esto, basta establecer las variables fs.protected_hardlinks y fs.protected_symlinks a 1. Para ello, desde la línea de comandos teclearíamos:

sudo sysctl  fs.protected_hardlinks=1 fs.protected_symlinks=1

Otro ajuste que podemos hacer y que puede mejorar la respuesta de nuestro sistema, es dar prioridad a la utilización de la memoria real. Esta prioridad se establece en la variable vm.swappiness, que suele estar sobre 60. El valor de esta variable puede oscilar entre 0 y 100. Cuánto más cercano esté el valor a cero, mayor será la prioridad que se le dará a la memoria física del equipo. En el caso de PC’s de escritorio, es posible mejorar el rendimiento del sistema ajustando este valor lo más cercano a cero. Podemos hacerlo así:

sudo sysctl vm.swappiness=20

En cuanto a seguridad, podemos filtrar paquetes, verificando el origen de los mismos, modificando las siguientes variables:

net/ipv4/conf/default/rp_filter=1
net/ipv4/conf/all/rp_filter=1

Para prevenir algunos ataques MITM (Man-In-The-Midle), podemos desactivar redirecciones ICMP:

net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.all.accept_redirects=0
net/ipv6/conf/default/accept_redirects=0
net/ipv6/conf/all/accept_redirects=0

Éstas, entre otras cosas, son para las que nos sirve sysctl y sus archivos de configuración. Para que los cambios sean permanentes, podemos crear el archivo /etc/sysctl.d/99-sysctl.conf, con el siguiente contenido:

fs.protected_hardlinks=1
fs.protected_symlinks=1
vm.swappiness=20
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.all.accept_redirects=0
net.ipv6.conf.default.accept_redirects=0
net.ipv6.conf.all.accept_redirects=0

De esta manera, al reiniciar el sistema, se aplicarán estos valores.

Un detalle a tener en cuenta es que algunas aplicaciones pueden sobreescribir estos valores. Es el caso de los firewalls, por ejemplo UFW. En este caso,  al levantarse, sobreescribe los valores con los de /etc/ufw/sysctl.conf. Tan solo debemos revisar este archivo y añadir ahí los valores que deseemos. Notaremos que, en lugar de utilizar “.” utiliza “/” para la nomenclatura de las variables. Es indiferente, se puede utilizar tanto “.” como “/”.

Pues bueno, ahora toca leer, investigar y, sobre todo, ¡divertirse!

Referencia:

https://wiki.archlinux.org/index.php/Sysctl

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s