| 1 | Firmado de zonas con OpenDNSSEC - part 1 |
|---|
| 2 | |
|---|
| 3 | 1. Inicialice el "Hardware Security Module" basado en software (SoftHSM) |
|---|
| 4 | |
|---|
| 5 | # mkdir /usr/local/var/softhsm |
|---|
| 6 | |
|---|
| 7 | # softhsm --init-token --slot 0 --label OpenDNSSEC |
|---|
| 8 | |
|---|
| 9 | (use '1234' en ambas preguntas): |
|---|
| 10 | |
|---|
| 11 | The SO PIN must have a length between 4 and 255 characters. |
|---|
| 12 | Enter SO PIN: **** |
|---|
| 13 | The user PIN must have a length between 4 and 255 characters. |
|---|
| 14 | Enter user PIN: **** |
|---|
| 15 | The token has been initialized. |
|---|
| 16 | |
|---|
| 17 | # softhsm --show-slots |
|---|
| 18 | |
|---|
| 19 | Cree ficheros de configuracin para OpenDNSSEC haciendo una |
|---|
| 20 | copia de los ejemplos distribudos con el paquete: |
|---|
| 21 | |
|---|
| 22 | # cd /usr/local/etc/opendnssec |
|---|
| 23 | # cp kasp.xml.sample kasp.xml |
|---|
| 24 | # cp conf.xml.sample conf.xml |
|---|
| 25 | # cp zonefetch.xml.sample zonefetch.xml |
|---|
| 26 | # cp zonelist.xml.sample zonelist.xml |
|---|
| 27 | # chmod 644 *xml |
|---|
| 28 | |
|---|
| 29 | 2. Cambie la poltica para usar NSEC en lugar de NSEC3: |
|---|
| 30 | |
|---|
| 31 | Edite /usr/local/etc/opendnssec/kasp.xml |
|---|
| 32 | |
|---|
| 33 | Busque esta seccin, y elimine todas las lneas desde <NSEC3> a </NSEC3> |
|---|
| 34 | |
|---|
| 35 | <NSEC3> |
|---|
| 36 | <!-- <OptOut/> --> |
|---|
| 37 | <Resalt>P100D</Resalt> |
|---|
| 38 | <Hash> |
|---|
| 39 | <Algorithm>1</Algorithm> |
|---|
| 40 | <Iterations>5</Iterations> |
|---|
| 41 | <Salt length="8"/> |
|---|
| 42 | </Hash> |
|---|
| 43 | </NSEC3> |
|---|
| 44 | |
|---|
| 45 | ... y sustityalas por la siguiente lnea nicamente: |
|---|
| 46 | |
|---|
| 47 | <NSEC/> |
|---|
| 48 | |
|---|
| 49 | Grabe y salga. |
|---|
| 50 | |
|---|
| 51 | Tambin, configure la ubicacin correcta para el fichero libsofthsm.so en |
|---|
| 52 | conf.xml: |
|---|
| 53 | |
|---|
| 54 | Cambie |
|---|
| 55 | |
|---|
| 56 | <Module>/usr/local/lib/libsofthsm.so</Module> |
|---|
| 57 | |
|---|
| 58 | a |
|---|
| 59 | |
|---|
| 60 | <Module>/usr/local/lib/softhsm/libsofthsm.so</Module> |
|---|
| 61 | |
|---|
| 62 | |
|---|
| 63 | 3. Inicialice el KSM |
|---|
| 64 | |
|---|
| 65 | # ods-ksmutil setup |
|---|
| 66 | |
|---|
| 67 | *WARNING* This will erase all data in the database; are you sure? [y/N] y |
|---|
| 68 | SQLite database set to: /usr/local/var/opendnssec/kasp.db |
|---|
| 69 | fixing permissions on file /usr/local/var/opendnssec/kasp.db |
|---|
| 70 | zonelist filename set to /usr/local/etc/opendnssec/zonelist.xml. |
|---|
| 71 | kasp filename set to /usr/local/etc/opendnssec/kasp.xml. |
|---|
| 72 | Repository SoftHSM found |
|---|
| 73 | No Maximum Capacity set. |
|---|
| 74 | RequireBackup NOT set; please make sure that you know the potential |
|---|
| 75 | problems of using keys which are not recoverable |
|---|
| 76 | /usr/local/etc/opendnssec/conf.xml validates |
|---|
| 77 | /usr/local/etc/opendnssec/kasp.xml validates |
|---|
| 78 | Policy default found |
|---|
| 79 | Info: converting P1Y to seconds; M interpreted as 31 days, Y interpreted as 365 days |
|---|
| 80 | |
|---|
| 81 | 4. Instale una copia de la zona sin firmar para que OpenDNSSEC la firme: |
|---|
| 82 | |
|---|
| 83 | Anteriormente hicimos una copia de nuestra zona antes de firmarla |
|---|
| 84 | con BIND9. Vamos a usar esa copia de respaldo y ponerla a disposicin de |
|---|
| 85 | OpenDNSSEC |
|---|
| 86 | |
|---|
| 87 | # cd /etc/namedb/master |
|---|
| 88 | # cp MITLD.backup /usr/local/var/opendnssec/unsigned/MITLD |
|---|
| 89 | |
|---|
| 90 | 5. Agregue la zona a la base de datos de OpenDNSSEC: |
|---|
| 91 | |
|---|
| 92 | ojo: OpenDNSSEC es sensible a las maysuclas/minsculas. El nombre |
|---|
| 93 | de zona abajo debe coincidir con el nombre del fichero de zona. |
|---|
| 94 | |
|---|
| 95 | # ods-ksmutil zone add --zone MITLD |
|---|
| 96 | |
|---|
| 97 | zonelist filename set to /usr/local/etc/opendnssec/zonelist.xml. |
|---|
| 98 | Imported zone: MITLD |
|---|
| 99 | |
|---|
| 100 | 6. Arranque OpenDNSSEC! |
|---|
| 101 | |
|---|
| 102 | # ods-control start |
|---|
| 103 | |
|---|
| 104 | Starting enforcer... |
|---|
| 105 | OpenDNSSEC ods-enforcerd started (version 1.3.10), pid 63495 |
|---|
| 106 | Starting signer engine... |
|---|
| 107 | Starting signer... |
|---|
| 108 | OpenDNSSEC signer engine version 1.3.10 |
|---|
| 109 | Engine running. |
|---|
| 110 | |
|---|
| 111 | # ps ax | grep ods |
|---|
| 112 | |
|---|
| 113 | 41588 ?? SsJ 0:00.11 /usr/local/sbin/ods-enforcerd |
|---|
| 114 | 41593 ?? SsJ 0:00.07 /usr/local/sbin/ods-signerd |
|---|
| 115 | |
|---|
| 116 | 7. Compruebe que se haya firmado la zona: |
|---|
| 117 | |
|---|
| 118 | # ls -l /usr/local/var/opendnssec/signed |
|---|
| 119 | |
|---|
| 120 | -rw-r--r-- 1 root wheel 2621 Feb 19 09:10 MITLD |
|---|
| 121 | |
|---|
| 122 | Eche un vistazo al contenido - fjese en los IDs de las claves ZSK y KSK. |
|---|
| 123 | |
|---|
| 124 | Si por alguna razn no ve un fichero en este directorio |
|---|
| 125 | (/usr/local/var/opendnssec/signed/), force al "signer" a firmar: |
|---|
| 126 | |
|---|
| 127 | # ods-signer sign MITLD |
|---|
| 128 | |
|---|
| 129 | |
|---|
| 130 | 8. Momento para reflexionar |
|---|
| 131 | |
|---|
| 132 | Entonces, la zona ya est firmada con OpenDNSSEC - fjese que no hemos |
|---|
| 133 | generado ninguna clave |
|---|
| 134 | |
|---|
| 135 | Liste las claves gestionadas actualmente por OpenDNSSEC: |
|---|
| 136 | |
|---|
| 137 | # ods-ksmutil key list |
|---|
| 138 | Keys: |
|---|
| 139 | Zone: Keytype: State: Date of next transition: |
|---|
| 140 | MITLD KSK publish 2012-09-14 09:15:09 |
|---|
| 141 | MITLD ZSK active 2012-10-13 19:15:09 |
|---|
| 142 | |
|---|
| 143 | Fjese que ambas claves han sido generadas por OpenDNSSEC, automticamente. |
|---|
| 144 | |
|---|
| 145 | Pero BIND todava est cargando la zona que fue firmada antes (ya fuera |
|---|
| 146 | manualmente o usando el firmado en lnea) - podemos simplemente cambiar |
|---|
| 147 | el fichero named.conf y apuntar a la zona firmada? |
|---|
| 148 | |
|---|
| 149 | Cul KSK se est usando actualmente? Y cul rcord DS se public en la |
|---|
| 150 | zona superior (la raz)? |
|---|
| 151 | |
|---|
| 152 | Podran los resolvers validar la zona firmada por DNSSEC? Por qu? |
|---|
| 153 | Qu habra que hacer para que funcione (hay varias posibles respuestas). |
|---|
| 154 | |
|---|
| 155 | Si no le importa el problema de la validacin, proceda con el resto del |
|---|
| 156 | ejercicio. |
|---|
| 157 | |
|---|
| 158 | 9. Indique a BIND que cargue la zona firmada |
|---|
| 159 | |
|---|
| 160 | Modifique /etc/namedb/named.conf, y cambie la definicin de zona para "MITLD" |
|---|
| 161 | de manera que se vea as (QUITE auto-dnssec, etc...) |
|---|
| 162 | |
|---|
| 163 | zone "MITLD" { |
|---|
| 164 | file "/usr/local/var/opendnssec/signed/MITLD"; // <--- Cambiar ubicacin |
|---|
| 165 | type master; |
|---|
| 166 | key-directory "/etc/namedb/keys"; // <--- Quite, si est |
|---|
| 167 | auto-dnssec maintain; // <--- Quite, si est |
|---|
| 168 | inline-signing yes; // <--- Quite, si est |
|---|
| 169 | }; |
|---|
| 170 | |
|---|
| 171 | Ahora, BIND vuelve a ser un servidor "pasivo" que no firma la zona - |
|---|
| 172 | simplemente la sirve a los clientes tal y como fue firmada por OpenDNSSEC. |
|---|
| 173 | |
|---|
| 174 | Reinicie named: |
|---|
| 175 | |
|---|
| 176 | # service named restart |
|---|
| 177 | |
|---|
| 178 | Revise los lgos en /etc/named/log/general para asegurarse de que la zona |
|---|
| 179 | est siendo cargada correctamente |
|---|
| 180 | |
|---|
| 181 | Ahora, la validacin probablemente fallar para aqullos que estn tratando |
|---|
| 182 | de resolver nombres en su zona. Espere unos minutos e intente buscar un |
|---|
| 183 | record en su zona. |
|---|
| 184 | |
|---|
| 185 | # dig www.MITLD +dnssec |
|---|
| 186 | |
|---|
| 187 | Qu pudo observar ? |
|---|
| 188 | |
|---|
| 189 | |
|---|
| 190 | 10. Recargar BIND con OpenDNSSEC |
|---|
| 191 | |
|---|
| 192 | An mejor, puede hacer que OpenDNSSEC le indique a BIND que debe recargar |
|---|
| 193 | la zona cuando sta ha sido firmada - de esta manera, no es necesario |
|---|
| 194 | reiniciar: |
|---|
| 195 | |
|---|
| 196 | Para lograr esto, modifique /usr/local/etc/opendnssec/conf.xml |
|---|
| 197 | |
|---|
| 198 | Busque las lneas: |
|---|
| 199 | |
|---|
| 200 | <!-- |
|---|
| 201 | <NotifyCommand>/usr/sbin/rndc reload %zone</NotifyCommand> |
|---|
| 202 | --> |
|---|
| 203 | |
|---|
| 204 | ... elimine los comentarios (las lneas '<!--' y '-->') antes y despus. |
|---|
| 205 | |
|---|
| 206 | Grabe el fichero y reinicie OpenDNSSEC: |
|---|
| 207 | |
|---|
| 208 | # ods-control stop |
|---|
| 209 | ... |
|---|
| 210 | # ods-control start |
|---|
| 211 | |
|---|
| 212 | |
|---|
| 213 | 11. Exporte el DS, listo para subir: |
|---|
| 214 | |
|---|
| 215 | # ods-ksmutil key export --zone MITLD --ds --keystate publish >/tmp/dsset-MITLD. |
|---|
| 216 | |
|---|
| 217 | 12. Suba el DS al servidor raz |
|---|
| 218 | |
|---|
| 219 | # scp /tmp/dsset-MITLD. adm@a.root-servers.net: |
|---|
| 220 | |
|---|
| 221 | 13. Notifique al administrador! |
|---|
| 222 | |
|---|
| 223 | Pida al administrador que aada su DS a la zona raz, y compruebe cunto |
|---|
| 224 | tiempo toma para que la validacin funcione de nuevo en su zona. |
|---|