Que es DNS Cache Locking? (es-ES)
http://www.leoponti.com.ar/blog/20120812/01/01.pngEn esta oportunidad, quiero comentarles una nueva función de seguridad para Cache DNS Server, que viene en la versión de Sistema Operativo Windows Server 2008R2 o posterior, que es el bloqueo del Cache de DNS Server o en su traducción al ingles, DNS Cache Locking.-
Quienes administramos servicios de Active Directory y/o Servicios DNS Server de Windows, con versiones anteriores a Windows Server 2008R2, nos encontrábamos con un punto faltante de Seguridad que era el mismo Cache DNS en el servidor que da dicho servicio, ya que por si algún motivo ingresaban al cache y modificaban los valores en ese momento, por un periodo de tiempo hasta que se actualizaba la información en cache, se podrían direccionar las consultas a cualquier otro sitio no definido por el administrador y hasta malicioso si se presentaba ese caso.-
Recordemos que como también lo tienen los clientes, el cache DNS también lo tiene un Server DNS, los registros que son consultados en forma constante, son cacheados en memoria para dar la respuesta mas rápido sin tener que consultar en la base DNS, obviamente que ese cache, es actualizado cada x periodo de tiempo definido por el administrador.
Teniendo este tema de seguridad planteado, para que sea mas seguro al administrador, a partir de Windows Server 2008R2, se puso el bloqueo de cache DNS, el cual por default, bloquea el cache por el 100% de tiempo que esta presente el tiempo de vida del cache (TTL - "Time to Live"), este valor default en un server DNS con Windows Server 2008R2, se puede modificar definiendo el porcentaje de tiempo del cache que estaría bloqueado, por ejemplo, si por algún motivo, en nuestra organización necesitamos un porcentaje del TTL que no este habilitado el bloqueo del cache, modificando unos valores, podemos habilitar, una posibilidad es si definimos el valor 60, seria un 60% del TTL habilitado el bloqueo del Cache y el otro 40% del tiempo, estaría sin dicho bloqueo.-
¿Como podemos modificar el valor?
Existen dos formas, una modificando una clave de registro del server DNS y otra por comando dnscmd, les paso a continuación un ejemplo de cada una de dichas opciones:
1) *Como comente antes, el valor default en un server DNS con Windows Server 2008R2, es de 100, con lo que significa, que todo el tiempo del cache DNS, tenemos el bloqueo habilitado, ahora siguiendo el mismo ejemplo dado, supongamos que tenemos por un requerimiento interno, reducir ese valor default a 60% del TLL, con lo que mediante el comando DNSCMD, se realizaría de la siguiente manera:
*Ejecutamos en una línea de comando de CMD, la siguiente línea: dnscmd /Config /CacheLockingPercent 60, luego cerramos la ventana de comandos y reiniciamos el servicio de DNS Server, para pasar a tener en funcionamiento, el nuevo porcentaje de bloqueo de Cache DNS en el server.-
2) Con el mismo ejemplo dado, ahora les paso como se podría realizar en lugar de línea de comando, modificando una clave de registro del servidor DNS, abriendo la consola de Registros de Windows, Inicio - Ejecutar - regedit, una vez que abre la consola, buscan la siguiente ruta:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\DNS\Parameters donde encontraran la llave: CacheLockingPercent con 100 si esta por default y nunca fue modificado, con lo que el mismo, lo editaríamos y pondríamos el valor 60, si dicha llave no existe, internamente el server estará funcionando como si la misma existiera, pero en nuestro caso, como tenemos que reducirlo, sobre Parameters, pondríamos New - DWORD (32-bit) Value cargar CacheLockingPercent, con 60 como valor del nuevo Key de Registry. Bajo un cambio u otro, luego reiniciar el servicio DNS Server para que los mismos hagan efecto.-