Показаны различия между двумя версиями страницы.
| — |
bind9 [2026/06/11 12:15] (текущий) |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== DNS сервер (BIND9) ====== | ||
| + | |||
| + | |||
| + | ==== Введение ==== | ||
| + | |||
| + | Я так думаю, что Вы, мои предыдущие статьи про домашний сервер прочитали. | ||
| + | |||
| + | Поэтому, | ||
| + | |||
| + | Просто, | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | В данной конфигурации, | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | За что ее авторам огромная благодарность! | ||
| + | |||
| + | ===== Шаг 1: Установка необходимых пакетов ===== | ||
| + | |||
| + | Если, не активирован ROOT: | ||
| + | |||
| + | < | ||
| + | sudo passwd root</ | ||
| + | |||
| + | Сделаем ссылочку на bash на sh: | ||
| + | |||
| + | < | ||
| + | |||
| + | Уберем apparmor (чего то, с ним пока не все ладится!) | ||
| + | |||
| + | < | ||
| + | update-rc.d -f apparmor remove</ | ||
| + | |||
| + | Устанавливаем основные пакеты: | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | |||
| + | Что бы была возможность протестировать наш DNS сервер установим пакет: | ||
| + | |||
| + | < | ||
| + | |||
| + | |||
| + | |||
| + | ===== Шаг 2: Конфигурируем Сеть ===== | ||
| + | |||
| + | Редактируем файл **/ | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | # and how to activate them. For more information, | ||
| + | |||
| + | # The loopback network interface | ||
| + | auto lo | ||
| + | iface lo inet loopback | ||
| + | |||
| + | # The primary network interface | ||
| + | auto eth0 | ||
| + | iface eth0 inet static | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | Перезапустим сеть: | ||
| + | |||
| + | < | ||
| + | |||
| + | Теперь отредактируем файл **/ | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | 192.168.0.100 | ||
| + | |||
| + | # The following lines are desirable for IPv6 capable hosts | ||
| + | ::1 ip6-localhost ip6-loopback | ||
| + | fe00::0 ip6-localnet | ||
| + | ff00::0 ip6-mcastprefix | ||
| + | ff02::1 ip6-allnodes | ||
| + | ff02::2 ip6-allrouters | ||
| + | ff02::3 ip6-allhosts</ | ||
| + | |||
| + | Выполним команду: | ||
| + | |||
| + | < | ||
| + | / | ||
| + | |||
| + | Проверим, | ||
| + | |||
| + | < | ||
| + | hostname -f</ | ||
| + | |||
| + | Ответ должен быть: **example.com** | ||
| + | |||
| + | ===== Шаг 3: Конфигурируем DNS сервер для безопасной работы ===== | ||
| + | |||
| + | Если ваш сервер доменных имен будет работать в сети Интернет, | ||
| + | |||
| + | Остановим сервер: | ||
| + | |||
| + | / | ||
| + | |||
| + | Теперь отредактируем файл / | ||
| + | |||
| + | < | ||
| + | |||
| + | После редактирования и сохранения, | ||
| + | |||
| + | < | ||
| + | # Set RESOLVCONF=no to not run resolvconf | ||
| + | RESOLVCONF=yes</ | ||
| + | |||
| + | В папке /var/lib создаем следующие директории: | ||
| + | |||
| + | < | ||
| + | mkdir / | ||
| + | mkdir -p / | ||
| + | mkdir -p / | ||
| + | |||
| + | Переносим папку с конфигурационными файлами сервера из папки /etc в папку: / | ||
| + | |||
| + | < | ||
| + | |||
| + | Создаем ссылку на эту папку в разделе /etc, чтобы в будущем не было проблем с обновлениями: | ||
| + | |||
| + | < | ||
| + | |||
| + | Создаем null b random устройства, | ||
| + | < | ||
| + | mknod / | ||
| + | mknod / | ||
| + | chmod 666 / | ||
| + | chown -R bind:bind / | ||
| + | chown -R bind:bind / | ||
| + | |||
| + | Для правильной работы системных сообщений о работе сервера подправим строчку в файле: / | ||
| + | < | ||
| + | gedit (vi,nano) / | ||
| + | |||
| + | заменим строчку SYSLOGD="" | ||
| + | |||
| + | Содержание файла syslogd должно выглятеть так: | ||
| + | |||
| + | < | ||
| + | # Top configuration file for syslogd | ||
| + | # | ||
| + | |||
| + | # | ||
| + | # Full documentation of possible arguments are found in the manpage | ||
| + | # syslogd(8). | ||
| + | # | ||
| + | |||
| + | # | ||
| + | # For remote UDP logging use SYSLOGD=" | ||
| + | # | ||
| + | SYSLOGD=" | ||
| + | |||
| + | Перестартуем logging демона: | ||
| + | |||
| + | < | ||
| + | |||
| + | |||
| + | Запустим сервер BIND, и проверим | ||
| + | |||
| + | / | ||
| + | |||
| + | < | ||
| + | |||
| + | Если все нормально приступаем к конфигурированию самого сервера DNS/ | ||
| + | |||
| + | ===== Шаг 4: Конфигурируем DNS сервер ===== | ||
| + | |||
| + | Немного пояснений: | ||
| + | |||
| + | Файлы конфигурации DNS сервера хранятся в каталоге: | ||
| + | |||
| + | Основной конфигурационный файл / | ||
| + | |||
| + | Строки | ||
| + | |||
| + | Опции для правильной работы сервера находятся в файле: / | ||
| + | |||
| + | При загрузке сервер обязательно, | ||
| + | |||
| + | В файле / | ||
| + | |||
| + | Имена серверов могут менятся с течением времени, | ||
| + | |||
| + | На данный момент времени сохраняем его, как есть. | ||
| + | |||
| + | Для своей локальной сети вы можете настроить один и тот же сервер в качестве сервера кэширования имен (caching name server), первичного сервера имен (primary master) , и вторичного сервера имен | ||
| + | |||
| + | (secondary master). Или отдельно, | ||
| + | |||
| + | Настраиваем сервер кэширование имен. | ||
| + | |||
| + | По умолчанию, | ||
| + | |||
| + | Все, что требуется, | ||
| + | |||
| + | Просто раскомментируйте и отредактируйте следующие строки в файле: / | ||
| + | |||
| + | < | ||
| + | |||
| + | В качестве примера я приведу содержание моего файла, где записаны ближайшие DNS сервера моего провайдера: | ||
| + | |||
| + | < | ||
| + | 80.82.32.9; | ||
| + | 80.82.33.65; | ||
| + | | ||
| + | |||
| + | замените IP адреса серверов DNS на свои и перезапустите свой сервер: | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== Шаг 4: Создаем первичный сервер (Primary Master) ===== | ||
| + | |||
| + | Здесь, я буду использовать в качестве примера доменное имя example.com. | ||
| + | |||
| + | Вы можете заменить его на своё. Например, | ||
| + | |||
| + | = Создаем Forward Zone File. = | ||
| + | |||
| + | Редактируем файл / | ||
| + | |||
| + | gedit / | ||
| + | |||
| + | добавляем туда строки: | ||
| + | |||
| + | < | ||
| + | type master; | ||
| + | file "/ | ||
| + | };</ | ||
| + | |||
| + | Создадим файл: / | ||
| + | |||
| + | < | ||
| + | |||
| + | Теперь подредактируем новый файл нашей зоны: | ||
| + | |||
| + | Заменим слово localhost на свое доменное имя, в нашем случае: | ||
| + | |||
| + | Затем электронный адрес root@localhost на свой реальный, | ||
| + | |||
| + | Затем IP адрес 127.0.0.1 на свой, в моем случае 192.168.0.100. | ||
| + | |||
| + | вместо обычных имен символ " | ||
| + | |||
| + | А так же создаем | ||
| + | |||
| + | < | ||
| + | ; BIND data file for local loopback interface | ||
| + | ; | ||
| + | $TTL 604800 | ||
| + | @ | ||
| + | 2 ; Serial | ||
| + | | ||
| + | 86400 ; Retry | ||
| + | 2419200 | ||
| + | | ||
| + | ; | ||
| + | @ | ||
| + | @ | ||
| + | @ | ||
| + | ns IN A | ||