Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #51, ФЕВРАЛЬ 2005 г.

Бронебойный DNS

Антон Карпов, toxa@cterra.ru

Спецвыпуск: Хакер, номер #051, стр. 051-044-2


# cd /usr/ports/dns/djbdns %26%26 make install clean

Добавляем пользователей для работы dnscache, tinydns и axfrdns, так как в целях безопасности каждый из демонов запускается под своей учетной записью. Обработчик логов запускается под отдельной учетной записью dnslog:

# pw adduser -d /dev/null -s /usr/sbin/nologin -c "DJBDNS dnscache user" dnscache

# pw adduser -d /dev/null -s /usr/sbin/nologin -c "DJBDNS tinydns user" tinydns

# pw adduser -d /dev/null -s /usr/sbin/nologin -c "DJBDNS axfrdns user" axfrdns

# pw adduser -d /dev/null -s /usr/sbin/nologin -c "DJBDNS dnsclog user" dnslog

Для работы dnscache должна быть создана необходимая иерархия каталогов при помощи утилиты dnscache-conf:

# dnscache-conf dnscache dnslog /usr/local/etc/djbdns/dnscache 192.168.0.1

Аргументы, переданные утилите, очевидны: %26lt;учетная запись dnscache%26gt; %26lt;учетная запись dnslog%26gt; %26lt;рабочий каталог%26gt; %26lt;адрес, на котором будет слушать dnscache%26gt;

Можно указать dnscache работать в качестве форвардера пересылая все запросы к dns-серверу провайдера и кешируя результат:

# echo prov.dns.serv.ip %26gt; /usr/local/etc/djbdns/dnscache/root/servers/@

# echo 1 %26gt; /etc/dnscache/env/FORWARDONLY

Разрешим нашей подсети доступ к кешу:

# touch /usr/local/etc/djbdns/dnscache/root/ip/192.168.0

Для запуска dnscache жизненно необходимо наличие daemontools, подробнее о которых читай в статье про почтовый сервер в этом же номере.

# cd /usr/ports/sysutils/daemontools

# make install clean

# echo 'svscan_enable="YES"' %26gt;%26gt; /etc/rc.conf

# mkdir /var/service

Запустим dnscache: создай символическую ссылку в каталоге, обслуживаемом установленными ранее daemontools:

# ln -s /usr/local/etc/djbdns/dnscache /var/service

Ждем секунд десять и передаем проверку работы dnscache утилите из daemontools svstat:

# svstat /var/service/dnscache

/var/service/dnscache: up (pid 13722) 13 seconds

И все. Никаких проблем с named.conf. Софт djb вообще отличается тем, что его можно конфигурировать с помощью команды echo ;). Прописываем 192.168.0.1 в качестве nameserver:

# echo nameserver 192.168.0.1 %26gt; /etc/resolv.conf

DNS на страже имен

На очереди ответственный за зону DNS-сервер – tinydns, который конфигурируется похожим образом (заметь, что он вешается на внешний интерфейс):

# tinydns-conf tinydns dnslog /usr/local/etc/djbdns/tinydns 11.22.33.44

# ln -s /usr/local/etc/djbdns/tinydns /var/service

# svstat /var/service/tinydns

/var/service/tinydns: up (pid 13821) 16 seconds

Как только речь заходит о настройке зоны DNS, в голове сразу возникают ассоциации с ворохом файлов в namedb: опечатки, когда ничего не работает из-за того, что забыл поставить точку, неочевидный синтаксис конфигурационных файлов и прочие радости сношения с пакетом BIND.

Можешь расслабиться. Разумеется, чтобы понять все тонкости настройки, тебе придется прочитать документацию к tinydns, однако смотри пример создания зоны с SOA двумя MX-записями и несколькими хостами. И если ты скажешь, что это сложно, то ты - мой злейший враг на всю жизнь ;).

Назад на стр. 051-044-1  Содержание  Вперед на стр. 051-044-3