123 lines
3.4 KiB
Bash
123 lines
3.4 KiB
Bash
#!/bin/bash
|
|
# Базовая настройка DNS-сервера BIND
|
|
# Домен: br-srv.au-team.irpo, IP сервера: 192.168.2.2
|
|
|
|
set -e
|
|
|
|
DNS_IP="192.168.2.2"
|
|
DOMAIN="br-srv.au-team.irpo"
|
|
REVERSE_ZONE="2.168.192.in-addr.arpa"
|
|
|
|
# Создание директории для зон
|
|
mkdir -p /var/named/master
|
|
|
|
# Прямая зона
|
|
cat > /var/named/master/${DOMAIN} <<EOF
|
|
\$TTL 604800
|
|
${DOMAIN}. IN SOA ns01.${DOMAIN}. root.${DOMAIN}. (
|
|
1 ; Serial
|
|
600 ; Refresh
|
|
3600 ; Retry
|
|
1w ; Expire
|
|
360 ; Minimum TTL
|
|
)
|
|
|
|
IN NS ns01.${DOMAIN}.
|
|
IN NS ns02.${DOMAIN}.
|
|
IN NS ns03.${DOMAIN}.
|
|
IN NS test.${DOMAIN}.
|
|
|
|
ns01 IN A 192.168.10.50
|
|
ns02 IN A 192.168.10.60
|
|
ns03 IN A 192.168.10.70
|
|
test IN A 192.168.10.12
|
|
|
|
_ldap._tcp.${DOMAIN}. 3600 IN SRV 0 0 389 ns01.${DOMAIN}.
|
|
EOF
|
|
|
|
# Обратная зона
|
|
cat > /var/named/master/2.168.192.zone <<EOF
|
|
\$TTL 3600
|
|
@ IN SOA ${DOMAIN}. root.${DOMAIN}. (
|
|
20060204 ; Serial
|
|
3600 ; Refresh
|
|
900 ; Retry
|
|
3600000 ; Expire
|
|
3600 ; Minimum
|
|
)
|
|
@ IN NS localhost.
|
|
50 IN PTR ns01.${DOMAIN}.
|
|
60 IN PTR ns02.${DOMAIN}.
|
|
70 IN PTR ns03.${DOMAIN}.
|
|
12 IN PTR test.${DOMAIN}.
|
|
EOF
|
|
|
|
# Права на зоны
|
|
chown -R root:named /var/named/master
|
|
chmod 0640 /var/named/master/*
|
|
|
|
# Директория для логов
|
|
mkdir -p /var/log/bind
|
|
chown named:named /var/log/bind
|
|
chmod 750 /var/log/bind
|
|
|
|
# Конфигурация named.conf
|
|
cat > /etc/named.conf <<EOF
|
|
options {
|
|
listen-on port 53 { 127.0.0.1; ${DNS_IP}; };
|
|
listen-on-v6 port 53 { none; };
|
|
directory "/var/named";
|
|
dump-file "/var/named/data/cache_dump.db";
|
|
statistics-file "/var/named/data/named_stats.txt";
|
|
memstatistics-file "/var/named/data/named_mem_stats.txt";
|
|
allow-query { any; };
|
|
forward first;
|
|
forwarders { 8.8.8.8; };
|
|
recursion yes;
|
|
dnssec-enable yes;
|
|
dnssec-validation yes;
|
|
bindkeys-file "/var/named/named.iscdlv.key";
|
|
managed-keys-directory "/var/named/dynamic";
|
|
pid-file "/run/named/named.pid";
|
|
session-keyfile "/run/named/session.key";
|
|
};
|
|
|
|
logging {
|
|
channel "misc" {
|
|
file "/var/log/bind/misc.log" versions 4 size 4m;
|
|
print-time yes;
|
|
print-severity yes;
|
|
print-category yes;
|
|
};
|
|
|
|
channel "query" {
|
|
file "/var/log/bind/query.log" versions 4 size 4m;
|
|
print-time yes;
|
|
print-severity no;
|
|
print-category no;
|
|
};
|
|
|
|
category default { "misc"; };
|
|
category queries { "query"; };
|
|
};
|
|
|
|
zone "${DOMAIN}" {
|
|
type master;
|
|
file "master/${DOMAIN}";
|
|
};
|
|
|
|
zone "${REVERSE_ZONE}" {
|
|
type master;
|
|
file "master/2.168.192.zone";
|
|
};
|
|
|
|
include "/etc/named.rfc1912.zones";
|
|
include "/etc/named.root.key";
|
|
EOF
|
|
|
|
# Перезапуск службы
|
|
systemctl restart named
|
|
systemctl enable named
|
|
|
|
echo "✅ Настройка DNS-сервера завершена"
|
|
echo "Проверка: nslookup test.${DOMAIN} ${DNS_IP}" |