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 | Проверьте, что ваши слейвы обновились. Попробуйте сделать запрос для этого нового имени. |
---|