Languages

User login


Implementado DNSSEC en un servidor DNS de zona (resolver)


DNSSEC sonlogo dnssec unas nuevas extensiones de seguridad aplicadas a los servidores de nombres (DNS), que evitan la posibilidad de determinados ataques DNS. Podéis obtener más información sobre como funciona en: www.robota.net/index.rsws

En este articulo intento centrarme en la implementación técnica DNSSEC sobre un servidor DNS Bind, a raiz de una charla mantenida con los responsables DNS raíz de puntCAT.

Vamos a implementar DNS en los siguientes dominios disponibles: . (Raíz), .CAT, .ORG, dlv.isc.org  (en los .ES, .COM y .NET aun no es posible habilitarlo (27/11/10)).

1) Comprobamos que nuestro servidor no implementa DNSSEC o que utiliza un resolver que lo utilice.

# dig @IP_delServidor +dnssec . | grep ";; flags: "

Si en el resultado no aparece el flag ad, no tiene implementado dnssec

Ej de salida de un servidor dns que no implementa dnssec:

;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

2) Visualizamos las claves dnssec de los dominios a configurar utilizando la herramienta dig,

# dig . DNSKEY

# dig cat. DNSKEY

# dig org. DNSKEY

Las copiamos para utilizarlas más tarde, las claves son lo qué está después de:  " 257 3 10 "

3) Editamos el fichero /etc/bind/named.conf.options donde agregamos dentro de la declaración options:

    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside "." trust-anchor dlv.isc.org.;

4) Creamos el archivo /etc/bind/named.conf.options.dnssec y agregamos lo siguiente corrigiendo las claves si es necesario:

trusted-keys {

"cat." 257 3 10
"AwEAAZyLblUU38otAOJ9KLgWEz50YDnNRjKiff/IbgaZHUvBo9H9+r4I efcL74uqUAJ6RL5+98GEpWxayXGGJkzcIVZvDz8q7hbl2ApNectCy7iF KDpE94qnva0HroMbMEArMILAGOeekRnlqCCRXA9hJ8wowZoQSceHiA2O pmqGCn/3SMkB+KprbjJ4eO9Ir1VGTQRoh7h
ACz85l7moJaGaKOQJcH42 VsFPyR0QrErGl4sgLyWSFpwFTGNjPCQTU3WRjnIemqiVJlykhQsFMYGd B8CGjhBUdXRz4PwyR10F7tYEzh78NLTR3RdjiOXPUUePQdV3I+O6U6Xu jWMWn6rQ94s=";

"org." 257 3 7
"AwEAAYpYfj3aaRzzkxWQqMdl7YExY81NdYSv+qayuZDodnZ9IMh0bwMc YaVUdzNAbVeJ8gd6jq1sR3VvP/SR36mmGssbV4Udl5ORDtqiZP2TDNDH xEnKKTX+jWfytZeT7d3AbSzBKC0v7uZrM6M2eoJnl6id66rEUmQC2p9D rrDg9F6tXC9CD/zC7/y+BNNpiOdnM5DXk7H
hZm7ra9E7ltL13h2mx7kE gU8e6npJlCoXjraIBgUDthYs48W/sdTDLu7N59rjCG+bpil+c8oZ9f7N R3qmSTpTP1m86RqUQnVErifrH8KjDqL+3wzUdF5ACkYwt1XhPVPU+wSI lzbaAQN49PU=";

"." 257 3 8
"AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dl
zEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0=";

"dlv.isc.org." 257 3 5 "BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2 brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+ 1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5 ymX4BI/oQ+cA
K50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt TDN0YUuWrBNh";

};

5) Incluimos en el /etc/bind/named.conf el nuevo archivo:

include "/etc/bind/named.conf.options.dnssec";

6) Reiniciamos el servicio bind:

# /etc/init.d/bind9 restart

7) Verificamos que el servicio funcione y que funcione dnssec:

dig @IP_del_servidor wikipedia.org

(Sobre todo probar aquellos dominios donde se ha implementado dnssec).

dig @IP_delServidor +dnssec .org | grep ";; flags: "

Ej:;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1

Si nos sale el flag ad, todo debe estar fucionando.

8) Ahora vamos a instalar un plugin dnssec en el navegador Firefox:

En Herramientas - Complementos, buscamos dnssec e instalamos el plugin llamado DNSSEC Validator. Este plugin nos permite saber si las paginas que tienen implementado DNSSEC son seguras o existen inicios de un ataque de falseamientos sobre la misma.

firefox dnssec validator