Инструменты пользователя

Инструменты сайта


bind9

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

bind9 [2026/06/11 12:15] (текущий)
Строка 1: Строка 1:
 +====== DNS сервер (BIND9) ======
 +
 +
 +==== Введение ====
 +
 +Я так думаю, что Вы, мои предыдущие статьи про домашний сервер прочитали.
 +
 +Поэтому, я не буду расписывать, как его устанавливать.
 +
 +Просто, дам ссылки на эти первые статьи о домашнем сервере:
 +
 +[[http://www.ubuntu.liski.su/index.php?page=77]]
 +
 +[[http://www.ubuntu.liski.su/index.php?page=81]]
 +
 +В данной конфигурации, использовались материалы  следующей статьи:
 +
 +[[http://...../]]
 +
 +За что ее авторам огромная благодарность!
 +
 +===== Шаг 1:  Установка необходимых пакетов =====
 +
 +Если, не активирован ROOT:
 +
 +<code>sudo su
 +sudo passwd root</code>
 +
 +Сделаем ссылочку на bash на sh:
 +
 +<code>ln -sf /bin/bash /bin/sh</code>
 +
 +Уберем apparmor (чего то, с ним пока не все ладится!)
 +
 +<code>/etc/init.d/apparmor stop
 +update-rc.d -f apparmor remove</code>
 +
 +Устанавливаем основные пакеты:
 +
 +<code>apt-get install ssh openssh-server</code>
 +
 +<code>sudo apt-get install bind9</code>
 +
 +Что бы была возможность протестировать наш DNS сервер установим пакет:
 +
 +<code>sudo apt-get install dnsutils</code>
 +
 +
 +
 +===== Шаг 2:  Конфигурируем Сеть =====
 +
 +Редактируем файл **/etc/network/interfaces**, в моем примере, я буду использовать IP адрес 192.168.0.100:
 +
 +<code>gedit /etc/network/interfaces</code>
 +
 +<file># This file describes the network interfaces available on your system
 +# and how to activate them. For more information, see interfaces(5).
 +
 +# The loopback network interface
 +auto lo
 +iface lo inet loopback
 +
 +# The primary network interface
 +auto eth0
 +iface eth0 inet static
 + address 192.168.0.100
 + netmask 255.255.255.0
 + network 192.168.0.0
 + broadcast 192.168.0.255
 + gateway 192.168.0.1</file>
 +
 +Перезапустим сеть:
 +
 +<code>/etc/init.d/networking restart</code>
 +
 +Теперь отредактируем файл **/etc/hosts**. Правим и проверяем (для примера используется домен- example.com имя сервера mailserver, т.е. полное имя носта, будет  mailserver.example.com):
 +
 +<code>gedit /etc/hosts</code>
 +
 +<file>127.0.0.1     example.com  localhost.localdomain  localhost
 +192.168.0.100       example.com    mailserver
 +
 +# 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</file>
 +
 +Выполним команду:
 +
 +<code>echo example.com > /etc/hostname
 +/etc/init.d/hostname.sh start</code>
 +
 +Проверим, запустив:
 +
 +<code>hostname
 +hostname -f</code>
 +
 +Ответ должен быть: **example.com**
 +
 +===== Шаг 3:  Конфигурируем DNS сервер для безопасной работы =====
 +
 +Если ваш сервер доменных имен будет работать в сети Интернет, то рекомендуется произвести следующие подготовительные шаги, чтобы сделать его работу безопасной.
 +
 +Остановим сервер:
 +
 +/etc/init.d/bind9 stop
 +
 +Теперь отредактируем файл /etc/default/bind9 , чтобы корневой директорией (chrooted) для сервера была папка: /var/lib/named. Заменим строку: OPTIONS="-u bind" строкой со следующим содержанием: OPTIONS="-u bind -t /var/lib/named":
 +
 +<code>gedit (vi,nano) /etc/default/bind9</code>
 +
 +После редактирования и сохранения, файл должен выглядеть так:
 +
 +<file>OPTIONS="-u bind -t /var/lib/named"
 +# Set RESOLVCONF=no to not run resolvconf
 +RESOLVCONF=yes</file>
 +
 +В папке /var/lib создаем следующие директории:
 +
 +<code>mkdir -p /var/lib/named/etc
 +mkdir /var/lib/named/dev
 +mkdir -p /var/lib/named/var/cache/bind
 +mkdir -p /var/lib/named/var/run/bind/run</code>
 +
 +Переносим папку с конфигурационными файлами сервера из папки /etc  в папку: /var/lib/named/etc:
 +
 +<code>mv /etc/bind /var/lib/named/etc</code>
 +
 +Создаем ссылку на эту папку в разделе /etc, чтобы в будущем не было проблем с обновлениями:
 +
 +<code>ln -s /var/lib/named/etc/bind /etc/bind</code>
 +
 +Создаем null b random устройства, и присваиваем нужные права:
 +<code>
 +mknod /var/lib/named/dev/null c 1 3
 +mknod /var/lib/named/dev/random c 1 8
 +chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
 +chown -R bind:bind /var/lib/named/var/*
 +chown -R bind:bind /var/lib/named/etc/bind</code>
 +
 +Для правильной работы системных сообщений о работе сервера подправим строчку в файле: /etc/default/syslogd
 +<code>
 +gedit (vi,nano) /etc/default/syslogd</code>
 +
 +заменим строчку SYSLOGD="" на: SYSLOGD="-a /var/lib/named/dev/log":
 +
 +Содержание файла syslogd должно выглятеть так:
 +
 +<file>#
 +# Top configuration file for syslogd
 +#
 +
 +#
 +# Full documentation of possible arguments are found in the manpage
 +# syslogd(8).
 +#
 +
 +#
 +# For remote UDP logging use SYSLOGD="-r"
 +#
 +SYSLOGD="-a /var/lib/named/dev/log"</file>
 +
 +Перестартуем logging демона:
 +
 +<code>/etc/init.d/sysklogd restart</code>
 +
 +
 +Запустим сервер BIND, и проверим  файл /var/log/syslog на возможные ошибкиs:
 +
 +/etc/init.d/bind9 start
 +
 +<code>gedit /var/log/syslog</code>
 +
 +Если все нормально приступаем к конфигурированию самого сервера DNS/
 +
 +===== Шаг 4:  Конфигурируем DNS сервер =====
 +
 +Немного пояснений:
 +
 +Файлы конфигурации DNS сервера хранятся в каталоге: /etc/bind.
 +
 +Основной конфигурационный файл /etc/bind/named.conf.
 +
 +Строки  этого файла сообщают DNS серверу, где искать файлы настроек.
 +
 +Опции для правильной работы сервера находятся в файле: /etc/bind/named.conf.options.
 +
 +При загрузке сервер обязательно, просматривает эти опции.
 +
 +В файле /etc/bind/db.root находится описание имен корневых серверов DNS в сети Интернет.
 +
 +Имена серверов могут менятся с течением времени, поэтому файл может менятся при обновлении пакета bind9.
 +
 +На данный момент времени сохраняем его, как есть.
 +
 +Для своей локальной сети вы можете настроить один и тот же сервер в качестве сервера кэширования имен (caching name server), первичного сервера имен (primary master) , и вторичного сервера имен
 +
 +(secondary master). Или отдельно, как первичный или вторичный, в любом случае он может быть использован вами, как сервер кэширования имен для ваших хостов в локальной сети.
 +
 +Настраиваем сервер кэширование имен.
 +
 +По умолчанию, в файле конфигурации строки настроек сервера DNS, как кэширующего- закомментированы.
 +
 +Все, что требуется, это просто добавить IP-адреса DNS-серверов вашего провайдера.
 +
 +Просто раскомментируйте и отредактируйте следующие строки в файле: /etc/bind/named.conf.options:
 +
 +<code>gedit /etc/bind/named.conf.options</code>
 +
 +В качестве примера я приведу содержание моего файла, где записаны ближайшие DNS сервера моего провайдера:
 +
 +<file>forwarders {
 +                80.82.32.9;
 +                80.82.33.65;
 +           };</file>
 +
 +замените IP адреса серверов DNS на свои и перезапустите свой сервер:
 +
 +<code>sudo /etc/init.d/bind9 restart</code>
 +
 +===== Шаг 4:  Создаем первичный сервер (Primary Master) =====
 +
 +Здесь, я буду использовать в качестве примера доменное имя example.com.
 +
 +Вы можете заменить его на своё. Например, для домашней сети: home.net.
 +
 += Создаем Forward Zone File. =
 +
 +Редактируем файл /etc/bind/named.conf.local
 +
 +gedit /etc/bind/named.conf.local
 +
 +добавляем туда строки:
 +
 +<file>zone "example.com" {
 + type master;
 +        file "/etc/bind/db.example.com";
 +};</file>
 +
 +Создадим файл: /etc/bind/db.example.com, используя в качестве шаблона, уже имеющийся файл: /etc/bind/db.local:
 +
 +<code>sudo cp /etc/bind/db.local /etc/bind/db.example.com</code>
 +
 +Теперь подредактируем новый файл нашей зоны:
 +
 +Заменим слово localhost на свое доменное имя, в нашем случае: example.com. Незабываем в конце поставить знак "." (точка)
 +
 +Затем электронный адрес root@localhost на свой реальный, я напишу root@example.com и опять точку в конце ".".
 +
 +Затем IP адрес 127.0.0.1 на свой, в моем случае 192.168.0.100.
 +
 +вместо обычных имен символ "@", опять же оставляя "." в конце
 +
 +А так же создаем  A запись для ns.example.com.
 +
 +<file>;
 +; BIND data file for local loopback interface
 +;
 +$TTL    604800
 +@       IN      SOA     ns.example.com. root.example.com. (
 +                              2         ; Serial
 +                         604800         ; Refresh
 +                          86400         ; Retry
 +                        2419200         ; Expire
 +                         604800 )       ; Negative Cache TTL
 +;
 +@       IN      NS      ns.example.com.
 +@       IN      A       127.0.0.1
 +@       IN      AAAA    ::1
 +ns      IN      A       192.168.0.100</file>
  
bind9.txt · Последнее изменение: 2026/06/11 12:15 (внешнее изменение)