Представим себе ситуацию, когда Вам необходимо поднять свой собственный ДНС сервер. К примеру, Вам необходимо поднять свой домен, а платить провайдерам Вам влом.
Переходим в каталог named
cd /etc/namedb/
Делаем
mv named.conf named.conf-dist
Мы сами будем создавать свой собственный named.conf
/etc/namedb/>vi named.conf
options {
listen-on {
127.0.0.1;
213.125.15.4;
};
allow-query { any; };
recursion no;
version “8.2.4″;
directory “/etc/namedb”;
pid-file “/var/run/named/pid”;
notify yes;
};
zone “.” {
type hint;
file “named.root”;
};
zone “0.0.127.in-addr.arpa” {
type master;
file “master/localhost.rev”;
notify no;
};
Директива options определяет каталог, в котором хранятся файлы описания зон, директива zone определяет зоны, которые поддерживает сервер.
Зона “.” сервером не поддерживается. Это корневая зона. Поэтому она имеет тип hint, т.е. “подсказка” на то, где описаны серверы корневой зоны.
Зона “0.0.127.in-addr.arpa” имеет тип master, т.к. данный сервер действительно является мастером для этой зоны.
Значение version “8.2.4″; добавляется для того, чтоб злоумышленник не мог определить точную версию нашего ДНС сервер.
Значение recursion no делает запрет на рекурсию.
Значение listen-on говорит на каких ИП отрабатывать запросы.
Если мы сделаем следующее
/etc/namedb/>ll /etc/namedb/ | grep named.root
-rw-r–r– 1 root wheel 2600 Jan 12 2007 named.root
то увидим то такой файл уже существует. Тут проблем не будет. Для создания localhost.rev необходимо выполнить следующее
/etc/namedb/>sh make-localhost
/etc/namedb/>ll master/
total 8
-rw-r–r– 1 root wheel 451 Nov 15 14:27 localhost-v6.rev
-rw-r–r– 1 root wheel 451 Nov 15 14:27 localhost.rev
/etc/namedb/>
Вот в принципе и все. Дальше делаем
/etc/namedb/>echo “named_enable=”YES”" >> /etc/rc.conf
/etc/namedb/>cat /etc/rc.conf | grep named
named_enable=YES
/etc/namedb/>/etc/rc.d/named start
Starting named.
/etc/namedb/>tail -f /var/log/messages
Nov 17 12:22:34 host named[14438]: starting BIND 9.3.3 -t /var/named -u bind
Nov 17 12:22:34 host named[14438]: command channel listening on 127.0.0.1#953
Nov 17 12:22:34 host named[14438]: running
^C
/etc/namedb/>ps ax | grep named
14438 ?? Ss 0:00.02 /usr/sbin/named -t /var/named -u bind
14442 p0 R+ 0:00.00 grep named
Если у Вы видите подобное – это значит, что у Вас все работает как нужно.
Но, это еще не все. Сервер то мы запустили. А как же домен? Идем дальше.
Мы решили, что нам необходимо завести домен test.org.ua
В named.conf добавляем следующее:
zone “test.org.ua” {
type master;
file “master/test.org.ua”;
allow-transfer {
215.57.121.1;
};
};
где zone “test.org.ua” название нашей зоны, file “master/test.org.ua”; пусть где будет хранится запись о зоне, 215.57.121.1; вторичный ДНС сервер.
Создаем зону test.org.ua
/etc/namedb/>vi master/test.org.ua
; Zone file for test.org.ua
$TTL 14400
@ IN SOA test.org.ua. webmaster.test.org.ua. (
2007101501 ; serial, todays date+todays
3600 ; refresh, seconds
300 ; retry, seconds
1209600 ; expire, seconds
43200 ) ; minimum, seconds
IN NS ns1.test.org.ua.
IN NS ns.secondary.net.ua.
MX 10 ns1.test.org.ua.
IN A 213.125.15.4
ns1 IN A 213.125.15.4
www IN A 213.125.15.5
pop3 IN A 213.125.15.4
smtp IN A 213.125.15.4
mail IN A 213.125.15.4
ftp IN A 213.125.15.6
Вот собственно все и готово.
Подробно объяснять не буду что и как тут задано, есть Интернет, есть гугл.
В принципе все готово. За исключением одного.
Делаем следующее:
/etc/namedb/>/usr/sbin/rndc-confgen
# Start of rndc.conf
key “rndc-key” {
algorithm hmac-md5;
secret “PSgoANtaZ9nhGiiJMdHkNw==”;
};
options {
default-key “rndc-key”;
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key “rndc-key” {
# algorithm hmac-md5;
# secret “PSgoANtaZ9nhGiiJMdHkNw==”;
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { “rndc-key”; };
# };
# End of named.conf
Создаем файл /etc/named/rndc.conf куда добавляем следующее
/etc/namedb/>vi /etc/namedb/rndc.conf
key “rndc-key” {
algorithm hmac-md5;
secret “PSgoANtaZ9nhGiiJMdHkNw==”;
};
options {
default-key “rndc-key”;
default-server 127.0.0.1;
default-port 953;
};
А в /etc/namedb/named.conf добавляем оставшееся, и получаем полный конфиг вашего сервера:
/etc/namedb/>vi /etc/namedb/named.conf
key “rndc-key” {
algorithm hmac-md5;
secret “PSgoANtaZ9nhGiiJMdHkNw==”;
};
options {
default-key “rndc-key”;
default-server 127.0.0.1;
default-port 953;
};
options {
listen-on {
127.0.0.1;
213.125.15.4;
};
allow-query { any; };
recursion no;
version “8.2.4″;
directory “/etc/namedb”;
pid-file “/var/run/named/pid”;
notify yes;
};
zone “.” {
type hint;
file “named.root”;
};
zone “0.0.127.in-addr.arpa” {
type master;
file “master/localhost.rev”;
notify no;
};
zone “test.org.ua” {
type master;
file “master/test.org.ua”;
allow-transfer {
215.57.121.1;
};
};
Проверяем:
/etc/namedb/>rndc reload
server reload successful
/etc/namedb/>rndc status
number of zones: 2
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/1000
tcp clients: 0/100
server is up and running
/etc/namedb/>sockstat | grep named
bind named 14438 3 dgram -> /var/run/logpriv
bind named 14438 20 udp4 213.125.15.4:53 *:*
bind named 14438 21 tcp4 213.125.15.4:53 *:*
bind named 14438 22 udp4 127.0.0.1:53 *:*
bind named 14438 23 tcp4 127.0.0.1:53 *:*
bind named 14438 24 udp4 *:63739 *:*
bind named 14438 25 udp6 *:63740 *:*
bind named 14438 26 tcp4 127.0.0.1:953 *:*
Утилита rnc нам необходима для работы в сервером ДНС: перезагрузка, статус, ошибки и т.д. Вот собственно и все.
З.Ы. Если нужны логи:
logging {
channel “log_default” {
file “/var/log/named.log” versions 10 size 10m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
channel “log_security” {
file “/var/log/named-security.log” versions 5 size 10m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
channel “null” {
null;
};
category “default” { “log_default”; };
category “security” { “log_security”; };
category “unmatched” { “null”; };
};
В последний версия сервера произошли небольшие изменения касательно make-localhost. Сейчас файлы уже готовы, и находятся в директории
18:02 user@ns [/etc/namedb]#ll master/
total 14
-rw-r--r-- 1 root wheel 231 Feb 24 2008 empty.db
-rw-r--r-- 1 root wheel 253 Feb 24 2008 localhost-forward.db
-rw-r--r-- 1 root wheel 321 Feb 24 2008 localhost-reverse.db
Последние комментарии
6 недель 1 день назад
6 недель 1 день назад
6 недель 3 дня назад
6 недель 3 дня назад
6 недель 3 дня назад
6 недель 3 дня назад
6 недель 3 дня назад
6 недель 4 дня назад
6 недель 4 дня назад
6 недель 5 дней назад