Admin Libre - Administración de sistemas y redes

Ahorro de memoria desactivando KARL y reordenación de librerías al inicio
Por Francisco Gaitán el 25 de Abril de 2022

Cuando arranca OpenBSD se produce una reordenación de los objetos de las librerías (ASLR) y del kernel (KARL). Esto sirve para mejorar la seguridad del sistema, aunque tiene el inconveniente de consumir grandes cantidades de memoria. Si usas un servidor con 1GB o menos de RAM esto se traduce en uso de memoria swap.

No es una práctica recomendada, aunque puede ser conveniente cuando es necesario minimizar el consumo de memoria para ahorrar costes. Aún desactivando estas funcionalidades al inicio, en la instalación ambos espacios de direcciones están aleatorizados. La diferencia está en que no se reordenarán cada vez que inicie el sistema como ocurre con la configuración por defecto.

Aunque hoy día no es caro contratar un servidor con 2GB de RAM, en ciertos proveedores como Exoscale la diferencia de precio entre un servidor de 512 MB de RAM y uno de 2 GB es del 300%.

Con esta configuración donde la memoria del servidor va muy justa es más que recomendable usar una cantidad de memoria swap de un poco más del doble de la memoria.

Desactivar la reordenación de librerías

Con este comando se desactivará la reordenación de librerías al inicio:

# rcctl disable library_aslr 

Aunque supone un sacrificio de seguridad, ten en cuenta que en la instalación de OpenBSD el espacio de direcciones de las librerías queda aleatorizado.

Desactivar KARL

Cada vez que se aplica un parche mediante syspatch(8) se reordena aleatoriamente el kernel, por lo que se puede desactivar al inicio de la siguiente forma. Basta con comentar la siguiente línea del archivo /etc/rc:

# Re-link the kernel, placing the objects in a random order.
# Replace current with relinked kernel and inform root about it.
#/usr/libexec/reorder_kernel &

Una solución puede ser reconstruir el kernel en otra máquina con más memoria de forma periódica como explica Nick Holland en @misc y distribuirlas con rdist(1) tal y como se explica en el artículo rdist(1) - when Ansible is too much.

Destacado

Misión

Admin Libre promueve el uso de software libre y de calidad tanto en los servidores como en el hardware de red con el objetivo de hacer los sistemas más seguros y auditables.