Configurar DNSSec
DNSSec (DNS Security extensions) es un conjunto de extensiones del propio servicio de DNS que mejoran la seguridad cifrando los registros DNS y autenticando la respuesta de los servidores, evitando así ataques tipo “Man in the Middle” que utilizan DNS Spoofing para suplantar identidades de otros equipos de la red.
Hay que tener claro que DNSSec no es un servicio que sustituye a DNS, si no que lo mejora haciéndolo más seguro, con DNSSec tampoco conseguimos proteger a los sistemas de ataque de denegación de servicio, para esto lo ideal sería combinarlo con una configuración RRL (Response Rate Limit) para limitar las respuestas por segundo de nuestro DNS y que no nos puedan hacer DDoS por fuerza bruta.
DNSSec tampoco nos proporciona confidencialidad, las respuestas DNS bajo este marco de seguridad van autenticadas, pero eso no quiere decir que vayan cifradas.
Dentro del servicio DNS podemos encontrar otras extensiones de seguridad como DNS Socket Pool, que nos va cambiando el puerto de respuesta del servidor DNS y el DNS Cache Locking, con el que podemos modificar los periodos en los que los clientes pueden modificar sus registros DNS.
Para tener una seguridad completa lo ideal es tener una combinación de todas estas extensiones de DNS en la medida de lo posible.
Funcionamiento de la validación DNSSec
Cuando alojamos una zona en un servidor DNS autoritativo, podemos firmar digitalmente dicha zona sin cambiar la mecánica de funcionamiento de un servidor DNS.
Cuando firmamos las zonas con DNSSec, se crean nuevos registros en la zona firmada a partir de los ya existentes partiendo de unas claves de encriptación, éstos son los siguientes:
- DNSKEY (DNS Public Key): Clave pública del DNS.
- RRSIG (Resource Record Signature): Firma digital de un registro.
- DS (Delegation Signer): Hash de una DNSKEY.
- NSEC/NSEC3 (Next Secure): Se utiliza para la denegación de existencia.
- NSEC3PARAM: Parametros de configuración de NSEC3.
Podemos verlo de un vistazo rápido en la siguiente imagen:
Cuando un servidor DNS recursivo o de reenvío (forwarder) compatible con DNSSEC recibe una consulta de un cliente DNS para una zona firmada por DNSSEC, solicitará que el servidor DNS autoritativo también envíe estos registros DNSSEC e intentará validar la respuesta DNS utilizando estos registros. Un servidor DNS recursivo o de reenvío (forwarder) reconoce que la zona usa DNSSEC si tiene una DNSKEY, conocida como ancla de confianza (Trust Anchor), para esa zona. (Como vemos en el video tutorial, se puede configurar o definir a la hora de firmar una zona)
Éstos servidores utilizan estas «Trust Anchor» para desencriptar los registros RRSIG recibidos del servidor autoritativo y una vez hecho, compara los hashes. Si los valores hash son los mismos, proporciona una respuesta al cliente DNS, como un registro de recursos de host (A). Si los valores hash no son iguales, responde con un mensaje SERVFAIL. De esta forma, un servidor DNS con capacidad DNSSEC y con un ancla de confianza válida instalada protege contra ataques de suplantación de identidad de DNS, independientemente de que los clientes DNS sean o no conscientes de DNSSEC.
Quizás se vea más claro con el siguiente esquema:
Recursos a tener en cuenta antes de implementar DNSSec
- El hardware de red debe soportar la especificación EDNS0 (Resolución de nombres largos)
- Incremento de las necesidades hardware:
- Servidores recursivos: se necesitará más ancho de banda y existirá mas uso de CPU
- Servidores autoritativos: se necesitará mas memoria, ancho de banda y uso de CPU
- Existe una carga de trabajo mayor puesto que hay tareas extras como renovación de claves y la monitorización del sistema de firmado.
En mi opinión es una extensión de seguridad imprescindible si tenemos cualquier dominio que salga a internet, como una página web, si queremos asegurarnos que ningún atacante suplante nuestras páginas y muy recomendable en entornos internos, necesario en casos de que se pida para el compliance de una compañía.
Autor: Joaquín Ezquerro Martín
Curso: Microsoft MCSA Windows Server 2016 + Azure + AWS
Centro: Tajamar
Año académico: 2019-2020
LinkedIn: https://www.linkedin.com/in/joaqu%C3%ADn-ezquerro-martin-2aa84219/