Задачи: Выстроить BIND8.x (NAMED) в песочнице - (в ограниченном(закрытом) собственным окружением). Возможности: Операционная Система FreeBsd v.4 - v.5., BIND8, Требования: Минимальные знания систем UNIX, OS FreeBSD.
Использование: Понимание данной статьи, как приложение к страничке помощи по настройке. Любые возможные потери или утраты в связи с использованием этой статьи, не возмещаются. Установка происходит используя: или Дистрибутив BIND8 или Port для FreeBsd /usr/ports/dns/bind8 или Статически скомпонованная готовая сборка BIND8 в системе.
Вступление: Любое программное обеспечение, требует собственные ресурсы на сервере, а так же в целом любое ПО не может считаться идеальным в практическом смысле. Тем самым используя общие ресурсы и имея доступ хотябы для чтения в каталог корня ОС от имени какого либо даемона(сервиса), запущенного на сервере, мы рискуем поставить под угрозу другие сервисы, запущенные рядом, к которым может получить доступ недоброжелатель или взломщик. Этим мы подверждаем, что чем больше будет сделано администратором системы барьеров для попытки взлома ПО, тем менее опаснее станет использование самой ОС в целом.
В данной статье мы рассмотрим запуск сервиса named, в папке, из которой сам сервис не может получить доступ к корню самой системы. "Запуск в песочнице" или chroot, как мы называем это, дает на возможность безопасно для остальных сервисов полноценно запускать даемон named-а, в собственном окружении.
Изначально это статья рекомендована для использования в частных или не частных целях, для администраторов с плохой памятью, как у меня, для быстрого поднятия BIND8 в песочнице.
помощью Дистрибутива BIND8: Распакуйте архив или выберите иной dns-pro# cd /home/chroot dns-pro# mkdir bind8 dns-pro# cd bind8
Теперь Продолжим... dns-pro# make depend dns-pro# make all dns-pro# rm .settings dns-pro# make install
Все, программа установленна на сервер. Приступаем к запуску в песочнице(chroot) По умолчанию, в системе FreeBSD , named распологается в папке /etc/namedb. Не будем ничего менять в этом, пусть будет так.
Создаем директории в этой папке и нужные изменения.
dns-pro# cd /etc/namedb dns-pro# mkdir -p bin dev etc var/tmp var/run var/run/named master slave usr usr/sbin dns-pro# chown bind:bind slave var/* dns-pro# cp /etc/localtime etc/ dns-pro# mv named.conf etc && ln -sf etc/named.conf dns-pro# cp -f /usr/libexec/named-xfer bin/named-xfer dns-pro# cp -f /usr/sbin/named usr/sbin/named dns-pro# cd dev && mknod null c 2 2 dns-pro# chmod 666 null
Теперь нужно создать линк на консоль управления намеда, при каждом старте системы. Линк нужен для управления намедом из коммандной строки(#ndc start|restart|stop|etc) Она будет создаваться с помощью cron. dns-pro# crontab -e впишем: @reboot /bin/ln -sf /etc/namedb/var/run/ndc /var/run/ndc
Далее для того чтобы в syslog named смог писать сообщения, дописываем дополнительную опцию в /etc/rc.conf А так же впишем дополнительные опции для разрещения старта. dns-pro# ee /etc/rc.conf named_enable="YES" named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf" named_pidfile="/var/run/named/pid" named_chrootdir="" #Для систем с автоматической установкой chroot(FreeBSD_5.*_STABLE) named_chroot_autoupdate="NO" #Для систем с автоматической установкой chroot(FreeBSD_5.*_STABLE) syslogd_flags="-l /etc/namedb/dev/log"
Далее мы редактируем сам named.conf dns-pro# ee /etc/namedb/named.conf // управляющий сокет ndc controls { unix "/var/run/ndc" perm 0600 owner 0 group 0; }; options { directory "/"; named-xfer "/bin/named-xfer"; notify yes; fake-iquery yes; fetch-glue no; use-id-pool yes; allow-recursion { 192.168.0.0/24; localhost; }; allow-query { any; }; version "DNS server"; allow-transfer { 80.78.179.175; 193.219.141.235; }; query-source address * port 53; dump-file "s/named_dump.db"; pid-file "/var/run/named/pid"; };