sudo: Jack of all trades, master of some

BIND9 chroot

3 comentarios

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:

Comentarios desactivados
  1. no es mas facil service bind9 [start/stop/restart ] ???

    1. @Felipe

      No, simplemente porque esa es la forma que usa Ubuntu con su upstart.
      Y si te fijas bien:

      En este tutorial se usará Debian como sistema operativo.

  2. JorgeR3 5 años atrás

    Alguien lo ha probado usando samba4 y bind dlz???