BIND (Berkeley Internet Name Domain) — самый распространённый DNS-сервер в мире. Мы установили его на выделенный сервер в ЦОД Краснодара.
Установка на Ubuntu 22.04 LTS:
# Установка BIND
sudo apt update
sudo apt install -y bind9 bind9-utils bind9-dnsutils
# Основная конфигурация
# /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
# Слушаем на внешнем IP
listen-on { 185.50.10.53; 127.0.0.1; };
listen-on-v6 { none; };
# Отключаем рекурсию (это авторитативный сервер)
recursion no;
allow-recursion { none; };
# Скрываем версию BIND
version "not disclosed";
# Ограничиваем трансферы
allow-transfer { none; }; # По умолчанию запрещаем
# DNSSEC
dnssec-validation auto;
# Rate limiting (защита от DDoS)
rate-limit {
responses-per-second 10;
window 5;
slip 2;
ipv4-prefix-length 24;
};
# Логирование
querylog yes;
};
Описание зоны в named.conf и файл зоны:
# /etc/bind/named.conf.local
# ACL для slave-серверов
acl "slaves" {
91.200.25.53; # ns2 (Москва, PowerDNS)
185.12.64.0/24; # Selectel DNS
};
# Ключ TSIG для аутентификации трансферов
key "transfer-key" {
algorithm hmac-sha256;
secret "B3s3cur3_TS1G_K3y_F0r_Tr4nsf3r=";
};
zone "megashop24.ru" {
type master;
file "/var/lib/bind/db.megashop24.ru";
allow-transfer { key "transfer-key"; };
also-notify { 91.200.25.53; }; # Уведомлять slave при изменениях
notify yes;
};
Файл зоны:
; /var/lib/bind/db.megashop24.ru
$TTL 300 ; 5 минут (короткий TTL для оперативности)
@ IN SOA ns1.megashop24.ru. admin.megashop24.ru. (
2026020101 ; Serial (YYYYMMDDNN)
3600 ; Refresh (1 час)
900 ; Retry (15 мин)
1209600 ; Expire (2 недели)
300 ; Negative TTL (5 мин)
)
; NS-записи (3 сервера в разных локациях)
@ IN NS ns1.megashop24.ru.
@ IN NS ns2.megashop24.ru.
@ IN NS ns3.megashop24.ru.
; NS glue records
ns1 IN A 185.50.10.53 ; Краснодар
ns2 IN A 91.200.25.53 ; Москва
ns3 IN A 185.12.64.53 ; Selectel Anycast
; Основной сайт
@ IN A 185.50.10.10
@ IN AAAA 2a01:db8::10
www IN CNAME @
; API
api IN A 185.50.10.11
; CDN
cdn IN CNAME cdn.megashop24.ru.cdn.cloudflare.net.
; Почта
@ IN MX 10 mail.megashop24.ru.
mail IN A 185.50.10.20
; SPF, DKIM, DMARC
@ IN TXT "v=spf1 mx ip4:185.50.10.20 -all"
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhki..."
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@megashop24.ru"
; Внутренние сервисы
admin IN A 185.50.10.12
monitoring IN A 185.50.10.13
; SRV-записи
_sip._tcp IN SRV 10 60 5060 sip.megashop24.ru.
sip IN A 185.50.10.25
Мы установили TTL 300 секунд (5 минут) вместо 24 часов. Это позволяет быстро переключать записи в случае инцидента — все DNS-резолверы в мире обновят кэш за 5 минут.
Обратите внимание на структуру зоны: мы разделили записи по логическим блокам (NS, веб, API, CDN, почта, безопасность почты, внутренние сервисы, SRV). Это упрощает администрирование — при изменении серверной инфраструктуры администратор быстро находит нужный блок. Также мы добавили полный набор записей для email-аутентификации (SPF, DKIM, DMARC), что важно для доставляемости писем и защиты от фишинга.
Rate limiting в конфигурации BIND (responses-per-second 10) — это защита от DNS amplification DDoS-атак. Без неё злоумышленник может использовать наш DNS-сервер как усилитель для атаки на третьих лиц, отправляя запросы с поддельным IP-адресом жертвы.