| 1 | Конфигурирование Unbound |
|---|
| 2 | ------------------------ |
|---|
| 3 | |
|---|
| 4 | 1. Залогиньтесь на вашу машину с кэширующим сервером при помощи SSH/Putty/...: |
|---|
| 5 | |
|---|
| 6 | (для группы 1, вам следует использовать resolv.grp1.dns.nsrc.org, и т.д.) |
|---|
| 7 | |
|---|
| 8 | $ ssh sysadm@resolv.grpXX.dns.nsrc.org |
|---|
| 9 | |
|---|
| 10 | *** ПОЖАЛУЙСТА УБЕДИТЕСЬ, ЧТО ВЫ ЗАЛОГИНИЛИСЬ НА МАШИНУ 'RESOLV', А *** |
|---|
| 11 | *** НЕ НА 'AUTH1' ИЛИ 'AUTH2' *** |
|---|
| 12 | |
|---|
| 13 | 2. На resolv: |
|---|
| 14 | |
|---|
| 15 | $ cd /usr/local/etc/unbound/ |
|---|
| 16 | |
|---|
| 17 | Сейчас у вас выбор из двух вариантов. Вы можете создать unbound.conf |
|---|
| 18 | с нуля, используя пример внизу (вариант I), или вы можете вручную |
|---|
| 19 | отредактировать существующий `unbound.conf`, если хотите. |
|---|
| 20 | |
|---|
| 21 | Вариант I проще, но выбор за вами! |
|---|
| 22 | |
|---|
| 23 | Вариант I: |
|---|
| 24 | |
|---|
| 25 | Если вы хотите сохранить немного времени: |
|---|
| 26 | |
|---|
| 27 | Создайте файл unbound.conf, и скопируйте туда следующее: |
|---|
| 28 | |
|---|
| 29 | --------------------------- линия отреза ----------------------------- |
|---|
| 30 | |
|---|
| 31 | server: |
|---|
| 32 | verbosity: 1 |
|---|
| 33 | # интерфейсы (по IP), на которых unbound будет отвечать на запросы |
|---|
| 34 | interface: 0.0.0.0 |
|---|
| 35 | |
|---|
| 36 | # какие клиенты могут осуществлять на (рекурсивные) запросы |
|---|
| 37 | access-control: 10.10.0.0/16 allow |
|---|
| 38 | |
|---|
| 39 | # Если вы укажете "", unbound не будет делать chroot. Путь не должен заканчиваться на "/". |
|---|
| 40 | chroot: "" |
|---|
| 41 | |
|---|
| 42 | # file to read root hints from. |
|---|
| 43 | root-hints: "/usr/local/etc/unbound/named.root" |
|---|
| 44 | |
|---|
| 45 | # a number of locally served zones can be configured. |
|---|
| 46 | local-zone: "10.10.in-addr.arpa." nodefault |
|---|
| 47 | |
|---|
| 48 | remote-control: |
|---|
| 49 | |
|---|
| 50 | # Enable remote control with unbound-control(8) here. |
|---|
| 51 | control-enable: yes |
|---|
| 52 | |
|---|
| 53 | # what interfaces are listened to for remote control. |
|---|
| 54 | control-interface: 0.0.0.0 |
|---|
| 55 | |
|---|
| 56 | # port number for remote control operations. |
|---|
| 57 | control-port: 953 |
|---|
| 58 | |
|---|
| 59 | # unbound control files |
|---|
| 60 | server-key-file: "/usr/local/etc/unbound/unbound_server.key" |
|---|
| 61 | server-cert-file: "/usr/local/etc/unbound/unbound_server.pem" |
|---|
| 62 | control-key-file: "/usr/local/etc/unbound/unbound_control.key" |
|---|
| 63 | control-cert-file: "/usr/local/etc/unbound/unbound_control.pem" |
|---|
| 64 | |
|---|
| 65 | --------------------------- линия отреза ----------------------------- |
|---|
| 66 | |
|---|
| 67 | Вариант II: |
|---|
| 68 | |
|---|
| 69 | Если вам хочется сделать изменение вручную... В противном случае |
|---|
| 70 | перейдите к следующему шагу! |
|---|
| 71 | |
|---|
| 72 | $ sudo cp unbound.conf.sample unbound.conf |
|---|
| 73 | Замечание: Используйте ваш любимый редактор: ee, jed, joe, vi, ... |
|---|
| 74 | |
|---|
| 75 | $ sudo ee unbound.conf |
|---|
| 76 | или |
|---|
| 77 | $ sudo vi unbound.conf |
|---|
| 78 | |
|---|
| 79 | ... и сделайте следующие изменения: |
|---|
| 80 | |
|---|
| 81 | a) сконфигурируйте "слушающие" интерфейсы - найдите строчки типа: |
|---|
| 82 | |
|---|
| 83 | # interface: ... |
|---|
| 84 | # interface: ... |
|---|
| 85 | |
|---|
| 86 | и прямо под ними, добавьте строку: |
|---|
| 87 | |
|---|
| 88 | interface: 0.0.0.0 |
|---|
| 89 | |
|---|
| 90 | b) контроль доступа - найдите строчки типа: |
|---|
| 91 | |
|---|
| 92 | # access-control: ... |
|---|
| 93 | # access-control: ... |
|---|
| 94 | |
|---|
| 95 | и прямо под ними, добавьте строку: |
|---|
| 96 | |
|---|
| 97 | access-control: 10.20.0.0/16 allow |
|---|
| 98 | |
|---|
| 99 | c) защита с помощью chroot - найдите строку: |
|---|
| 100 | |
|---|
| 101 | # chroot: "/usr/local/etc/unbound" |
|---|
| 102 | |
|---|
| 103 | и прямо под ней, добавьте строку: |
|---|
| 104 | |
|---|
| 105 | chroot: "" |
|---|
| 106 | |
|---|
| 107 | Замечание: Обычно мы бы не стали отключать chroot, являющийся защитным |
|---|
| 108 | механизмом, но нам нужно это сделать на время лабораторной работы, |
|---|
| 109 | из-за ограничений используемой виртуальной среды. В настоящей |
|---|
| 110 | конфигурации, мы бы не стали этого делать. |
|---|
| 111 | |
|---|
| 112 | d) задайте файл root-hints - найдите строчку: |
|---|
| 113 | |
|---|
| 114 | # root-hints: "" |
|---|
| 115 | |
|---|
| 116 | и прямо под ней, добавьте строку: |
|---|
| 117 | |
|---|
| 118 | root-hints: "/usr/local/etc/unbound/named.root" |
|---|
| 119 | |
|---|
| 120 | e) разрешите зону 20.10.in-addr.arpa - найдите строчку: |
|---|
| 121 | |
|---|
| 122 | # local-data-ptr: "192.0.2.3 www.example.com" |
|---|
| 123 | |
|---|
| 124 | и прямо под ней, добавьте строку: |
|---|
| 125 | |
|---|
| 126 | local-zone: "20.10.in-addr.arpa." nodefault |
|---|
| 127 | |
|---|
| 128 | f) включите удаленное управление - найдите строчку: |
|---|
| 129 | |
|---|
| 130 | # control-enable: no |
|---|
| 131 | |
|---|
| 132 | и ИЗМЕНИТЕ ее (удалив # в начале строки) на: |
|---|
| 133 | |
|---|
| 134 | control-enable: yes |
|---|
| 135 | |
|---|
| 136 | - найдите строчку: |
|---|
| 137 | |
|---|
| 138 | # control-interface: 127.0.0.1 |
|---|
| 139 | |
|---|
| 140 | и ИЗМЕНИТЕ ее на: |
|---|
| 141 | |
|---|
| 142 | control-interface: 0.0.0.0 |
|---|
| 143 | |
|---|
| 144 | - найдите строчку: |
|---|
| 145 | |
|---|
| 146 | # control-port: 8953 |
|---|
| 147 | |
|---|
| 148 | и ИЗМЕНИТЕ ее на: |
|---|
| 149 | |
|---|
| 150 | control-port: 953 |
|---|
| 151 | |
|---|
| 152 | - наконец, уберите комментарии из следующих четырех строк: |
|---|
| 153 | |
|---|
| 154 | # server-key-file: "/usr/local/etc/unbound/unbound_server.key" |
|---|
| 155 | станет |
|---|
| 156 | server-key-file: "/usr/local/etc/unbound/unbound_server.key" |
|---|
| 157 | |
|---|
| 158 | # server-cert-file: "/usr/local/etc/unbound/unbound_server.pem" |
|---|
| 159 | станет |
|---|
| 160 | server-cert-file: "/usr/local/etc/unbound/unbound_server.pem" |
|---|
| 161 | |
|---|
| 162 | # control-key-file: "/usr/local/etc/unbound/unbound_control.key" |
|---|
| 163 | станет |
|---|
| 164 | control-key-file: "/usr/local/etc/unbound/unbound_control.key" |
|---|
| 165 | |
|---|
| 166 | # control-cert-file: "/usr/local/etc/unbound/unbound_control.pem" |
|---|
| 167 | станет |
|---|
| 168 | control-cert-file: "/usr/local/etc/unbound/unbound_control.pem" |
|---|
| 169 | |
|---|
| 170 | |
|---|
| 171 | Сохраните файл, выйдите из редактора. |
|---|
| 172 | |
|---|
| 173 | Вам все еще нужно скопировать файл named.root туда, где unbound |
|---|
| 174 | сможет его найти. |
|---|
| 175 | |
|---|
| 176 | $ cd /usr/local/etc/unbound |
|---|
| 177 | $ sudo cp /etc/namedb/named.root . |
|---|
| 178 | |
|---|
| 179 | 3. Создайте управляющие ключи: |
|---|
| 180 | |
|---|
| 181 | $ sudo unbound-control-setup |
|---|
| 182 | |
|---|
| 183 | 4. Проверьте правильность конфигурации: |
|---|
| 184 | |
|---|
| 185 | $ sudo unbound-checkconf |
|---|
| 186 | |
|---|
| 187 | 5. Отредактируйте /etc/rc.conf и добавьте: |
|---|
| 188 | |
|---|
| 189 | unbound_enable="YES" |
|---|
| 190 | |
|---|
| 191 | 6. Запустите unbound! |
|---|
| 192 | |
|---|
| 193 | $ sudo service unbound start |
|---|
| 194 | |
|---|
| 195 | 7. Поменяйте ваш /etc/resolv.conf так, что он использует свеженастроенный Unbound, |
|---|
| 196 | на этой машине (RESOLV), а такжи и на AUTH1 и на AUTH2: |
|---|
| 197 | |
|---|
| 198 | # vi /etc/resolv.conf |
|---|
| 199 | |
|---|
| 200 | Поменяйте строку DNS-сервера на: |
|---|
| 201 | |
|---|
| 202 | nameserver 10.20.XX.3 |
|---|
| 203 | |
|---|
| 204 | ... где XX - номер вашей группы |
|---|
| 205 | |
|---|
| 206 | 8. Тестирование |
|---|
| 207 | |
|---|
| 208 | $ dig |
|---|
| 209 | $ dig noc.dns.nsrc.org |
|---|
| 210 | |
|---|
| 211 | Убедитесь, что вы видите SERVER: ...(10.20.XX.3) в конце вывода команды dig. |
|---|
| 212 | |
|---|
| 213 | $ dig version.bind txt chaos |
|---|
| 214 | |
|---|
| 215 | Что показывает dig? |
|---|
| 216 | |
|---|
| 217 | 9. Убедитесь, что BIND на AUTH1 НЕ ЯВЛЯЕТСЯ рекурсивным. |
|---|
| 218 | |
|---|
| 219 | Замечание: Вам НЕ нужно этого делать, если только вы не включили рекурсию в |
|---|
| 220 | вашей конфигурации BIND. |
|---|
| 221 | |
|---|
| 222 | Итак, нам нужно зайти на машину AUTH1, и поменять resolv.conf. |
|---|
| 223 | |
|---|
| 224 | Залогиньтесь на ваш мастер (auth1.grpX.dns.nsrc.org), и измените |
|---|
| 225 | /etc/resolv.conf так, что он теперь использует свеженастроенный unbound: |
|---|
| 226 | |
|---|
| 227 | $ sudo ee /etc/resolv.conf |
|---|
| 228 | |
|---|
| 229 | И сделайте его похожим на вот это: |
|---|
| 230 | |
|---|
| 231 | search dns.nsrc.org |
|---|
| 232 | nameserver 10.20.X.3 |
|---|
| 233 | |
|---|
| 234 | |
|---|
| 235 | ... где X - номер вашей группы |
|---|
| 236 | |
|---|
| 237 | Затем убедитесь, что вы можете находить информацию об именах *.dns.nsrc.org: |
|---|
| 238 | |
|---|
| 239 | $ dig noc.dns.nsrc.org |
|---|
| 240 | |
|---|
| 241 | Проверьте раздел SERVER: в конце вывода команды dig, чтобы убедиться, |
|---|
| 242 | что правильный сервер был запрошен |
|---|
| 243 | |
|---|
| 244 | Наконец, выключите рекурсию на машине AUTH1. |
|---|
| 245 | |
|---|
| 246 | Редактируйте /etc/namedb/named.conf (sudo ee ...) и сделайте следующие изменения: |
|---|
| 247 | |
|---|
| 248 | Было: |
|---|
| 249 | |
|---|
| 250 | allow-recursion { 127.0.0.1; 10.20.0.0/16; }; |
|---|
| 251 | |
|---|
| 252 | Должно быть: |
|---|
| 253 | |
|---|
| 254 | // allow-recursion { 127.0.0.1; 10.20.0.0/16; }; |
|---|
| 255 | recursion no; |
|---|
| 256 | |
|---|
| 257 | Если этих строк нет в файле, не волнуйтесь, а просто пропустите этот шаг! |
|---|
| 258 | |
|---|
| 259 | Сохраните файл, и перезапустите named: |
|---|
| 260 | |
|---|
| 261 | $ sudo service named restart |
|---|