| 1 | *** НА ВАШЕМ АВТОРИТЕТНОМ СЕРВЕРЕ *** |
|---|
| 2 | |
|---|
| 3 | 1. Перейдите в каталог, в котором хранится зона, и сделайте резервную копия, |
|---|
| 4 | на всякий случай. Предполагая, что зона называется "mytld": |
|---|
| 5 | |
|---|
| 6 | $ cd /etc/namedb/master |
|---|
| 7 | $ sudo cp mytld mytld.backup |
|---|
| 8 | |
|---|
| 9 | Еще, создайте каталог для хранения ключей: |
|---|
| 10 | |
|---|
| 11 | $ sudo mkdir /etc/namedb/keys |
|---|
| 12 | $ sudo chown bind /etc/namedb/keys |
|---|
| 13 | |
|---|
| 14 | $ cd /etc/namedb/keys |
|---|
| 15 | |
|---|
| 16 | 2. Создайте первую пару ключей (ключ, подписывающий зону - ZSK) |
|---|
| 17 | |
|---|
| 18 | $ sudo dnssec-keygen -a RSASHA256 -b 1024 -n ZONE mytld |
|---|
| 19 | |
|---|
| 20 | Вывод команды будет примерно таким: |
|---|
| 21 | |
|---|
| 22 | Generating key pair....................++++++ ...........................................................................................................++++++ |
|---|
| 23 | Kmytld.+008+51333 |
|---|
| 24 | |
|---|
| 25 | 4. Создайте вторую пару ключей (ключ, подписывающий ключ - KSK) |
|---|
| 26 | |
|---|
| 27 | $ sudo dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE mytld |
|---|
| 28 | |
|---|
| 29 | Опять, вы увидите вывод похожий на: |
|---|
| 30 | |
|---|
| 31 | Generating key pair.............................................+++ ..........................................................................+++ |
|---|
| 32 | Kmytld.+008+52159 |
|---|
| 33 | |
|---|
| 34 | Давайте посмотрим на ключи: |
|---|
| 35 | |
|---|
| 36 | # ls -l Kmytld.+008+5* |
|---|
| 37 | -rw-r--r-- 1 root wheel 203 Nov 29 00:07 Kmytld.+008+51333.key |
|---|
| 38 | -rw------- 1 root wheel 937 Nov 29 00:07 Kmytld.+008+51333.private |
|---|
| 39 | -rw-r--r-- 1 root wheel 247 Nov 29 00:07 Kmytld.+008+52159.key |
|---|
| 40 | -rw------- 1 root wheel 1125 Nov 29 00:07 Kmytld.+008+52159.private |
|---|
| 41 | |
|---|
| 42 | 5. Добавьте открытые ключи в конец файла зоны: |
|---|
| 43 | |
|---|
| 44 | Отредактируйте файл зоны для "mytld", и добавьте ключи в конце: |
|---|
| 45 | Для того, чтобы узнать, какие файлы включить: |
|---|
| 46 | |
|---|
| 47 | $ cd /etc/namedb/master |
|---|
| 48 | $ ls -lC1 /etc/namedb/keys/K*key |
|---|
| 49 | |
|---|
| 50 | (скопируйте имена файлов, чтобы ва не пришлось набирать их вручную) |
|---|
| 51 | |
|---|
| 52 | В файле "mytld", добавьте строки, соответствующие вашим ключам |
|---|
| 53 | |
|---|
| 54 | $ sudo ee mytld |
|---|
| 55 | |
|---|
| 56 | ; Ключи, публикуемые в наборе записей DNSKEY |
|---|
| 57 | |
|---|
| 58 | $include "/etc/namedb/keys/Kmytld.+008+51333.key" ; ZSK |
|---|
| 59 | $include "/etc/namedb/keys/Kmytld.+008+52159.key" ; KSK |
|---|
| 60 | |
|---|
| 61 | Увеличьте серийный номер. |
|---|
| 62 | Сохраните файл и выйдите из редактора. |
|---|
| 63 | |
|---|
| 64 | 6. Подпишите зону ключами |
|---|
| 65 | |
|---|
| 66 | $ cd /etc/namedb/keys |
|---|
| 67 | $ sudo dnssec-signzone -x -o mytld -k Kmytld.+008+52159 ../master/mytld Kmytld.+008+51333 |
|---|
| 68 | |
|---|
| 69 | Вы должны увидеть: |
|---|
| 70 | |
|---|
| 71 | Verifying the zone using the following algorithms: RSASHA256. |
|---|
| 72 | Zone signing complete: |
|---|
| 73 | Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked |
|---|
| 74 | ZSKs: 1 active, 0 stand-by, 0 revoked |
|---|
| 75 | ../master/mytld.signed |
|---|
| 76 | |
|---|
| 77 | Замечание: хотя нам на самом деле и не надо указывать, какие ключи мы |
|---|
| 78 | будем использовать - по умолчанию dnssec-signzone использует ключи, |
|---|
| 79 | которые программа найде в самой зоне (те самые, добавленные на шаге 5 |
|---|
| 80 | при помощи $include) - это все равно хорошая идея. |
|---|
| 81 | |
|---|
| 82 | Таким образом мы делаем абсолютно ясным, какие именно ключи мы |
|---|
| 83 | используем, особенно когда у вас есть несколько ключей. |
|---|
| 84 | |
|---|
| 85 | Подписанная зона была сохранена в каталоге master/, давайте ее |
|---|
| 86 | проверим: |
|---|
| 87 | |
|---|
| 88 | $ cd /etc/namedb/master/ |
|---|
| 89 | $ ls -l mytld* |
|---|
| 90 | |
|---|
| 91 | -rw-r--r-- 1 root wheel 292 Nov 29 00:08 mytld |
|---|
| 92 | -rw-r--r-- 1 root wheel 4294 Nov 29 00:20 mytld.signed |
|---|
| 93 | |
|---|
| 94 | Проверьте содержимое зоны в "mytld.signed", и посмотрите на новые |
|---|
| 95 | записи и на подписи. |
|---|
| 96 | |
|---|
| 97 | 7. Заметьте, что был создан набор записей DS, готовый для передачи в |
|---|
| 98 | родительскую зону: |
|---|
| 99 | |
|---|
| 100 | $ cd /etc/namedb/keys/ |
|---|
| 101 | $ ls -l dsset-* |
|---|
| 102 | |
|---|
| 103 | -rw-r--r-- 1 root wheel 155 Nov 29 00:22 dsset-mytld. |
|---|
| 104 | |
|---|
| 105 | Прогляните содержимое набора DS: |
|---|
| 106 | |
|---|
| 107 | $ cat dsset-mytld. |
|---|
| 108 | |
|---|
| 109 | Вы должны увидеть две строки, одну для каждого алгоритма используемого KSK. |
|---|
| 110 | |
|---|
| 111 | 8. Поменяйте раздел для зоны в /etc/namedb/named.conf, указывая на подписанную зону: |
|---|
| 112 | |
|---|
| 113 | $ sudo ee /etc/namedb/named.conf |
|---|
| 114 | |
|---|
| 115 | zone "mytld" { |
|---|
| 116 | type master; |
|---|
| 117 | file "/etc/namedb/master/mytld.signed"; // загрузить подписанную зону |
|---|
| 118 | }; |
|---|
| 119 | |
|---|
| 120 | 9. Опять-таки в named.conf, включите dnssec (для авторитетных серверов): |
|---|
| 121 | |
|---|
| 122 | ... в разделе options { .. }; , добавьте |
|---|
| 123 | |
|---|
| 124 | dnssec-enable yes; |
|---|
| 125 | |
|---|
| 126 | 10. Переконфигурируйте или перезапустите ваш DNS сервер |
|---|
| 127 | |
|---|
| 128 | $ sudo rndc reconfig |
|---|
| 129 | |
|---|
| 130 | Вы можете также (хотя скорее всего, это не является необходимым) сделать: |
|---|
| 131 | |
|---|
| 132 | $ sudo rndc reload mytld |
|---|
| 133 | |
|---|
| 134 | ... для того чтобы "заставить" named перегрузить зону. Переконфигурирация обычно |
|---|
| 135 | делает это, но в любом случае, перезагрузка не повредит :) |
|---|
| 136 | |
|---|
| 137 | 11. Проверьте, отвечает ли DNS сервер на запросы о записях DNSSEC: |
|---|
| 138 | |
|---|
| 139 | $ dig @127.0.0.1 mytld SOA +dnssec |
|---|
| 140 | |
|---|
| 141 | 12. Теперь вам нужно убедиться, что ваш слейв ТАКЖЕ сконфигурирован с поддержкой |
|---|
| 142 | dnssec в своей конфигурации (шаг 8). Это уже должно быть сделано, потому |
|---|
| 143 | что группа, отвечающая за ваш слейв тоже выполняет эту лабораторку, но |
|---|
| 144 | проверьте в любом случае! |
|---|
| 145 | |
|---|
| 146 | Для проверки: |
|---|
| 147 | |
|---|
| 148 | $ dig @10.20.Y.1 mytld SOA +dnssec |
|---|
| 149 | |
|---|
| 150 | ... где Y - IP партнера вы выбрали как слейва для вашего домена - это может |
|---|
| 151 | быть преподаватель, в таком случае спросите его. |
|---|
| 152 | |
|---|
| 153 | 13. Теперь вам нужно передать DS в родительскую зону |
|---|
| 154 | |
|---|
| 155 | Свяжитесь с администратором корневой зоны для того чтобы |
|---|
| 156 | определить метод передачи. Это может быть scp или web интерфейс. |
|---|
| 157 | |
|---|
| 158 | a) при использовании RZM: |
|---|
| 159 | |
|---|
| 160 | Посетите https://rzm.dnssek.org/ |
|---|
| 161 | |
|---|
| 162 | Залогиньтесь (вы должны были получить логин раньше) |
|---|
| 163 | |
|---|
| 164 | В Trust Anchor Details убедитесь, что ваш DS появился автоматически |
|---|
| 165 | и что он совпадает с настоящим. Он НЕ БУДЕТ активирован автоматически - |
|---|
| 166 | единственное, что RZM сделал, это "увидел" запись DNSKEY которую |
|---|
| 167 | вы предполагаемо опубликовали, и теперь ждет вашего подтверждения |
|---|
| 168 | для включения DS в родительскую зону. |
|---|
| 169 | |
|---|
| 170 | Сравните DS записи в файле dsset-mytld с тем, что показывает RZM, |
|---|
| 171 | и потому нажмите на один или оба "глаза" (только один нужен на |
|---|
| 172 | самом деле), подождите появления "галочки" и нажмите "Update". |
|---|
| 173 | |
|---|
| 174 | |
|---|
| 175 | b) если RZM не используется: |
|---|
| 176 | |
|---|
| 177 | Если администратор корневой зоны говорит использовать scp, |
|---|
| 178 | сделайте следующее: |
|---|
| 179 | |
|---|
| 180 | $ cd /etc/namedb/keys |
|---|
| 181 | $ scp dsset-mytld. sysadm@a.root-servers.net: |
|---|
| 182 | |
|---|
| 183 | ... это скопирует файл "dsset-mytld." в каталог "sysadm" на сервере a.root-server, |
|---|
| 184 | и тогда администратор корневой зоны сможет включить этот файл в корневую зону |
|---|
| 185 | для подписи. |
|---|
| 186 | |
|---|
| 187 | Сообщите ему, когда вы закачали этот файл. |
|---|
| 188 | |
|---|
| 189 | 14. Подождите несколько минут до появления DS в корневой зоне. |
|---|
| 190 | |
|---|
| 191 | Распространение DS-записей на все корневые сервера займет какое-то |
|---|
| 192 | время (обновить файл корневой зоны, подписать его, опубликовать на |
|---|
| 193 | корневых серверах, подгрузить в кэширующий сервер и т.д.) |
|---|
| 194 | |
|---|
| 195 | Для проверки того, что DS включен в родительскую (корневую) зону: |
|---|
| 196 | |
|---|
| 197 | dig @a.root-servers.net DS mytld. |
|---|
| 198 | |
|---|
| 199 | Когда вы убедились в том, что DS включен в родительскую зону, |
|---|
| 200 | используя dig: |
|---|
| 201 | |
|---|
| 202 | ... только тогда вы можете начать тестирование валидации! |
|---|
| 203 | |
|---|
| 204 | 15. Проверьте что бит AD установлен: |
|---|
| 205 | |
|---|
| 206 | # dig @10.20.0.230 +dnssec www.MYTLD. |
|---|
| 207 | |
|---|
| 208 | Установлен? |
|---|
| 209 | |
|---|
| 210 | Если нет, заметьте, что администратор корневой зоны не обязательно успел |
|---|
| 211 | подписать корневую зону с вашим DS внутри, ИЛИ, из-за отрицательного |
|---|
| 212 | кэширования, запись DS может пока еще не быть в кэше. Вам возможно |
|---|
| 213 | придется подождать еще, но спросите администратора корневой зоны; |
|---|
| 214 | вы также всегда можете спросить корневой сервер напрямую: |
|---|
| 215 | |
|---|
| 216 | # dig @a.root-servers.net DS mytld. |
|---|
| 217 | |
|---|
| 218 | ... чтобы убедиться что DS опубликован. Тогда осталось всего только |
|---|
| 219 | подождать, пока время кэширования истечет в системе разрешения имен, |
|---|
| 220 | прежде чем вы сможете проверить ваши подписи. |
|---|
| 221 | |
|---|
| 222 | Или просто не ждите и разрешите валидацию на вашем собственном кэширующем |
|---|
| 223 | сервере (resolv.grpX.dns.nsrc.org) - смотрите соответствующую лабораторную |
|---|
| 224 | работу! |
|---|