Установка Bind (named) на CentOS
В этой заметке рассмотрим установку bind на CentOS в chroot и синхронизацию (в том числе создание/удаление зон на первом и втором ДНС-сервере).
Ставим
Создаем файл /var/named/chroot/etc/named.conf
listen-on port 53 { 1.2.3.1; };
directory "/var/named";
allow-query { any; };
recursion no;
allow-transfer { none; };
version "no version info";
};
include "/var/named/zone.conf";
Создаем файл /var/named/chroot/var/named/zone.conf
type master;
file "domain1.com.conf";
allow-update { none; };
};
zone "domain2.com" IN {
type master;
file "domain2.com.conf";
allow-update { none; };
};
Ну и файлы зон, например, /var/named/chroot/var/named/domain.com.conf
domain.com. IN SOA ns1.dnsdomain.com. root.domain.com. (
20010610 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.dnsdomain.com.
@ IN NS ns2.dnsdomain.com.
@ IN A 1.2.3.1
www IN CNAME @
@ IN MX 10 mail.domain.com.
mail IN A 1.2.3.1
На втором сервере делаем все точно так же.
Теперь про синхронизацию зон.
На первом сервере:
ssh-keygen -b 1024 -t dsa
На втором сервере:
cd /home/srv-dns-acct/
mkdir .ssh
В файл .ssh/authorized_keys копируем id_dsa.pub с первого сервера
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
chown -R srv-dns-acct /var/named/chroot/var/named
chmod +x /var/named/
chmod +x/var/named/chroot/
chmod +x /var/named/chroot/var/
На первом сервере создаем файл /var/named/dnssync.sh:
cd /var/named/chroot/var/named/
tar czvf - *.conf | ssh srv-dns-acct@ns2.domain.com tar xzf - -C /var/named/chroot/var/named/
Для добавления зон на одном сервере можно пользоваться таким скриптом:
# first param - domain, Second - IP
# Domains base
BASE="/var/named/chroot/var/named"
sed -e "s/domain.com/$1/g" "$BASE/sample" > "$BASE/$1.db.tmp"
sed -e "s/1.2.3.4/$2/g" "$BASE/$1.db.tmp" > "$BASE/$1.conf"
echo "zone \"$1\" { type master; file \"$BASE/$1.conf\"; };" >> $BASE/zone.conf
rm "$BASE/$1.db.tmp"
service named reload