I-dns: (0.03) (slink) Servidor de nombres de dominio "bind" configurado como "CACHE DNS", más restricción de acceso e interface y hacer que no corra como root 1) Instalar el paquete bind 2) Ejecutar bindconfig, para cache-dns contestar: Forwarder IP adresses: Las dos DNS del proveedor de internet (separadas por un espacio) Enable forward-only mode [N]: Y Enable localhost entries? [Y]: Y Add (127.0.0.1) as a nameserver? [Y]: Y Start nameserver daemon now? [Y]: Y 3) Aplicar restricción de acceso y de interface con una lista de control de acceso - Editar /etc/named.conf - Añadir al principio la lista de control de acceso "acl miacl" siguiente: ---8<--- acl miacl{ 192.168.0.0/24; 127.0.0.1; }; --->8--- - Añadir al final de la sección options las opciones siguientes: ---8<--- options { ... allow-transfer{ miacl; }; allow-query{ miacl; }; listen-on{ miacl; }; }; --->8--- 4) Un poco más de seguridad, hacer que no corra como root: - Hacer que named corra como usuario no root funciona aunque no aparezca en "man named" (probado) * Crear usuario y grupo nuevos no usados para nada mas ("named" 53): adduser --system --uid 53 --group named # --system hace que la shell sea /bin/false y deshabilita password # --group junto a --system hace que se cree un grupo como el usuario rm /home/named # En slink adduser no tiene la opción "--no-create-home" # y hay que borrarlo "a mano" * Modificar el lanzamiento del demonio para usar ese usuario y grupo Editar: /etc/init.d/bind Cambiar: start) echo -n "Starting domain name service: named" start-stop-daemon --start --quiet --exec /usr/sbin/named Por: start) echo -n "Starting domain name service: named" start-stop-daemon --start --quiet --exec /usr/sbin/named -- \ -unamed -gnamed * ATENCION: Todos los archivos han quedado como propiedad de root, con lo que un atacante que consiga acceso con un exploit ganará acceso como usuario "named" y no podrá modificar la configuración de named. Si tu servidor DNS es un secundario entoces recibe transferencias de zona en ese caso deberás cambiar el propietario del directorio y los archivos en /etc/namedb para que named pueda escribir en ellos: --- ESTO NO LO HE PROBADO --- En el Chroot-BIND-HOWTO dice que /etc/namedb pero ese directorio no existe en Debian, supongo que es: # chown -R named:named /var/cache/bind De /var/run no hay que preocuparse, como named arranca como "root" escribe su pid _antes_ de hacer el chroot (comprobado). 5) Más seguridad: Si el servidor DNS va a ser victima de ataques (internet o internos) hay que hacerlo funcionar en una jaula "chroot" (mira mi chuleta teoria-chroot). A named se le puede pasar como parametro -t el directorio a "chroot" Pero al mover todos los archivos de bind al directorio chroot creo que ya no podremos hacer la configuración con linuxconf... (a lo mejor usando symlinks se puede...)