| 1 | DNS делегирование - упражнение |
|---|
| 2 | ------------------------------ |
|---|
| 3 | |
|---|
| 4 | В этом упражнении, мы создадим новый домен верхнего уровня в |
|---|
| 5 | нашем корне. |
|---|
| 6 | Например: MYTLD |
|---|
| 7 | |
|---|
| 8 | В создадите DNS-сервер мастер на вашей собственной машине, и кто-то другой |
|---|
| 9 | предоставит слейв-сервер. Потом вы попросите администратора для домена |
|---|
| 10 | уровня выше вашего (корня) делегировать ваш домен вам. |
|---|
| 11 | |
|---|
| 12 | Замечание: нижеследующие должно быть сделано с правами администратора, |
|---|
| 13 | как пользователь "root" - воспользуйтесь sudo -s |
|---|
| 14 | |
|---|
| 15 | Первым делом, убедитесь что имя вашей машины сконфигурировано |
|---|
| 16 | правильно. Воспользуйтесь командой 'hostname' - например, |
|---|
| 17 | на auth1.grpXX.dns.nsrc.org, если вы наберете: |
|---|
| 18 | |
|---|
| 19 | # hostname |
|---|
| 20 | |
|---|
| 21 | Вы должны увидеть |
|---|
| 22 | |
|---|
| 23 | auth1.grpXX.dns.nsrc.org |
|---|
| 24 | |
|---|
| 25 | Если нет, то сконфигурируйте ваш сервер с правильным именем: |
|---|
| 26 | например, для auth1.grp25.dns.nsrc.org, наберите: |
|---|
| 27 | |
|---|
| 28 | # hostname auth1.grp25.dns.nsrc.org |
|---|
| 29 | |
|---|
| 30 | Не забудьте заменить "grpXX" на правильный номер группы! |
|---|
| 31 | |
|---|
| 32 | Отредактируйте /etc/rc.conf (используя "vi" либо "ee", т.е.: ee /etc/rc.conf), |
|---|
| 33 | и обновите "hostname": |
|---|
| 34 | |
|---|
| 35 | hostname="auth1.grpXX.dns.nsrc.org" |
|---|
| 36 | |
|---|
| 37 | В файле /etc/hosts, вы должны видеть строчку: |
|---|
| 38 | |
|---|
| 39 | 10.20.X.1 auth1.grpXX auth1.grpXX.dns.nsrc.org |
|---|
| 40 | |
|---|
| 41 | |
|---|
| 42 | Упражнение |
|---|
| 43 | ---------- |
|---|
| 44 | |
|---|
| 45 | * Выберите имя нового домена, запишите его где-нибудь |
|---|
| 46 | |
|---|
| 47 | т.е.: "MYTLD" или "EARTH" - все что угодно. |
|---|
| 48 | |
|---|
| 49 | (НЕ выбирайте существующее имя PC, например `auth1.grpXX` в качестве вашего домена) |
|---|
| 50 | |
|---|
| 51 | Это может быть например именем вашей страны, кодом страны, названием |
|---|
| 52 | фирмы, и т.д., но ПОМНИТЕ, что кто-то другой может выбрать то же |
|---|
| 53 | самое имя! Кто первым встал, того и тапки. |
|---|
| 54 | |
|---|
| 55 | * Если вы используете web интерфейс для регистрации (RZM): |
|---|
| 56 | |
|---|
| 57 | Зарегистрируйте ваш новый домен используя контроллер корневой зоны |
|---|
| 58 | по адресу https://rzm.dnssek.org/ |
|---|
| 59 | |
|---|
| 60 | Имя пользователя - ваш MYTLD |
|---|
| 61 | Пароль придумайте любой, но не забудьте его для последующих |
|---|
| 62 | упражнений. Нажмите кнопку "Signup". |
|---|
| 63 | |
|---|
| 64 | Следующая страница является примером двухфакторной системы безопасности. |
|---|
| 65 | Если преподаватель не сказал обратного, оставьте поле "verification code" |
|---|
| 66 | пустым и просто нажмите "Proceed". Вы сможете вернуться на эту страницу |
|---|
| 67 | позднее для конфигурации вашего талона безопасности (например, Google Authenticator), |
|---|
| 68 | если хочется. |
|---|
| 69 | |
|---|
| 70 | Нажмите logout на следующей странице. Вы введете информацию позднее. |
|---|
| 71 | |
|---|
| 72 | * Найдите кого-то, кто согласится быть слейвом для вашего домена. Пожалуйста |
|---|
| 73 | найдите кого-нибудь далеко от вас (не за вашим столом) (Не забудьте RFC2182: |
|---|
| 74 | вторичные сервера должны быть на удаленных сетях, но здесь мы будем работать |
|---|
| 75 | в одной "плоской" сети). Вы можете иметь более одного слейва, если захотите. |
|---|
| 76 | |
|---|
| 77 | * Создайте файл вашей зоны в `/etc/namedb/master/MYTLD` |
|---|
| 78 | (где MYTLD - ваш выбранныей домен) -- вы можете просто |
|---|
| 79 | скопировать раздел ниже -- но не забудьте заменить |
|---|
| 80 | XXX на ваш IP: |
|---|
| 81 | |
|---|
| 82 | *** Помните, что вам нужно иметь права администратора для создания |
|---|
| 83 | *** этого файла, например |
|---|
| 84 | *** |
|---|
| 85 | *** $ cd /etc/namedb/master |
|---|
| 86 | *** $ sudo vi MYTLD |
|---|
| 87 | *** |
|---|
| 88 | *** (вы можете использовать любой редактор вместо vi, |
|---|
| 89 | *** например joe либо ee) |
|---|
| 90 | |
|---|
| 91 | - - - - - - - - - - - - - линия отреза - - - - - - - - - - - - |
|---|
| 92 | |
|---|
| 93 | $TTL 2m |
|---|
| 94 | @ IN SOA auth1.grpXX.dns.nsrc.org. your.email.address. ( |
|---|
| 95 | 2012022301 ; Serial - замените 20120223 текущей датой |
|---|
| 96 | 10m ; Refresh |
|---|
| 97 | 5m ; Retry |
|---|
| 98 | 4w ; Expire |
|---|
| 99 | 2m ) ; Negative |
|---|
| 100 | |
|---|
| 101 | IN NS auth1.grpXXX.dns.nsrc.org. ; мастер |
|---|
| 102 | IN NS auth1.grpYYY.dns.nsrc.org. ; слейв |
|---|
| 103 | |
|---|
| 104 | www IN A 10.20.XXX.1 ; ваш собственный IP |
|---|
| 105 | |
|---|
| 106 | - - - - - - - - - - - - - линия отреза - - - - - - - - - - - - |
|---|
| 107 | |
|---|
| 108 | Замените `your.email.address.` вашим домашним E-mail адресом, так что |
|---|
| 109 | user@domain.name будет user.domain.name |
|---|
| 110 | |
|---|
| 111 | XXX и YYY это IP-адреса вашей группы и вашего слейва, соответственно. |
|---|
| 112 | |
|---|
| 113 | Мы специально выбрали маленькие значения для TTL, времени обновления, |
|---|
| 114 | и времени повтора, для того чтобы исправление ошибок было проще в |
|---|
| 115 | условиях класса. Для реального домены вы наверняка будете использовать |
|---|
| 116 | бОльшие значения. |
|---|
| 117 | |
|---|
| 118 | * Отредактируйте `/etc/namedb/named.conf` и сделайте следующее: |
|---|
| 119 | |
|---|
| 120 | *** Помните, что вам нужно иметь права администратора для редактирования |
|---|
| 121 | *** этого файла, например: |
|---|
| 122 | *** |
|---|
| 123 | *** $ cd /etc/namedb |
|---|
| 124 | *** $ sudo vi named.conf |
|---|
| 125 | *** |
|---|
| 126 | *** (вы можете использовать любой редактор вместо vi, |
|---|
| 127 | *** например joe либо ee) |
|---|
| 128 | |
|---|
| 129 | - Если такая строка все еще в файле, УБЕРИТЕ ее: |
|---|
| 130 | |
|---|
| 131 | listen-on { 127.0.0.1; }; |
|---|
| 132 | |
|---|
| 133 | ... и добавьте другую строку в раздел параметров: |
|---|
| 134 | |
|---|
| 135 | allow-query { any; }; |
|---|
| 136 | |
|---|
| 137 | ... таким образом ваш DNS-сервер будет отвечать на запросы по сети |
|---|
| 138 | |
|---|
| 139 | - Добавьте раздел, конфигурирующий вашу машину как мастера для |
|---|
| 140 | вашего домена, добавив что-то вроде нижеследующего в самом конце |
|---|
| 141 | файла: |
|---|
| 142 | |
|---|
| 143 | zone "MYTLD" { |
|---|
| 144 | type master; |
|---|
| 145 | file "/etc/namedb/master/MYTLD"; |
|---|
| 146 | }; |
|---|
| 147 | |
|---|
| 148 | Обращайте внимание на ';' и '}' ! |
|---|
| 149 | |
|---|
| 150 | * Убедитесь, что ваш файл конфигурации и файл зоны корректны: |
|---|
| 151 | |
|---|
| 152 | # named-checkconf |
|---|
| 153 | # named-checkzone MYTLD /etc/namedb/master/MYTLD |
|---|
| 154 | |
|---|
| 155 | * Если обнаружены ошибки, исправьте их! * |
|---|
| 156 | |
|---|
| 157 | * Если это еще не сделано, разрешите named в конфигурации вашего сервера, |
|---|
| 158 | отредактировав файл /etc/rc.conf и добавив следующее: |
|---|
| 159 | |
|---|
| 160 | ** Снова, не забудьте, вы должны иметь права администратора |
|---|
| 161 | |
|---|
| 162 | named_chrootdir="" |
|---|
| 163 | named_enable="YES" |
|---|
| 164 | |
|---|
| 165 | - Потом запустите/перезапустите named при помощи |
|---|
| 166 | |
|---|
| 167 | # service named restart |
|---|
| 168 | |
|---|
| 169 | Проверьте результат, выполнив |
|---|
| 170 | |
|---|
| 171 | # tail /var/log/messages |
|---|
| 172 | |
|---|
| 173 | Используя dig, проверьте что MYTLD теперь настроен на вашей машине: |
|---|
| 174 | |
|---|
| 175 | # dig @10.20.XX.1 MYTLD. NS |
|---|
| 176 | |
|---|
| 177 | Где "XX" - номер группы для вашей машины. |
|---|
| 178 | |
|---|
| 179 | Вы можете также проверить состояние DNS-сервера используя rndc: |
|---|
| 180 | |
|---|
| 181 | # rndc status |
|---|
| 182 | |
|---|
| 183 | - Если обнаружены ошибки, исправьте их. Некоторые ошибки конфигурации могут |
|---|
| 184 | привести к тому, что named не сможет запуститься; в этом случае вам придется |
|---|
| 185 | перезапустить его после исправления проблемы: |
|---|
| 186 | |
|---|
| 187 | # service named restart |
|---|
| 188 | |
|---|
| 189 | * Помогите вашим слейвам с конфигурацией для вашего домена, и сконфигурируйте |
|---|
| 190 | свой DNS-сервер как слейв, если вас попросит другая группа. |
|---|
| 191 | |
|---|
| 192 | Здесь большая часть того, что вам нужно добавить для этого в named.conf: |
|---|
| 193 | |
|---|
| 194 | zone "MYTLD" { |
|---|
| 195 | type slave; |
|---|
| 196 | masters { 10.20.XXX.1; }; |
|---|
| 197 | file "/etc/namedb/slave/MYTLD"; |
|---|
| 198 | }; |
|---|
| 199 | |
|---|
| 200 | ... где XXX - номер группы, которая будет мастером. |
|---|
| 201 | |
|---|
| 202 | Если вы изменили ваш `named.conf` таким образом, что вы теперь слейв |
|---|
| 203 | для кого-то другого, убедитесь в отсутствии ошибок в `/var/log/messages` |
|---|
| 204 | после перезапуска вашего DNS-сервера. |
|---|
| 205 | |
|---|
| 206 | Вам понадобится каталог для слейвов с правильными правами доступа и |
|---|
| 207 | владельцем; bind будет хранить там копию файла зоны, полученной от мастера. |
|---|
| 208 | |
|---|
| 209 | * Проверьте что вы и ваши слейвы выдают авторитетные ответы для вашего домена: |
|---|
| 210 | |
|---|
| 211 | # dig +norec @10.20.XXX.1 MYTLD. SOA |
|---|
| 212 | # dig +norec @10.20.YYY.1 MYTLD. SOA |
|---|
| 213 | |
|---|
| 214 | Убедитесь, что вы получаете AA (авторитетный ответ) от обоих серверов, и что |
|---|
| 215 | серийные номера совпадают. |
|---|
| 216 | |
|---|
| 217 | * Теперь вы готовы запросить делегирование: |
|---|
| 218 | |
|---|
| 219 | a) если используется RZM: |
|---|
| 220 | |
|---|
| 221 | Посетите https://rzm.dnssek.org/ |
|---|
| 222 | |
|---|
| 223 | Залогиньтесь, используя имя пользователя и пароль, которые вы |
|---|
| 224 | указали в начале упражнения. Нажмите "Proceed". |
|---|
| 225 | |
|---|
| 226 | Введите ваш DNS-сервер, например auth1.grpXX.dns.nsrc.org, |
|---|
| 227 | и его IP адрес, например 10.20.X.1 |
|---|
| 228 | |
|---|
| 229 | Нажмите "Update". Если все прошло как надо, ваш ввод должен |
|---|
| 230 | появиться с иконкой документа рядом с ним, указывая на то, |
|---|
| 231 | что проверка прошла успешно и что информация была добавлена |
|---|
| 232 | в корневой файл зоны. |
|---|
| 233 | |
|---|
| 234 | Вы также увидите строку с иконкой "глаза", указывающую на то, |
|---|
| 235 | что другой сервер, ваш слейв, был замечен. |
|---|
| 236 | Если информация для слейва выглядит правильной, например, это |
|---|
| 237 | auth2.grpYY.dns.nsrc.org, нажмите на "глаз", чтобы получить отметку |
|---|
| 238 | о проверке, и потом нажмите на "Update", чтобы добавить и эту |
|---|
| 239 | информацию в корневую зону. |
|---|
| 240 | |
|---|
| 241 | b) если вы не используете RZM: |
|---|
| 242 | |
|---|
| 243 | Дайте преподавателю листок бумаги со следующей информацией: |
|---|
| 244 | |
|---|
| 245 | |
|---|
| 246 | Имя домена: ___________________ |
|---|
| 247 | |
|---|
| 248 | Мастер-сервер: auth1.grp___.dns.nsrc.org |
|---|
| 249 | |
|---|
| 250 | Слейв-сервер: auth1.grp___.dns.nsrc.org |
|---|
| 251 | |
|---|
| 252 | |
|---|
| 253 | * Вы не получите делегирования до тех пор пока преподаватель не проверит, что: |
|---|
| 254 | |
|---|
| 255 | - все ваши серверы являются авторитетными для вашего домена |
|---|
| 256 | - на них на всех совпадает серийный номер в записи SOA |
|---|
| 257 | - Записи NS внутри зоны совпадают со списком серверов для которых |
|---|
| 258 | вы запрашиваете делегировние |
|---|
| 259 | - Слейв (или слейвы) находятся в другом конце комнаты :) |
|---|
| 260 | |
|---|
| 261 | => Это называется "правилами по эксплуатации"! |
|---|
| 262 | |
|---|
| 263 | * Когда вы получили делегирование, попытайтесь найти имя www.MYTLD: |
|---|
| 264 | |
|---|
| 265 | - На вашей собственной машине |
|---|
| 266 | - На чьей-то другой машине (которая НЕ является вашим слейвом): |
|---|
| 267 | |
|---|
| 268 | # dig @10.20.XXX.230 www.MYTLD (где MYTLD - ваш домен) |
|---|
| 269 | |
|---|
| 270 | * Добавьте новую ресурсную запись в ваш файл зоны. Не забудьте поменять серийный номер. |
|---|
| 271 | Проверьте, что ваши слейвы обновились. Попробуйте сделать запрос для этого нового имени. |
|---|