Перейти к публикации
  • Настройка DNS-сервера без ISPmanager

    Настройка DNS-сервера без ISPmanager

    Собственный DNS-сервер пригодится, если провайдер не предоставляет такую услугу или вам не подходят существующие решения.

    Подготовка сервера

    Допустим, вы заказали виртуальный сервер и хотите использовать свои DNS servers. Для этого нужно выполнить два условия:

    1. Заказать дополнительный IP-адрес. Для настройки DNS требуется как минимум два айпи.
    2. Открыть DNS-порт 53, который нужен для работы сервера имен.

    Ubuntu/Debian

    Обновите список пакетов:

    apt update

    Разрешите в брандмауэре входящие пакеты на порт 53 UDP:

    iptables -I INPUT -p udp --dport 53 -j ACCEPT

    Сохраните параметры:

    iptables-save

    CentOS

    Установите обновления:

    yum update

    Установите утилиту для синхронизации времени:

    yum install chrony

    Настройте временную зону. В данном случае — московское время:

    timedatectl set-timezone Europe/Moscow

    Разрешите и запустите сервис синхронизации:

    systemctl enable chronyd --now

    Откройте порт 53:

    firewall-cmd --permanent --add-port=53/udp

    Примените обновленные параметры:

    firewall-cmd --reload

    Установка DNS-сервера

    В этом руководстве для создания IP DNS будет использован BIND 9.

    Ubuntu/Debian

    Установите необходимое ПО:

    apt-get install bind9 dnsutils

    Добавьте его в список автозагрузки:

    systemctl enable bind9

    Запустите сервис:

    systemctl start bind9

    Проверьте, что все работает:

    systemctl status bind9

    В выводе будет указано состояние active.

    CentOS

    Установите утилиту для организации ДНС:

    yum install bind

    Разрешите автозапуск:

    systemctl enable named

    Запустите установленный сервис:

    systemctl start named

    Проверьте, что он работает:

    systemctl status named

    В выводе будет указано состояние active.

    Базовая настройка DNS-сервера

    Параметры нужно указать в файле конфигурации. 

    Ubuntu/Debian

    Откройте файл конфигурации:

    vi /etc/bind/named.conf.options

    В строке listen-on укажите сети, которые необходимо обслуживать. Например:

    listen-on { 10.10.10.0/24; 
    10.1.0.0/16; 
    ... 
    };

    Если нужно, чтобы ДНС работал по всем адресам, не указывайте параметр или задайте ему значение any.

    В строке allow-query укажите, кому разрешено выполнять запросы. Можно разрешить всем, вписав any, или добавить конкретные адреса и сети:

    allow-query { any; };

    Перезапустите службу, чтобы новая конфигурация заработала:

    systemctl restart bind9

    CentOS

    Откройте файл конфигурации:

    vi /etc/named.conf

    Найдите строки:

    listen-on port 53 { 127.0.0.1; localhost; 192.172.160.14; };
    ...
    allow-query     { any; };

    В строке listen-on port 53 после localhost укажите ДНС-адрес. Это IP, на котором хост будет принимать запросы. Если нужно, чтобы ДНС работал по всем адресам, не указывайте параметр или задайте ему any.

    В строке allow-query настраиваются разрешения. Значение any разрешает выполнять запросы всем. Можно установить ограничение для конкретной сети, указав, например, 192.172.160.0/24.

    Примените конфигурацию:

    systemctl restart named

    Глобальные опции

    Для базовой настройки достаточно указать в файле конфигурации несколько опций. Но есть другие глобальные параметры, которые помогают тонко настроить состояние и поведение хоста.

    Аргумент: directory

    • Рабочая директория. Можно не указывать явно, в таком случае будет использован каталог по умолчанию — /var/named

    Аргумент: forwarders

    • На них перенаправляются обращения, не обработанные вашим DNS. Например, можно указать гугловские: 
    • forwarders {
      8.8.8.8;
      8.8.4.4;
      };

       

    Аргумент: forward

    • Доступны два состояния — FIRST и ONLY. Если выставить FIRST, то сначала обращение будет перенаправлено, только после неуспешной обработки начнется проверка внутренней базы. При ONLY сервер не ищет совпадения в локальных зонах

    Аргумент: listen-on

    • Интерфейсы, на которых слушает BIND. В нашем случае это порт 53 UDP

    Аргумент: allow-transfer

    • Хосты, на которые разрешаются зонные передачи

    Аргумент: allow-query

    • Серверы, с которых можно отправлять запросы

    Аргумент: allow-notify

    • Хосты, которым можно отправлять уведомления, если настройки зоны изменятся

    Аргумент: allow-recursion

    • Хосты, которые могут делать рекурсивные запросы. По умолчанию рекурсия разрешена без ограничений

    Проверка

    Чтобы убедиться в том, что ДНС-серверы принимают обращения от клиентов, используйте утилиту nslookup

    Отправьте запрос с другого компьютера. Например:

    nslookup site-example.com 192.172.160.14

    Цель этой команды — узнать IP-адрес сайта site-example.com через ДНС 192.172.160.14.

    Можно также использовать утилиту dig. Синтаксис очень похожий:

    dig @192.172.160.14 site-example.com 

    Здесь проверка DNS выполняется аналогичным образом. Отличается только синтаксис команды.

    Зоны BIND

    Базовая настройка сервера завершена. Но использовать его можно по-разному. Для этого настраиваются зоны:

    • Первичная — вы пополняете и редактируете базу доменов на текущем хосте.
    • Вторичная — есть сервер с первичной зоной, этот хост забирает с него настройки.
    • Заглушка — хранятся только записи NS, которые используются для перенаправления на хосты.
    • Кеширующая — не хранятся записи, есть только результаты обработанных запросов, которые ускоряют работу при повторных обращениях.

    Управление зонами также выполняется в файле конфигурации. Это отдельная большая тема. Создание собственной зоны позволит назначить понятные имена для каждого хоста. Это актуально, когда узлов становится много и обращаться к ним по IP-адресам становится неудобно.

    Было ли это полезно?

    qwert

    Отзывы пользователей

    Рекомендованные комментарии

    Нет комментариев для отображения



    Создайте аккаунт или войдите в него для комментирования

    Вы должны быть пользователем, чтобы оставить комментарий

    Создать аккаунт

    Зарегистрируйтесь для получения аккаунта. Это просто!

    Зарегистрировать аккаунт

    Войти

    Уже зарегистрированы? Войдите здесь.

    Войти сейчас
×
×
  • Создать...
Вверх
Вверх