BIND9 chroot

Chroot es el proceso de cambiar el directorio raíz y los procesos que se están ejecutando con sus hijos hacia otro directorio. Cuando ocurre esto, simplemente el usuario no puede acceder a los archivos y comandos que estén fuera del árbol de directorios al que esté confinado.

Ejecutar BIND en una jaula chroot y con un usuario diferente de root evita que cualquier usuario malicioso pueda explotar vulnerabilidades de la aplicación, sin embargo este proceso es solo un sumplemento a las medidas de seguridad que normalmente debemos tener implementadas.
En este tutorial se usará Debian como sistema operativo.

1. Instalar BIND.

aptitude install bind9

2. Detener el servicio de BIND.

/etc/init.d/bind9 stop

3. Definir con cuál usuario y en qué directorio se ejecutará el proceso.

Editar el archivo /etc/default/bind9 y modificar: OPTIONS=”-u bind” por: OPTIONS=”-u bind -t /var/lib/named”

4. Generar el árbol de directorios para la jaula.

mkdir -p /var/lib/named/{etc,dev,var/{cache/bind,run/named}}

5. Mover los archivos de configuración hacia la jaula.

mv /etc/bind /var/lib/named/etc

6. Crear enlaces simbólicos a los nuevos directorios.

ln -s /var/lib/named/etc/bind /etc/bind
rmdir /var/cache/bind /var/run/named
ln -s /var/lib/named/var/cache/bind /var/cache/bind
ln -s /var/lib/named/var/run/named /var/run/named

7. Crear los dispositivos null, random y asignar permisos a los directorios y archivos.

mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 660 /var/lib/named/dev/{null,random}
chown -R bind:bind /var/lib/named/var/* /var/lib/named/etc/bind
8. Enviar los logs de BIND hacia el syslog.
echo "\$AddUnixListenSocket /var/lib/named/dev/log" > /etc/rsyslog.d/bind.conf

9. Reiniciar syslog.

/etc/init.d/rsyslog restart

10. Iniciar BIND.

/etc/init.d/bind9 start

Notas:

  • Para ver el log de BIND: tailf /var/log/syslog

Por: Sudo

Deja un comentario

Tu email nunca se publicará.