Por Jamie Norrish
Opciones de configuración para reducir los problemas de seguridad.
Hay algunos pasos simples que puede llevara cabo para asegurar su servidor y reducir su carga. El material incluido aquí no es más que un punto de partida; si te preocupan los temas de seguridad (y deberían preocuparte), por favor, consulta otros recursos en la red (mira el último capítulo).
Las siguientes directivas de configuración se incluyen en
el fichero named.conf
. Si la directiva aparece en la
sección options
del fichero, entonces se aplica
a todas las zonas incluidas en ese fichero. Si aparecen en una
entrada zone
, entonces se aplican sólo a esa
zona. Los valores de zone
se anteponen a los
especificados en options
.
Para que sus servidores esclavos puedan responder consultas
sobre tu dominio tienen que poder transferir la información
de la zona de tu servidor primario. Del resto, muy pocas
máquinas deberían hacerlo. Por tanto, restringe las
transferencias de zona usando la opción
allow-transfer
, suponiendo que 192.168.1.4 es la
dirección IP de ns.friend.bogus y añádete a ti
mismo por motivos de depuración:
zone "linux.bogus" { allow-transfer { 192.168.1.4; localhost; }; };
Al restringir las transferencias de zona te aseguras que la información pública disponible es la que la gente consulte directamente, nadie puede preguntar detalles sobre la configuración del servidor.
Primero, desactiva cualquier consulta para dominios que no sean de tu propiedad, salvo para consultas internas y la máquina local. Esto no sólo ayuda a prevenir el uso malicioso de tu servidor DNS, sino que reduce el uso innecesario de tu servidor.
options { allow-query { 192.168.196.0/24; localhost; }; }; zone "linux.bogus" { allow-query { any; }; }; zone "196.168.192.in-addr.arpa" { allow-query { any; }; };
Más aun, desactiva las consultas recursivas salvo para orígenes internos/locales. Esto reduce el riesgo de "ataques de envenenamiento" (que alimentan tu servidor con datos falsos).
options { allow-recursion { 192.168.196.0/24; localhost; }; };
Es buena idea ejecutar named como un usuario distinto de root, de forma que los privilegios obtenidos por un cracker estén tan limitados como sea posible. Primero tenemos que crear unos usuario y grupo para ejecutar named, y después modificar los guiones de inicio necesarios que uses para lanzar named. Pasa el usuario y el grupo a named usando las opciones -u y -g.
Por ejemplo, en Debian GNU/Linux 2.2 podría modificar su
guion /etc/init.d/bind
para tener la siguiente
línea (donde el usuario y el grupo ya se han creado):
start-stop-daemon --start --quiet --exec /usr/sbin/named -- -u named -g named
Lo mismo se puede hacer con Red Hat y otras distribuciones. Dave Lugo ha descrito una configuración dual chroot segura http://www.etherboy.com/d ns/chrootdns.html que te puede resultar interesante leer.