Меню

Bind9 настройка freebsd 10

Bind9 настройка freebsd 10

Прямой и обратный DNS.


Первичные и вторичные серверы имен.


Конфигурационные файлы BIND

named.root
Файл named.root должен присутствовать обязательно, и редактировать его не надо. В нем перечислены корневые серверы имен. Когда сервер имен получает запрос информации о сайте, которой нет в его кэше, он обращается к корневым серверам имен. Корневые серверы имен идентифицируются по IP-адресам, и все сообщество Интернета стремиться изменять эти IP-адреса как можно реже. Поэтому данный файл изменяется нечасто.

localhost-forward.db и localhost-reverse.db
Это файлы прямой и обратной зон для хоста localhost на вашем компьютере.

named.conf
Основу конфигурации сервера DNS составляет конфигурационный файл демона named, named.conf. Если в файле named.conf есть ошибки, сервер имен будет неработоспособен. Именно здесь хранятся главные настройки DNS.

Довольно теории. Переходим к практике. У меня на работе появилась необходимость поднять dns-сервер для джабера и локального сайта. Не охота прописывать адреса сервисов в виде ip, вдруг поменяю ip-адрес, потом на 100 компах перенастраивать. Поэтому решил поднимать dns.

Ставить буду на только что установленную систему.

Проверяю версию уже установленного named:

Ищу более новую версию в портах:

Есть более новая версия, вот ее и буду ставить.

Итак, переходим в директорию /etc/namedb/ и редактируем конфигурационный файл named.conf.

Итак, у нас есть конфигурационный файл, который сообщает демону named, за какой домен тот отвечает и где расположен файл с информацией об этом домене. Но сам этот файл еще надо создать.
В директории /etc/namedb/master/ создаю файл зоны mydomain.local со следующим содержанием:

Ну и последнее это название DNS сервера и соответствия имен с IP-адресами:

RNDC – это утилита, позволяющая управлять демоном named. Проста в установке. Запустим команду:

Я буду использовать rndc локально, поэтому достаточно сделанное.

Подготовка к запуску.

Открываем файл /etc/rc.conf (для автозапуска после ребута) и дописываем в него:

Откроем файл /etc/syslog.conf и допишем в него:

!named
*.* /var/log/named.log

Создадим пустой файл /var/log/named.log:

выставим на этот файл права:

Перезапустим процесс syslogd для того чтобы он перечитал конфиг:

смотрим, что у нас в логах:

Если мы видим сообщение похожее на:

loading configuration from ‘/etc/namedb/named.conf’
zone bgap.local/IN: loaded serial 2010021701
zone bgap.local/IN: sending notifies (serial 2010021701)

значит все сделали правильно.

У меня все запустилось и работает.

P.S. После редактирования файла конфигурации named.conf или файла зон, при перезапуске named появляется такая запись:

Mar 10 08:43:18 named[711]: the working directory is not writable

Это связано с тем, что при редактировании выше указанных файлов, меняется их владелец с bind на root. Чтобы не появлялась такая запись, нужно сменить владельца:

Теперь все нормально.

Использованная литература:
1.М.Лукас «FreeBSD. Подробное руководство»

Читайте также:  Настройка wifi роутера билайн zte mf90

McD, 2010-03-22 в 13:53:50

Уместно будет добавить про ACL-и
allow-recursion
allow-transfer
allow-notify

baloon, 2010-03-22 в 14:12:41

Было бы неплохо написать, что такое форвардинг.

Krotchy, 2010-03-22 в 14:30:44

В 8ке что бы не было сообщения (если менять, то при каждом перезапуске будет это сообщение, не годится при DDNS, автор можешь исправить)
Mar 10 08:43:18 named[711]: the working directory is not writable
нужно в файле /etc/mtree/BIND.chroot.dist исправить первую строчку на

/set type=dir uname=bind gname=bind mode=0755
И тогда chown & chmod не понадобятся после рестарта сервиса

ни в коем случае не делайте по совету Roman’а
а для зон DDNS лучше пользуйтесь папкой /etc/namedb/dynamic

olenevod, 2010-04-30 в 9:57:42

при первом же перезапуске bind-a владельцы каталога master меняются на root:wheel и снова \»working directory is not writable\»

xinn, 2010-05-04 в 11:53:18

Прописываем правило разрешающее слушать udp:53 и tcp:53 для юзера с uid:53.
Замечание: Поскольку набор правил интерпретируется непосредственно ядром, для ID пользователя, группы и номера порта могут быть использованы только числовые значения.
#sysctl security.mac.portacl.rules=»uid:53:tcp:53,uid:53:udp:53″

