Задать вопрос
Все статьи / Полезная информация / Как создать и настроить DNS-сервер без ISPmanager
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

Как создать и настроить DNS-сервер без ISPmanager

DNS (Domain Name System) — это система, которая переводит доменные имена (например, example.com) в IP-адреса (например, 203.0.113.5). 

Когда вы пользуетесь чужим DNS (например, провайдера или публичного), вы зависите от его производительности, стабильности, ограничений, политики логирования и скорости обновления записей.

Собственный DNS-сервер нужен, если:

  • провайдер не предоставляет возможность использования кастомных DNS;
  • вы хотите иметь полный контроль над зонами (записями A, MX, CNAME и т.д.);
  • нужны приватные внутренние зоны (для вашей инфраструктуры, закрытой сети);
  • важна быстрая реакция на изменения записей и отказоустойчивость;
  • вы хотите повысить безопасность и гибкость управления (например, фильтрация запросов, ограничения, кеширование).

В этой статье разберем, как самостоятельно создать и настроить DNS-сервер без использования ISPmanager

Основные требования 

Перед установкой и настройкой DNS-сервера важно убедиться, что серверная среда соответствует базовым требованиям и правильно подготовлена. От этого зависит стабильность работы и доступность DNS-запросов:

  • Выделенный сервер или VPS. Подойдет любая современная версия Linux — чаще всего используют Ubuntu/Debian или CentOS/RHEL.
  • IP-адреса. Для полноценной работы DNS желательно иметь как минимум два адреса: один для основного, другой для вторичного сервера. 
  • Открытый порт 53. DNS работает на порту 53 по протоколам UDP и TCP. Нужно убедиться, что этот порт доступен извне и не блокируется брандмауэром или провайдером.
  • Операционная система на базе Linux. Подойдут популярные дистрибутивы вроде Ubuntu, Debian, CentOS или AlmaLinux. Они поддерживают BIND и другие DNS-сервисы.
  • Минимальные ресурсы. Для базового DNS достаточно 1 CPU, 512 МБ RAM и 5–10 ГБ дискового пространства. При высокой нагрузке ресурсы следует увеличить.

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

Ubuntu / Debian

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

apt update && apt upgrade -y

Разрешите входящие соединения на порт 53:

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

CentOS / RHEL

Выполните обновление системы:

yum update -y

Установите и настройте синхронизацию времени (важно для корректной работы зон):

yum install chrony -y
systemctl enable chronyd --now
timedatectl set-timezone Europe/Moscow   # замените на вашу временную зону

Разрешите DNS-трафик в брандмауэре:

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

Как установить DNS-сервер

Для развертывания собственного DNS чаще всего используется BIND9 — один из самых популярных и стабильных серверов доменных имен. Его установка не занимает много времени, но различается в зависимости от дистрибутива Linux.

Установка на Ubuntu/Debian

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

apt-get install bind9 dnsutils -y

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

systemctl enable bind9

Запустите BIND 9:

systemctl start bind9

Проверьте статус:

systemctl status bind9

В выводе должно отображаться состояние active (running).

Установка на CentOS/RHEL

Установите пакет BIND:

yum install bind -y

Добавьте службу в автозагрузку:

systemctl enable named

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

systemctl start named

Проверьте статус работы:

systemctl status named

В случае успешной установки и запуска статус будет active (running).

Как настроить DNS-сервер

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

Настройка на Ubuntu/Debian

Откройте основной файл параметров:

vi /etc/bind/named.conf.options

Укажите, на каких сетях сервер будет слушать запросы:

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

Если хотите, чтобы DNS работал на всех интерфейсах, параметр можно опустить или указать any.

Определите, кто может отправлять запросы:

allow-query { any; };

Вместо any можно ограничить доступ, добавив только доверенные сети.

Сохраните изменения и перезапустите службу:

systemctl restart bind9

Настройка на CentOS/RHEL

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

vi /etc/named.conf

Найдите строку с интерфейсами и укажите IP сервера:

listen-on port 53 { 127.0.0.1; localhost; 192.172.160.14; };

Чтобы сервер отвечал на всех интерфейсах, используйте any.

Задайте правила доступа к запросам:

allow-query { any; };

При необходимости ограничьте доступ для определенной подсети, например:

allow-query { 192.172.160.0/24; };

Примените настройки:

systemctl restart named

Основные глобальные опции BIND

При настройке DNS-сервера в BIND многие ключевые опции указываются в глобальной конфигурации. Они определяют, как будет работать сервер: какие запросы обрабатывать, куда перенаправлять неопознанные домены и кому разрешать доступ.

Какие есть опции:

Опция Назначение Пример
directory Рабочая директория, где хранятся файлы зон. Если не указана — используется /var/named directory "/var/named";
forwarders Серверы, на которые перенаправляются запросы, если DNS не обслуживает их локально forwarders { 8.8.8.8; 8.8.4.4; };
forward Логика работы с forwarders: FIRST — сначала к форвардерам, потом локальные зоны; ONLY — только форвардеры forward only;
listen-on Интерфейсы и IP-адреса, на которых сервер принимает запросы listen-on { any; };
allow-query Список клиентов, которым разрешено выполнять запросы allow-query { any; };
allow-transfer Определяет, каким серверам разрешено получать копии зон allow-transfer { 192.168.1.2; };
allow-notify Серверы, от которых принимаются уведомления об изменениях зон allow-notify { 192.168.1.2; };
allow-recursion Клиенты, которым разрешено выполнять рекурсивные запросы. По умолчанию доступ открыт для всех, но рекомендуется ограничивать allow-recursion { 192.168.1.0/24; };

