Agenda: dnssec-bind-manual-zsk-rollover-vRU.txt

File dnssec-bind-manual-zsk-rollover-vRU.txt, 9.9 KB (added by trac, 5 years ago)
Line 
1Упражнение: Обновление ключа вручную
2------------------------------------
3
4ЗАДАЧА
5
6Мы собираемся обновить ZSK для зон, которые мы только что подписали.
7
8ПОЖАЛУЙСТА запишите идентификаторы ключей KSK/ZSK на листке бумаги,
9чтобы не забыть, какой ключ выполняет какую задачу.
10
11НАПОМИНАНИЯ
12
13 - мы храним наши ключи в /etc/namedb/keys/
14
15 - там у нас сейчас хранится две пары ключей, одна пара для ZSK и одна
16   для KSK.  Каждая пара представлена двумя файлами, один заканчивается
17   на ".key" (открытый ключ), и другой заканчивается на ".private"
18   (закрытый ключ)
19
20 - в корневой зоне есть набор записей DS, соответствующий нашему KSK
21
22
23ОБНОВЛЕНИЕ ZSK
24
251. Посмотрите на уже существующие ключи.  Запишите имена файлов,
26в которых хранится текущий ZSK и текущий KSK.
27
28  $ cd /etc/namedb/keys/
29  $ ls K*
30
312. Создайте новый ZSK, которым мы заменим старый.
32
33  $ sudo dnssec-keygen -a RSASHA256 -b 1024 -n ZONE mytld
34
35  (заменяя mytld именем вашей зоны)
36
37  Эта команда выведет что-то вроде:
38
39  Kmytld.+008+45000
40
41Убедитесь, что все файлы ключей могут читаться процессом named:
42
43  $ sudo chown bind K*
44  $ sudo chmod u+r K*
45  $ ls
46
47Теперь у вас должна быть третья пара ключей в ключевом каталоге.  Если вы
48проверите содержимое DNSKEY, вы должны увидеть, что поле флагов равно 256
49(то есть это ZSK, а не KSK).  Запишите имя файла с новым ZSK.
50
513. Посмотрите на теперешний набор DNSKEY.
52
53  $ dig mytld dnskey +multi
54
55Ваша зона должна содержать один KSK и один ZSK (проверьте флаги - 267/256 -
56для того чтобы отличить один от другого).
57
58Нам нужно добавить новый ключ в зону, так что он будет в ней во время
59следующего подписания.  В конец файла /etc/namedb/master/mytld, ДОБАВЬТЕ
60новый ключ:
61
62    $include "/etc/namedb/keys/Kmytld.+008+45000.key";
63
64    Увеличьте серийный номер.
65
66    Сохраните файл и выйдите из редактора
67
684. Переподпишите вашу зону, чтобы новый ZSK был подписан, при этом мы НЕ
69   будем подписывать зону используя новый ZSK - пока мы только хотим, чтобы
70   новый ZSK был подписан текущим ZSK.  Это называется "предварительная
71   публикация".
72
73  $ cd /etc/namedb/keys
74  $ sudo dnssec-signzone -o mytld -k Kmytld.+008+52159 ../master/mytld Kmytld.+008+51333
75
76  (метка и идентификатор ключа берется из предыдущей лабораторной работы по
77  подписанию вручную)
78
79  В примере выше, обратите внимание на то, что мы используем текущий ZSK
80  для подписания, а *НЕ* новый - это нужно для того, чтобы убедиться
81  в том, что dnssec-signzone не пытается подписывать обоими ZSK.
82  Если такое случится, не произойдет ничего "страшного", просто
83  размер зоны разбухнет в два раза!
84
85  Таким образом, мы говорим dnssec-signzone какие именно ключи использовать
86  во время обновления, ИМЕННО для того, чтобы управлять моментами, когда
87  новый ключ добавляется, когда он используется для подписей, и когда
88  он изымается из обращения.
89
90  Вывод команды выше должен быть:
91
92Zone signing complete:
93Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
94                      ZSKs: 1 active, 1 stand-by, 0 revoked
95mytld.signed
96
97  Обратите внимание на ZSK: 1 active, 1 stand-by
98
995. Посмотрите, что эта операция сделала с зоной.
100
101  $ sudo rndc reload mytld
102  $ dig @10.20.X.1 mytld dnskey
103  $ dig @10.20.X.1 mytld dnskey +dnssec
104  $ dig @10.20.X.1 mytld soa +dnssec
105
106Ваша зона теперь должна содержать один KSK и два ZSK;  оба ZSK должны
107быть в наборе записей DNSKEY, который должен быть подписан при
108помощи KSK.
109
110ОДНАКО, запись SOA (и другие наборы записей в зоне) должны быть ТОЛЬКО подписаны
111единожды, при помощи старого ZSK.  И набор DNSKEY должен показывать все три
112ключа (1 KSK, 2 ZSK).  Это называется "предварительная публикация".
113
114Теперь, нам стоит в принципе подождать 2 раза по TTL до появления
115обоих ZSK во всех кэшах (по умолчание это 120 секунд, или 2 минуты,
116в нашей лабораторной, но значения будут другими "в настоящей жизни").
117В любом случае, давайте подождем по крайней мере 2 минут прежде чем мы
118осуществим подписание с новым ZSK вместо старого ZSK.
119
120После 2 минут, спросите соседа о том, может ли он запросить DNSKEY для
121вашего домен.  Они могут проверить кэш класса (10.20.0.230), а также,
122если они его настроили, из собственный кэш.
123
124Опять-таки, команда для запроса ключей будет:
125
126  $ dig mytld dnskey
127
128После получения уверенности в том, что "весь интернет" (весь класс)
129может видеть оба ключа, мы может подписать зону новым ZSK.
130
1316. Осуществите полписание новым ZSK.
132
133   Помните, у нас сейчас 3 ключа - в нашей зоне есть:
134
135        $include "/etc/namedb/keys/Kmytld.+008+52159.key"; // KSK
136        $include "/etc/namedb/keys/Kmytld.+008+51333.key"; // ZSK мы уберем
137        $include "/etc/namedb/keys/Kmytld.+008+45000.key"; // новый ZSK
138
139   Увеличьте серийный номер.  Затем:
140
141   $ cd /etc/namedb/keys
142   $ sudo dnssec-signzone -o mytld -k Kmytld.+008+52159 ../master/mytld Kmytld.+008+45000
143
144... Обратите внимание, что теперь мы используем 45000 (второй ZSK) для подписи,
145а не 51333 как раньше
146
147Теперь, перегрузите зону для распространения изменений
148
149   $ sudo rndc reload mytld
150
151При помощи dig проверьте (как в шаге 5), что вы видите только ОДНУ подпись для
152ваших наборов записей - что означает что мы подписываем только ОДНИМ ZSK - вам
153нужно опять-таки подождать время TTL, прежде чем вы можете убрать старый ZSK.
154
155
1567. Теперь вы должны заметить, используя dig как в шаге 5, что мы подписали только
157   лишь одним ключом
158
159   $ dig www.mytld +dnssec
160
161Также проверьте, что СТАРЫЙ ZSK все еще опубликован в наборе записей DNSKEY:
162
163   $ dig mytld dnskey
164
165Вы по-прежнему должны видеть три ключа.
166
1678. Изымите старый ZSK из обращения.
168
169После двухминутного ожидания (120с), уберите старый ZSK:
170
171  $ cd /etc/namedb/master/
172
173  Отредактируйте файл зоны и добавьте знак комментария (';') впереди
174  старого ZSK (проверьте и перепроверьте, какой ключ закомментировать!)
175
176  $ sudo ee mytld
177
178$include "/etc/namedb/keys/Kmytld.+008+52159.key";  // KSK
179;$include "/etc/namedb/keys/Kmytld.+008+51333.key"; // ZSK (закомментирован)
180$include "/etc/namedb/keys/Kmytld.+008+45000.key";  // новый ZSK
181
182  Увеличьте серийный номер.
183
184  Теперь переподпишите зону, и обратите внимание что мы специфически НЕ
185  указываем ZSK, который мы закомментировали:
186
187  $ cd /etc/namedb/keys
188  $ sudo dnssec-signzone -o mytld -k Kmytld.+008+52159 ../master/mytld Kmytld.+008+45000
189  $ sudo rndc reload mytld
190  $ tail /etc/namedb/log/general
191
1929. Точно как в шаге 5, проверьте что подписи по прежнему работают, и что
193   СТАРЫЙ ZSK более не находится в наборе записей DNSKEY.
194
195   Также, убедитесь что записи RRSIG (dig +dnssec soa mytld) в вашей зоне
196   показывают идентификатор нового ключа ZSK.
197
198   Работает ли ваш домен сейчас?  :)