Я думаю, что для человека открывшего эту статью очевидно, что настройка чего-либо в ALT-Linux отличается от обычной настройки сервиса на других дистрибутивах, иногда в мелочах, а порой она является абсолютно уникальной. Для настройки DNS cервера я буду использовать DNS bind.
1. Установка BIND
sudo apt-get update
sudo apt-get install bind
2. Настройка основного конфига
В ALT Linux основной файл конфигурации BIND (named.conf) заменён на options.conf, он находится в /etc/bind/options.conf.
Минимальная рабочая конфигурация :
options {
version "unknown"; // Скрыть версию BIND
directory "/etc/bind/zone"; // Путь к файлам зон
pid-file none; // Отключить PID-файл
// Слушать на всех интерфейсах
listen-on { any; };
listen-on-v6 { any; };
// Разрешить запросы от всех (небезопасно!)
allow-query { any; };
allow-query-cache { any; };
allow-recursion { any; };
// Отключить форвардинг (обращаться к корневым серверам)
forwarders { };
forward none;
};
Всё остальное можете оставить закоментированным.
3. Создание зон
Зоны хранятся в local.conf (файл находится в /etc/bind/local.conf)
3.1. Прямая зона (домен)
zone "au-team.ru" {
type master;
file "master/au-team.ru"; // Путь относительно directory
};
//Здесь в строчку file можно заполнить разными способами, я для своего удобства помещаю основную зону в директорию master, НО возможны ещё несколько вариантов, например:
- file "au-team.ru"; // Если вы хотите хранить зоны просто в директории zone (/etc/bind/zone) а не в master
- file "/mnt/folder/zone/au-team.ru"; // Если вы храните зоны не в директории по умолчанию
3.2. Обратные зоны (PTR)
Для сетей 192.168.88.0/24 и 172.16.55.0/24(Прямая зона будет одной для обоих ptr зон):
zone "88.168.192.in-addr.arpa" {
type master;
file "master/88.168.192.in-addr.arpa";
};
zone "55.16.172.in-addr.arpa" {
type master;
file "master/55.16.172.in-addr.arpa";
};
//С обратными зонами работает тоже правило, что и с прямыми, вы можете создавать их где угодно
Важно:
- Если сети имеют одинаковые первые октеты (например, 192.168.88.0/24 и 192.168.55.0/24), можно объединить их в одной зоне:
zone "168.192.in-addr.arpa" {
type master;
file "master/168.192.in-addr.arpa";
};
3.3 Второй способ создания прямой и обратной зоны
Вы можете написать для PTR зон и прямой зоны путь к одному файлу зон,то есть ваша настройка local.conf, будет выглядеть так:
zone "au-team.ru" {
type master;
file "au-team.ru";
};
zone "88.168.192.in-addr.arpa" {
type master;
file "au-team.ru";
};
zone "55.16.172.in-addr.arpa" {
type master;
file "au-team.ru";
};
Так тоже можно, как мне кажется, это несовсем удобно,но возможны разные варианты записи.
4. Подготовка файлов зон
4.1. Создание директорий
sudo mkdir -p /etc/bind/zone/master
4.2. Базовые файлы зон
Скопируйте шаблоны:
sudo cp /etc/bind/zone/localdomain /etc/bind/zone/master/au-team.ru
sudo cp /etc/bind/zone/127.in-addr.arpa /etc/bind/zone/master/88.168.192.in-addr.arpa
5. Настройка зон
5.1. Прямая зона (au-team.ru)
$TTL 1D
@ IN SOA ws-1.au-team.ru. admin.au-team.ru. (
2025020600 ; Serial
12H ; Refresh
1H ; Retry
1W ; Expire
1H ; Negative TTL
)
IN NS ws-1.au-team.ru.
IN A 192.168.88.205
ws-1 IN A 192.168.88.205
ws-2 IN A 192.168.88.204
ws-3 IN A 172.16.55.10
www IN CNAME ws-2.au-team.ru.
5.2. Обратная зона (88.168.192.in-addr.arpa)
Для каждой отличной сети разные обратные зоны.
$TTL 1D
@ IN SOA ws-1.au-team.ru. admin.au-team.ru. (
2025020600 ; Serial
12H ; Refresh
1H ; Retry
1W ; Expire
1H ; Negative TTL
)
IN NS ws-1.au-team.ru.
205 IN PTR ws-1.au-team.ru. ; Для IP 192.168.88.205
204 IN PTR ws-2.au-team.ru. ; Для IP 192.168.88.204
5.3 Зона при едином файле для PTR и для прямой зоны
$TTL 1D
@ IN SOA ws-1.au-team.ru. admin.au-team.ru. (
2025020600 ; Serial
12H ; Refresh
1H ; Retry
1W ; Expire
1H ; Negative TTL
)
IN NS ws-1.au-team.ru.
IN A 192.168.88.205
ws-1 IN A 192.168.88.205
ws-2 IN A 192.168.88.204
ws-3 IN A 172.16.55.10
www IN CNAME ws-2.au-team.ru.
205 IN PTR ws-1.au-team.ru. ; Для IP 192.168.88.205
204 IN PTR ws-2.au-team.ru. ; Для IP 192.168.88.204
6. Настройка клиентов
6.1. Указание DNS-сервера
В ALT Linux редактируйте /etc/resolv.conf(лучше настраивайте его,а не /etc/net/ifaces/ens18/resolv.conf), хотя конфигурация в /etc/resolv.conf порой может заменить адрес на loopbuck:), но так хотя бы 100% вы получите подключение к DNS серверу.
echo "nameserver 192.168.88.205" > /etc/resolv.conf
7. Запуск и проверка
# Проверка синтаксиса
sudo named-checkconf /etc/bind/options.conf
# Проверка зоны
sudo named-checkzone au-team.ru /etc/bind/zone/master/au-team.ru
# Перезапуск BIND
sudo systemctl restart bind
8. Рекомендации по безопасности
- Ограничьте доступ:
allow-query { 192.168.88.0/24; }; Ограничивает круг клиентов, которые могут отправлять запросы к серверу.
allow-recursion { 192.168.88.0/24; }; Определяет, кто может выполнять рекурсивные запросы (когда сервер сам ищет ответ, обращаясь к другим DNS).
- Запретите трансфер зон:
allow-transfer { none; }; Контролирует, кто может запрашивать трансфер зоны
9. Частые ошибки
- Ошибка в IP-адресах:
Адреса вида .0 (сетевые) или .255 (широковещательные) не должны использоваться для хостов. - Некорректные PTR-записи:
Для IP 192.168.88.204 PTR-запись должна быть:
04.88.168.192.in-addr.arpa. IN PTR ws-2.au-team.ru.
Готово! Вы должны увидеть заветные пинги по доменным именам:)