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

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


bind9

DNS сервер (BIND9)

Введение

Я так думаю, что Вы, мои предыдущие статьи про домашний сервер прочитали.

Поэтому, я не буду расписывать, как его устанавливать.

Просто, дам ссылки на эти первые статьи о домашнем сервере:

http://www.ubuntu.liski.su/index.php?page=77

http://www.ubuntu.liski.su/index.php?page=81

В данной конфигурации, использовались материалы следующей статьи:

http://...../

За что ее авторам огромная благодарность!

Шаг 1: Установка необходимых пакетов

Если, не активирован ROOT:

sudo su
sudo passwd root

Сделаем ссылочку на bash на sh:

ln -sf /bin/bash /bin/sh

Уберем apparmor (чего то, с ним пока не все ладится!)

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove

Устанавливаем основные пакеты:

apt-get install ssh openssh-server
sudo apt-get install bind9

Что бы была возможность протестировать наш DNS сервер установим пакет:

sudo apt-get install dnsutils

Шаг 2: Конфигурируем Сеть

Редактируем файл /etc/network/interfaces, в моем примере, я буду использовать IP адрес 192.168.0.100:

gedit /etc/network/interfaces
# 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

Перезапустим сеть:

/etc/init.d/networking restart

Теперь отредактируем файл /etc/hosts. Правим и проверяем (для примера используется домен- example.com имя сервера mailserver, т.е. полное имя носта, будет mailserver.example.com):

gedit /etc/hosts
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

Выполним команду:

echo example.com > /etc/hostname
/etc/init.d/hostname.sh start

Проверим, запустив:

hostname
hostname -f

Ответ должен быть: 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»:

gedit (vi,nano) /etc/default/bind9

После редактирования и сохранения, файл должен выглядеть так:

OPTIONS="-u bind -t /var/lib/named"
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes

В папке /var/lib создаем следующие директории:

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

Переносим папку с конфигурационными файлами сервера из папки /etc в папку: /var/lib/named/etc:

mv /etc/bind /var/lib/named/etc

Создаем ссылку на эту папку в разделе /etc, чтобы в будущем не было проблем с обновлениями:

ln -s /var/lib/named/etc/bind /etc/bind

Создаем null b random устройства, и присваиваем нужные права:

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

Для правильной работы системных сообщений о работе сервера подправим строчку в файле: /etc/default/syslogd

gedit (vi,nano) /etc/default/syslogd

заменим строчку SYSLOGD=«» на: SYSLOGD=«-a /var/lib/named/dev/log»:

Содержание файла syslogd должно выглятеть так:

#
# 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"

Перестартуем logging демона:

/etc/init.d/sysklogd restart

Запустим сервер BIND, и проверим файл /var/log/syslog на возможные ошибкиs:

/etc/init.d/bind9 start

gedit /var/log/syslog

Если все нормально приступаем к конфигурированию самого сервера 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:

gedit /etc/bind/named.conf.options

В качестве примера я приведу содержание моего файла, где записаны ближайшие DNS сервера моего провайдера:

forwarders {
                80.82.32.9;
                80.82.33.65;
           };

замените IP адреса серверов DNS на свои и перезапустите свой сервер:

sudo /etc/init.d/bind9 restart

Шаг 4: Создаем первичный сервер (Primary Master)

Здесь, я буду использовать в качестве примера доменное имя example.com.

Вы можете заменить его на своё. Например, для домашней сети: home.net.

= Создаем Forward Zone File. =

Редактируем файл /etc/bind/named.conf.local

gedit /etc/bind/named.conf.local

добавляем туда строки:

zone "example.com" {
	type master;
        file "/etc/bind/db.example.com";
};

Создадим файл: /etc/bind/db.example.com, используя в качестве шаблона, уже имеющийся файл: /etc/bind/db.local:

sudo cp /etc/bind/db.local /etc/bind/db.example.com

Теперь подредактируем новый файл нашей зоны:

Заменим слово localhost на свое доменное имя, в нашем случае: example.com. Незабываем в конце поставить знак «.» (точка)

Затем электронный адрес root@localhost на свой реальный, я напишу root@example.com и опять точку в конце «.».

Затем IP адрес 127.0.0.1 на свой, в моем случае 192.168.0.100.

вместо обычных имен символ «@», опять же оставляя «.» в конце

А так же создаем A запись для ns.example.com.

;
; 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
bind9.txt · Последнее изменение: 2022/02/17 18:55 (внешнее изменение)