Они позволяют задать базовую политику работы DNS-сервера: ограничить доступ, указать доверенные сети и задать маршрутизацию запросов.

Тестирование работоспособности

После установки и настройки важно проверить, что DNS-сервер корректно отвечает на запросы. Для этого можно использовать стандартные утилиты командной строки — nslookup и dig.

Проверка с помощью nslookup

Отправьте запрос с другого компьютера, указав IP-адрес вашего DNS-сервера:

nslookup site-example.com 192.172.160.14

Эта команда пытается получить IP-адрес домена site-example.com, обратившись напрямую к DNS-серверу по адресу 192.172.160.14. Если все настроено правильно, в ответе вы увидите корректный IP.

Проверка с помощью dig

Утилита dig дает более подробную информацию о работе сервера:

dig @192.172.160.14 site-example.com

В выводе будут отображены:

  • запрошенный домен;
  • IP-адрес, который вернул DNS;
  • время отклика сервера;
  • дополнительная информация (например, TTL записи).

Типы зон в BIND

Поздравляем, вы выполнили базовую настройку DNS-сервера, и теперь он готов к работе. Однако его функциональность определяют зоны. 

Зона — это набор записей, которые описывают домены и хосты. В BIND существует несколько типов зон:

  • Первичная зона. Основная база домена. Все записи (A, AAAA, MX, CNAME, TXT и другие) редактируются здесь. Этот сервер отвечает за распространение изменений на вторичные DNS. В конфигурации обозначается директивой type master;.
  • Вторичная зона. Получает данные от первичного сервера через механизм зонных передач (AXFR или IXFR). Вторичные зоны необходимы для отказоустойчивости и распределения нагрузки. В конфиге указывается type slave; и IP-адрес мастера.
  • Зона-заглушка. Хранит только список NS-записей для перенаправления запросов. Это облегченный вариант, который полезен при сложных сетевых схемах или иерархии доменов.
  • Кеширующая зона. Не содержит собственных записей, но хранит ответы на выполненные ранее запросы. Это ускоряет повторные обращения и снижает нагрузку на внешние DNS.
  • Перенаправляющая зона. Не всегда упоминается, но часто используется на практике. Все запросы передаются на указанные внешние DNS-серверы (например, Google DNS или Cloudflare).

Зоны позволяют структурировать работу DNS и упростить администрирование:

  • в локальной сети можно настроить собственный домен (например, corp.local), чтобы обращаться к серверам по именам вместо IP;
  • наличие вторичной зоны гарантирует доступность домена даже при падении основного сервера;
  • кеширующий сервер помогает ускорить работу пользователей в офисе, уменьшая количество повторных обращений к внешним DNS.

Пример минимальной первичной зоны:

Файл зоны /etc/bind/db.example.com (Ubuntu/Debian)

$TTL 86400
@   IN  SOA ns1.example.com. admin.example.com. (
        2025092501 ; serial
        3600       ; refresh
        1800       ; retry
        1209600    ; expire
        86400 )    ; minimum
    IN  NS  ns1.example.com.
    IN  NS  ns2.example.com.
ns1 IN  A   192.0.2.1
ns2 IN  A   192.0.2.2
www IN  A   192.0.2.10
mail IN  A   192.0.2.20
    IN  MX  10 mail.example.com.

Где:

  • SOA описывает авторитетный сервер и параметры зоны;
  • NS задают список DNS-серверов;
  • A связывают имена хостов с IP;
  • MX указывает сервер для почты.


Рекомендации по настройке DNS-сервера без ISPmanager

Работая с DNS-сервером напрямую, без панели управления, стоит учитывать несколько практических моментов, которые помогут избежать ошибок и сделают обслуживание удобнее.

  • Следите за файлами зон. Лучше всего хранить их в понятной структуре и давать им осмысленные имена. Так проще ориентироваться при изменениях.
  • Не забывайте про серийный номер в SOA-записи. При каждом изменении зоны его нужно увеличивать, иначе новые данные не будут подхвачены вторичными серверами.
  • Используйте вторичный сервер. Даже если нагрузка невысокая, резервный DNS обеспечит отказоустойчивость и стабильность работы.
  • Ограничивайте доступ. Не давайте рекурсивные запросы и зонные передачи всем подряд — указывайте только нужные сети и конкретные адреса.
  • Добавьте форвардеры. Укажите несколько внешних DNS (например, Google Public DNS или Cloudflare), чтобы сервер корректно обрабатывал запросы к неизвестным доменам.
  • Автоматизируйте рутинные задачи. Перезагрузка службы после изменений, проверка синтаксиса конфигурации и обновления пакетов легко выносятся в скрипты.
  • Следите за логами. Ошибки синтаксиса или проблемы с зонами быстро выявляются через журналы системы.
  • Делайте резервные копии. Конфигурационные файлы и зоны лучше сохранять отдельно, чтобы в случае сбоя можно было быстро восстановить работу.
  • Документируйте настройки. Даже простая заметка с IP-адресами, списком зон и особенностями конфигурации упростит сопровождение в будущем.

Заключение

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

Предыдущая статья
Как создать bat файл
Следующая статья
Как удалить пользователя в Ubuntu