Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
Проверяю версию уже установленного named:
|
Обновляю порты:
|
Ищу более новую версию в портах:
|
Есть более новая версия, вот ее и буду ставить.
|
Появилось окно конфига. Выбираем опцию REPLACE_BASE, чтобы заменить уже имеющимся в системе версию той, что мы устанавливаем. Все программа установилась, приступаем к ее настройке.
Итак, переходим в директорию /etc/namedb/ и редактируем конфигурационный файл named.conf.
|
Итак, у нас есть конфигурационный файл, который сообщает демону named, за какой домен тот отвечает и где расположен файл с информацией об этом домене. Но сам этот файл еще надо создать.
В директории /etc/namedb/master/ создаю файл зоны mydomain.local со следующим содержанием:
|
Немного поясню, что тут написано.
Инструкция $TTL задает время жизни зоны (в сек.). Это значение определяет, как долго другие серверы будут кэшировать информацию об этой зоне:
|
Следующая запись - Start of Authority (SOA, начало авторитетности).
|
Тут представлено краткое описание зоны - каково ее поведение и как серверам следует себя с ней вести.
Символ @ - это специальное сокращение для зоны, указанной в named.conf. В моем случае это mydomain.local.
IN представляет тип данных - данные Интернета.
SOA означает запись Start of Authority.
Следующая часть - имя машины. Обратите внимание, что в конце имени стоит точка. Точка ставится для того ,чтобы в конце имени не добавлялась запись домена. Например, если мы не поставим точку в конце имени ns.mydomain.local, то фактическое имя компьютера станет:
|
Далее следует адрес электронной почты человека, ответственного за эту зону. Первую точку в адресе электронной почты следует рассматривать как заменитель символа @.
|
Ну и последнее это название DNS сервера и соответствия имен с IP-адресами:
|
RNDC
RNDC – это утилита, позволяющая управлять демоном named. Проста в установке. Запустим команду:
|
Я буду использовать rndc локально, поэтому достаточно сделанное.
Подготовка к запуску.
Открываем файл /etc/rc.conf (для автозапуска после ребута) и дописываем в него:
named_enable="YES" named_program="/usr/sbin/named" named_flags="-u bind -c /etc/namedb/named.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. Подробное руководство"
baloon, 2010-03-22 в 14:12:41
Было бы неплохо написать, что такое форвардинг.
Krotchy, 2010-03-22 в 14:30:44
пару слов о view?
Roman, 2010-03-22 в 23:19:17
В 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 не понадобятся после рестарта сервиса
ban, 2010-03-27 в 0:52:04
ни в коем случае не делайте по совету 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
У меня, запущенный named -u bind, ругается на невозможность забиндить 53й порт ни одном из IP'шников.
Как выяснилось, это из-за запрета на бинд портов <1023 касающихся обычных юзеров, но не касающихся root'а.
Выход нагуглился в модуле MAC portacl http://www.freebsd.org/doc/ru/books/handbook/mac-portacl.html
Смысл в том, что этот модуль ядра заменяет собой штатное средство защиты FreeBSD, но в отличии от него, позволяет устанавливать правила исключений.
Вкратце:
Загружаем модуль на лету
#kldload mac_portacl.ko
Чтобы загружался при загрузке
#echo "mac_portacl_load="YES" >>loader.conf
Прописываем правило разрешающее слушать udp:53 и tcp:53 для юзера с uid:53.
Замечание: Поскольку набор правил интерпретируется непосредственно ядром, для ID пользователя, группы и номера порта могут быть использованы только числовые значения.
#sysctl security.mac.portacl.rules="uid:53:tcp:53,uid:53:udp:53"
Чтобы пересобрать ядро с встроенным модулем добавляем
option MAC_PORTACL
в файл конфигурации ядра
phantom, 2011-06-22 в 10:30:09
так то же делать нельзя:
xinn, 2010-05-04 в 11:53:18
У меня, запущенный named -u bind, ругается на невозможность забиндить 53й порт ни одном из IP'шников.
Как выяснилось, это из-за запрета на бинд портов <1023 касающихся обычных юзеров, но не касающихся root'а.
Выход нагуглился в модуле MAC portacl http://www.freebsd.org/doc/ru/books/handbook/mac-portacl.html
...
Для этого bind запускается в песочнице. Ищите по словам jail и chroot
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
McD, 2010-03-22 в 13:53:50
Уместно будет добавить про ACL-и
allow-recursion
allow-transfer
allow-notify