domingo, noviembre 04, 2007

Fallos en queries DNS tras migrar a BIND 9.4.1-P1


Una desagradable sorpresa os puede surgir si migrais de versiones anteriores del servidor de DNS más popular de Internet, BIND, a la versión 9.4.1-P1. El problema surge por cometer el fallo de no leer las 'release notes' y presuponer que las ACLs seguirán trabajando como las versiones anteriores. Error!

Resulta que el pasado més de julio 2007 apareció un problema de seguridad en las versiones menores de BIND 9.4.1, en mi caso elegí la parcheada 9.4.1-P1 para solucionar el problema.

Hay que tener en cuenta que en la versión 9.4.1-P1, es la primera de BIND que hace diferenciación entre peticiones realizadas al 'cache' y peticiones realizadas a las zonas 'autorizadas'. Esto resulta un avance en la seguridad de BIND, pero esta separación provocará, que por ejemplo una configuración realizada para 9.3, deniegue peticiones a cualquier zona DNS por parte de cualquier cliente. Por defecto solo permite las 'queries' a las ACL built-in localhost y localnets.

Para solucionar este problema, en nuestro querido named.conf definiremos la ACL "trusted" y en ella meteremos las redes a las que permitiremos realizar peticiones para cualquier zona DNS resolvible por nuestra cache (las redes 192.168.* son solo ejemplos de redes en las que confio y localhost y localnets son acl integradas: números IP locales y sus correspondientes redes pertenecientes):
acl "trusted" {
192.168.0.0/24;
192.168.1.0/24;
localhost;
localnets;
};

options {
...
allow-query { any; };
allow-recursion { trusted; };
allow-query-cache { trusted; };
...

};
Una vez hecho esto incluiremos la ACL 'trusted' en allow-recursion y allow-query-cache. En allow-query establecemos el valor any. De esta forma permitimos a través de allow-query a todo el mundo que pregunte sobre nuestras zonas autorizadas y únicamente a nuestros 'clientes confiables' ('trusted') utilizar nuestra resolución de cache para zonas no soportadas directamente.

Mas info:

http://www.isc.org/index.pl?/sw/bind/bind-security.php
http://www.isc.org/index.pl?/sw/bind/docs/support_bulletin_200707.php
http://support.menandmice.com/jforum/posts/list/25.page