Чтобы пересобрать ядро с встроенным модулем добавляем
option MAC_PORTACL
в файл конфигурации ядра

так то же делать нельзя:
xinn, 2010-05-04 в 11:53:18

Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

Источник

FreeBSD: установка и настройка сервера BIND

По-умолчанию, BIND устанавливается вместе с системой. Но лучше перепроверить версию.

И смотрим — что у нас есть в портах:

# make search name=bind9 | less

Находим последнюю версию:

Значит — установим более новую версию.

Не забываем обновить порты:

# portsnap fetch update

Переходим и запускаем конфигурирование:

# cd /usr/ports/dns/bind99
# make config-recursive

В первом окне выбираем опцию:

[*] REPLACE_BASE Replace base BIND with this version

что бы обновить установленную версию BIND-а.

Проверить это можно так:

/var/named/etc/namedb/:
94731 dynamic 94732 master 94735 named.conf 94736 named.root 94741 rndc.conf.sample 94750 rndc.key 94733 slave 94747 touch 94734 working

Приступаем к конфигурированию.

Создадим файлы логов и изменим владельца:

Настроим дополнительное логгирование. В конец файла /etc/syslog.conf добавляем две строки:

# chown bind:bind /var/log/named.log

Переходим в каталог сервера BIND и создадим копию файла конфигурации (на всякий случай):

Читайте также:  Настройка бесплатных каналов нтв

# cd /var/named/etc/namedb/
# cp named.conf /home/setevoy/backups/configs/named.conf.default

Удалим старый файл named.conf :

# pwd
/var/named/etc/namedb
# rm named.conf

Создадим новый и заполним его:

options <
directory «/etc/namedb»;
dump-file «/var/named/data/cache_dump.db»;
pid-file «/var/run/named/pid»;
statistics-file «/var/named/data/named_stats.txt»;
memstatistics-file «/var/named/data/named_mem_stats.txt»;
listen-on port 53 < 77.120.106.40; >;
# allow-query < localhost; >;
# recursion yes;
allow-recursion <
127.0.0.1;
10.0.0.0/24;
>;
forwarders <
77.120.112.133;
82.144.220.2;
82.144.220.7;
>;
version «this is my bind :)»;
>;

zone «.» <
type hint;
file «named.root»;
>;

zone «localhost» <
type master;
file «master/localhost-forward.db»;
>;

zone «127.in-addr.arpa» <
type master;
file «master/localhost-reverse.db»;
>;

zone «website.co.ua» <
type master;
file «/var/named/zones/master/website.co.ua»;
>;

zone «setevoy.org.ua» <
type master;
file «/var/named/zones/master/setevoy.org.ua»;
>;

zone «it-news.in.ua» <
type slave;
file «/var/named/zones/slave/it-news.in.ua»;
masters<46.164.129.74; >;
>;

Опции named.conf

Рабочая директория сервера BIND, менять не надо:

Файл для хранения кеша ответов сервера:

Тут хранится запись номера PID демона named, менять не надо:

Файл для хранения статистики запросов к серверу:

Файл для хранения статистики использования памяти:

Указать определенный IP и порт для работы named (например — можно «завернуть» его только внутрь локальной сети):

Разрешить запросы к серверу всем:

Разрешить рекурсивные запросы всем клиентам о любых доменах:

Разрешить рекурсивные запросы только с определенных IP и/или сетей (более правильное решение):

Адреса серверов DNS, которым будем отправлять рекурсивные запросы, необязательный параметр, у меня указаны DNS дата-центра:

forwarders <
77.120.112.133;
82.144.220.2;
82.144.220.7;
>;

Прячем версию нашего BIND:

version «this is my bind :)»;

Далее идет перечисление файлов зон.

Корневая всех доменов:

zone «.» <
type hint;
file «named.root»;
>;

Наша локальная зона:

zone «localhost» <
type master;
file «master/localhost-forward.db»;
>;

Обратная локальная зона (содержит PTR-запись):

zone «127.in-addr.arpa» <
type master;
file «master/localhost-reverse.db»;
>;

Далее идет описание обслуживаемых доменов.

Для домена setevoy.org.ua это сервер будет primary DNS, т.е. основным сервером:

zone «setevoy.org.ua» <
type master;
file «/var/named/zones/master/setevoy.org.ua»;
>;

Для домена it-news.in.ua мы будем secondary DNS, т.е. вторичным сервером:

