Задачи: Выстроить BIND8 (NAMED) в песочнице - (в ограниченном(закрытом) собственным окружением). Возможности: Операционная Система FreeBsd v.4 - v.5., BIND8, Требования: Минимальные знания систем UNIX, OS FreeBSD. Авторство: Все что здесь написано, может быть использовано всеми, кто найдет эту статью. Я являюсь автором только по содержанию и смыслу. В этой статье были использованы материалы с сайтов: http://freebsd.org http://www.isc.org
Использование: Понимание данной статьи, как приложение к страничке помощи по настройке. Любые возможные потери или утраты в связи с использованием этой статьи, не возмещаются. Установка происходит используя: или Дистрибутив 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# fetch ftp://ftp.isc.org/isc/bind/src/8.3.7/bind-src.tar.gz или dns-pro# fetch ftp://ftp.isc.org/isc/bind/src/8.4.6/bind-src.tar.gz
bind-src.tar.gz 100% of 1383 kB 32 kBps 00m00s dns-pro# tar xfz bind-src.tar.gz dns-pro# cd src
Теперь надо подправить строку в файле port/freebsd/Makefile.set, для этого: dns-pro# ee port/freebsd/Makefile.set dns-pro# make clean
Теперь дописываем в строку 'CDEBUG=-O2 -g -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat' опцию -static полуится так: 'CDEBUG=-O2 -g -static -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat'
Теперь Продолжим... 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"; }; Пробуем перезапустить систему и надеемся на успешное выполнение задачи. dns-pro# shutdown -r now проверяем после загрузки
----------------------------------------------------------------------------------------------------------
|