net/dns

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}"