Category Archives: Bind

Enjaulando Bind

Introducción

Buenas a todos. Hoy vamos a ver cómo enjaular Bind en Ubuntu. Bind es un servidor DNS muy usado en internet, concretamene en máquinas cuyos sistemas operativos están basados en Unix. Fue creado por cuatro estudiantes en la University of California. Actualmente se encuentra en su versión 9.

¿Enjaular?

El proceso de enjaular un servicio o usuario en Linux se realiza para evitar intrusiones no deseadas en un sistema, de modo que si alquien consiguiera burlar la seguridad de nuestro sistema y entrar, sólo se vería afectada la zona de enjaulamiento.

Instalando Bind

Lo primero que hay que hacer es instalar Bind en nuestra máquina, así que en un terminal escribimos:

sudo aptitude install bind9 dnsutils

Cuando ya tenemos Bind instalado, detenemos el servicio:

sudo /etc/init.d/bind9 stop

Configurando Bind y creando directorios de enjaulamiento

Ahora vamos a indicarle a Bind de dónde debe coger los archivos de configuración, desde el terminal:

sudo gedit /etc/default/bind9

Una vez con el archivo abierto, esto será lo que veamos:

Añadimos lo siguiente a la línea indicada:

- t /var/lib/named

Guardamos los cambios y vamos a crear ahora los directorios que almacenarán los archivos de configuración de Bind, desde el terminal:

sudo mkdir /var/lib/named

Creamos también los siguientes directorios:

sudo mkdir /var/lib/named/dev
sudo mkdir /var/lib/named/etc
sudo mkdir /var/lib/named/var/cache/bind
sudo mkdir /var/lib/named/var/run/bind/run

Ahora movemos los archivos de configuración de Bind a los directorios que hemos creado:

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

Ahora creamos un enlace simbólico que vaya desde /etc/bind a /var/lib/named/etc

sudo ln -s /var/lib/named/etc /etc/bind

Una vez creado el enlace simbólico, vamos a crear los dispositivos null y random con el comando mknod. Desde el terminal:

sudo mknod /var/lib/named/dev/null c 1 3

sudo mknod /var/lib/named/dev/random c 1 8

Asignando los permisos

Ahora tenemos que configurar los permidos de ejecución y hacer a Bind propietario de los directorios /var/lib/named/etc y /var/lib/named/var/*.

Empezamos con los permisos, desde el terminal escribimos:

sudo chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random

Y ahora hacemos a Bind propietario de los directorios:

sudo chown -R bind:bind /var/lib/named/var/*

sudo chown -R bind:bind /var/lib/named/etc/bind

Editando el fichero resolv.conf

Vamos ahora a editar el fichero /etc/resolv.conf para añadir nuestra máquina cómo servidor DNS encargado de resolver las direcciones. En un terminal escribimos:

sudo gedit /etc/resolv.conf

Una vez con el archivo abierto, comentamos las direcciones que aparezcan y añadimos la dirección IP de nuestra máquina, de forma que quede más o menos así:

En mi caso, tenía para resolver las direcciones la propia dirección del router bajo el que me encuentro.

Ahora reiniciamos la red para que los cambios surtan efecto, desde el terminal escribimos:

sudo /etc/init.d/networking restart

Ahora mismo, si hacemos un ping a Google nos responderá esto:

Esto se debe a que el servicio de Bind está parado, y sólo está nuesta máquina para resolver las direcciones. Iniciamos Bind:

sudo /etc/init.d/bind9 start

Esto se debe a que el servicio apparmor no nos permite iniciar Bind ya que este no tiene permiso para acceder a /var/lib/named

Configurando los permisos de apparmor

Vamos a configurar los permisos de apparmor, para que Bind pueda tener acceso a /var/lib/named. En primer lugar paramos el servicio de apparmor, desde el terminal tecleamos:

sudo /etc/init.d/apparmor stop

Ahora vamos a editar la configuración de apparmor, escribimos en un terminal lo siguiente:

sudo gedit /etc/apparmor.d/usr.sbin.named

Una vez con el archivo abierto, comentamos las siguientes líneas:

#/var/run/named/named.pid w,
# support for resolvconf
#/var/run/named/named.options r,

Ahora nos vamos hacia el final del archivo, y añadimos las siguientes líneas:

/var/lib/named/etc/bind/* rw,
/var/lib/named/etc/bind/zones/* rw,
/var/cache/bind/* rw,
/var/lib/named/var/run/bind/run/named.pid w,
/var/lib/named/var/run/bind/named/options r,
/var/lib/named/dev/null rw,
/var/lib/named/dev/random rw,

Iniciando apparmor y Bind

Ya está todo configurado, ya sólo queda iniciar apparmor y Bind, desde el terminar escribimos:

sudo /etc/init.d/apparmor start

sudo /etc/init.d/bind9 start

Ya sólo queda hacer un ping a Google para comprobar si obtenemos respuesta o no, desde el terminal escribimos:

ping google.es

Bibliografía