zone «it-news.in.ua» <
type slave;
file «/var/named/zones/slave/it-news.in.ua»;
masters<46.164.129.74; >;
>;

Создадим файл зоны для setevoy.org.ua:

# cat /var/named/zones/master/setevoy.org.ua
$TTL 3600
@ IN SOA ns1.setevoy.org.ua. root.setevoy.org.ua. (
2012080401 ; Serial
3600 ; Refresh
900 ; Retry
3600 ; Expire
3600 ; Minimum
)
@ IN NS ns1.setevoy.org.ua.
@ IN NS ns3.dc.volia.com.
@ MX 10 mx.setevoy.org.ua.
@ IN A 77.120.106.40
www IN A 77.120.106.40
mx IN A 77.120.106.40
ns1 IN A 77.120.106.40

ВАЖНО: после каждого изменения строка Serial должна увеличиваться на 1 цифру в конце, иначе secondary NS не обновит у себя файл зоны домена. Подробно описывать файл не буду.

Перезапускаем named:

# service named restart

Aug 3 23:48:11 akira named[1459]: all zones loaded
Aug 3 23:48:11 akira named[1459]: running

Одна из самых частых ошибок выглядит в логе так:

Aug 3 23:48:11 akira named[1459]: zone website.co.ua/IN: loading from master file /var/named/zones/master/website.co.ua failed: file not found
Aug 3 23:48:11 akira named[1459]: zone website.co.ua/IN: not loaded due to errors.

Читайте также:  Настройки iptv модем ростелеком

Ошибка была в самом файле зоны /var/named/zones/master/website.co.ua — не там поставил скобку.

Далее настроим утилиту rndc.

и получаем такое сообщение:

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 «»*****************************»;
# >;
#
# controls <
# inet 127.0.0.1 port 953
# allow < 127.0.0.1; >keys < «rndc-key»; >;
# >;
# End of named.conf

Создаем файл rndc.conf и в него вписываем содержимое строк между # Start of rndc.conf и # End of rndc.conf :

# cat rndc.conf
# Start of rndc.conf
key «rndc-key» <
algorithm hmac-md5;
secret «*****************************»;
>;

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: » добавляем в конец файла named.conf и убираем комментарии, получаем:

И перезагружаем named, пока старым способом:

# service named restart
Stopping named.
Starting named.

Теперь сервером можно управлять с помощью команд утилиты rndc.

Перезапустить named:

# rndc reload
WARNING: key file (/etc/namedb/rndc.key) exists, but using default configuration file (/etc/namedb/rndc.conf)
server reload successful

Проверить статус сервера:

# rndc status
WARNING: key file (/etc/namedb/rndc.key) exists, but using default configuration file (/etc/namedb/rndc.conf)
version: 9.9.1-P2 (this is my bind :))
CPUs found: 1
worker threads: 1
UDP listeners per interface: 1
number of zones: 38
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

Команд много, добавлю их попозже в другой статье.

Добавляем named в автозапуск при старте системы в файл /etc/rc.conf :

#Enable and configure BIND
named_enable=»YES»
named_uid=»bind»
named_chrootdir=»»
named_flags=»-s»

И можно перезагрузить сервер для полной уверенности:

Во время загрузки пошли ошибки:

# less /var/log/bind/named.log | grep failed
error: zone it-news.in.ua/IN: loading from master file /var/named/zones/slave/it-news.in.ua failed: end of file
debug 1: managed-keys-zone: loading from master file managed-keys.bind failed: file not found
error: isc_stdio_read failed: end of file

Решение — создать файл managed-keys.bind в рабочем каталоге named:

# touch /var/named/etc/namedb/working/managed-keys.bind
# chmod bind:bind /var/named/etc/namedb/working/managed-keys.bind

Теперь проверим как сервер отвечает на запросы:

;; QUESTION SECTION:
;setevoy.org.ua. IN A

;; ANSWER SECTION:
setevoy.org.ua. 3600 IN A 77.120.106.40

;; AUTHORITY SECTION:
setevoy.org.ua. 3600 IN NS ns1.setevoy.org.ua.
setevoy.org.ua. 3600 IN NS ns3.dc.volia.com.

;; ADDITIONAL SECTION:
ns1.setevoy.org.ua. 3600 IN A 77.120.106.40

Вывод немного сократил, но основное видно — мы получили status: NOERROR и ответ ANSWER SECTION: setevoy.org.ua. 3600 IN A 77.120.106.40.

Проверим домен, для которого являемся secondary:

Источник

Adblock
detector