Перейти к содержанию
IPS Invision Community 🇷🇺
  • Настройка 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

    Обратная связь

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

    Комментариев нет



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

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

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

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

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

    Войти

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

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