Другие серверные программы

Здесь вы найдете различные пути для разделения вашей машины с остальным миром или вашей локальной сетью. Перед установкой любых пакетов из этой главы вам надо убедиться, что вы понимаете, что делает пакет и как его правильно настроить.

BIND-9.3.0p1

Введение в BIND

Пакет BIND предоставляет DNS сервер и клиентские утилиты. Если вам интересны только утилиты, то обратитесь к BIND Utilities-9.3.0p1.

Информация о пакете

Зависимости BIND

Опционально

OpenSSL-0.9.7e

Опционально (для запуска полного теста)

Net-tools-1.60 (для ifconfig) и модули Perl: Net-DNS

Опционально (для [пере]сборки документации)

OpenJade-1.3.2, JadeTeX-3.13, DocBook DSSSL Stylesheets-1.78

Установка BIND

Установим BIND запуском следующих команд:

patch -Np1 -i ../9.3.0-patch1 && sed -i -e "s/dsssl-stylesheets/&-1.78/g" configure && ./configure --prefix=/usr --sysconfdir=/etc \ --enable-threads --with-libtool && make

А теперь, как пользователь root:

make install && chmod 755 \ /usr/lib/{lib{bind9,isc{,cc,cfg},lwres}.so.?.?.?,libdns.so.20.0.0} && mv /usr/share/man/man8/named.conf.5 /usr/share/man/man5 && cd doc && install -d -m755 /usr/share/doc/bind-9.3.0/{arm,draft,misc,rfc} && install -m644 arm/*.html \ /usr/share/doc/bind-9.3.0/arm && install -m644 draft/*.txt \ /usr/share/doc/bind-9.3.0/draft && install -m644 rfc/* \ /usr/share/doc/bind-9.3.0/rfc && install -m644 \ misc/{dnssec,ipv6,migrat*,options,rfc-compliance,roadmap,sdb} \ /usr/share/doc/bind-9.3.0/misc

Для запуска полного теста перед установкой пакета вам надо установить некоторые фиктивные интерфейсы (для ifconfig). Выполним следующие команды для выполнения полного теста (вам необходимо быть пользователем root для выполнения команд ifconfig):

bin/tests/system/ifconfig.sh up && make check >check.log 2>&1 && bin/tests/system/ifconfig.sh down

Если желаете, выполните следующую команду для подтверждения, что все 145 тестов выполнены успешно:

grep "R:PASS" check.log | wc -l

Описание команд

patch -Np1 -i ../9.3.0-patch1: Существует уязвимость в коде DNSSEC Просмотрите http://www.kb.cert.org/vuls/id/938617. Этот патч устраняет ошибку.

sed -i -e ... configure: Эта команда принуждает configure искать стили DSSSL в стандартном месте BLFS.

--sysconfdir=/etc: Эта команда принуждает BIND искать файлы конфигурации в /etc вместо /usr/etc.

--enable-threads: Этот параметр включает способность multi-threading.

--with-libtool: Эта команда включает сборку динамических библиотек и связывает установленные бинарники с этими библиотеками.

cd doc; install ...: Эти команды устанавливают дополнительную документацию о пакете. Вы можете пропустить некоторые или все из этих команд.

Конфигурация BIND

Файлы конфигурации

named.conf, root.hints, 127.0.0, rndc.conf и resolv.conf

Конфигурационная информация

BIND будет настроен для запуска в chroot окружении как непривилегированный пользователь (named). Такая конфигурация более защищенная в том, что компромис DNS может действовать только на некоторые файлы в ДОМАШНЕЙ named директории пользователя.

Создадим непривилегированного пользователя и группу named:

groupadd named && useradd -m -c "BIND Owner" -g named -s /bin/false named

Установим некоторые файлы, директории и устройства, необходимые для BIND:

cd /home/named && mkdir -p dev etc/namedb/slave var/run && mknod /home/named/dev/null c 1 3 && mknod /home/named/dev/random c 1 8 && chmod 666 /home/named/dev/{null,random} && mkdir /home/named/etc/namedb/pz && cp /etc/localtime /home/named/etc

Затем сгенерируем ключ для использования в файлах named.conf и rdnc.conf, используя команду rndc-confgen:

rndc-confgen -b 512 | grep -m 1 "secret" | cut -d '"' -f 2

Создадим файл named.conf, из которого named будет считывать положение файлов зон, корневого сервера имен и ключи безопасности DNS:

cat > /home/named/etc/named.conf << "EOF" options { directory "/etc/namedb"; pid-file "/var/run/named.pid"; statistics-file "/var/run/named.stats"; }; controls { inet 127.0.0.1 allow { localhost; } keys { rndc_key; }; }; key "rndc_key" { algorithm hmac-md5; secret "[Вставьте сюда секрет из вывода rndc-confgen]"; }; zone "." { type hint; file "root.hints"; }; zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; }; // Bind 9 теперь регистрируется по умолчанию через syslog (исключая отладку). // Правила регистрации по умолчанию. logging { category default { default_syslog; default_debug; }; category unmatched { null; }; channel default_syslog { syslog daemon; // посылка на демон syslog severity info; // только посылает очередную // информацию }; channel default_debug { file "named.run"; // пишет на named.run в // рабочей директории // Замечание: stderr используется // вместо "named.run" если // сервер запущен с // опцией '-f'. severity dynamic; // регистрация на текущем // уровне отладки сервера }; channel default_stderr { stderr; // запись на stderr severity info; // только посылает очередную // информацию }; channel null { null; // сбрасывает вссе, что послано // в этот канал }; }; EOF

Создадим файл rndc.conf при помощи следующих команд:

cat > /etc/rndc.conf << "EOF" key rndc_key { algorithm "hmac-md5"; secret "[Вставьте сюда секрет из вывода rndc-confgen]"; }; options { default-server localhost; default-key rndc_key; }; EOF

Файл rndc.conf содержит информацию для контролирования операций named при помощи утилиты rndc.

Создадим файл зоны при со следующим содержанием:

cat > /home/named/etc/namedb/pz/127.0.0 << "EOF" $TTL 3D @ IN SOA ns.local.domain. hostmaster.local.domain. ( 1 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D) ; Minimum TTL NS ns.local.domain. 1 PTR localhost. EOF

Создадим файл root.hints при помощи следующих команд:

[Замечание]

Замечание

Предупреждение должно быть использовано для подтверждения, что в этом файле нет ведущих пробелов.

cat > /home/named/etc/namedb/root.hints << "EOF" . 6D IN NS A.ROOT-SERVERS.NET. . 6D IN NS B.ROOT-SERVERS.NET. . 6D IN NS C.ROOT-SERVERS.NET. . 6D IN NS D.ROOT-SERVERS.NET. . 6D IN NS E.ROOT-SERVERS.NET. . 6D IN NS F.ROOT-SERVERS.NET. . 6D IN NS G.ROOT-SERVERS.NET. . 6D IN NS H.ROOT-SERVERS.NET. . 6D IN NS I.ROOT-SERVERS.NET. . 6D IN NS J.ROOT-SERVERS.NET. . 6D IN NS K.ROOT-SERVERS.NET. . 6D IN NS L.ROOT-SERVERS.NET. . 6D IN NS M.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 6D IN A 198.41.0.4 B.ROOT-SERVERS.NET. 6D IN A 192.228.79.201 C.ROOT-SERVERS.NET. 6D IN A 192.33.4.12 D.ROOT-SERVERS.NET. 6D IN A 128.8.10.90 E.ROOT-SERVERS.NET. 6D IN A 192.203.230.10 F.ROOT-SERVERS.NET. 6D IN A 192.5.5.241 G.ROOT-SERVERS.NET. 6D IN A 192.112.36.4 H.ROOT-SERVERS.NET. 6D IN A 128.63.2.53 I.ROOT-SERVERS.NET. 6D IN A 192.36.148.17 J.ROOT-SERVERS.NET. 6D IN A 192.58.128.30 K.ROOT-SERVERS.NET. 6D IN A 193.0.14.129 L.ROOT-SERVERS.NET. 6D IN A 198.32.64.12 M.ROOT-SERVERS.NET. 6D IN A 202.12.27.33 EOF

Файл root.hints является списком корневых сервером имен. Этот файл должен быть периодически обновляем утилитой dig. Текущая копия root.hints может быть получена из ftp://rs.internic.net/domain/named.root. Проконсультируйтесь в BIND 9 Administrator Reference Manual по поводу дополнительных деталей.

Создайте или измените resolv.conf для использования нового сервера имен при помощи следующих команд:

[Замечание]

Замечание

Замените [yourdomain.com] вашим собственным правильным именем домена.

cp /etc/resolv.conf /etc/resolv.conf.bak && cat > /etc/resolv.conf << "EOF" search [yourdomain.com] nameserver 127.0.0.1 EOF

Установим права доступа для chroot окружения при помощи следующих команд:

chown -R named.named /home/named

Для запуска сервера DNS во время загрузки установим стартовый скрипт /etc/rc.d/init.d/bind, включенный в пакет blfs-bootscripts-6.0.

make install-bind

теперь запустим BIND при помощи стартового скрипта:

/etc/rc.d/init.d/bind start

Тестирование BIND

Проверим новую установку BIND 9. Сначала запросим адрес локального хоста при помощи dig:

dig -x 127.0.0.1

Теперь попробуем просмотреть внешнее имя, обращая внимание на отличие в скорости ответов, обусловленное кешированием. Запустите команду dig дважды по одним и тем же адресам:

dig www.linuxfromscratch.org && dig www.linuxfromscratch.org

Вы можете увидеть почти немедленные результаты кеширования имен. Проконсультируйтесь в BIND Administrator Reference Manual, размещенном в doc/arm/Bv9ARM.html в дереве исходников пакета, для получения дополнительных опций конфигурации.

Содержание

Установленные программы: dig, dnssec-keygen, dnssec-signzone, host, isc-config.sh, lwresd, named, named-checkconf, named-checkzone, nslookup, nsupdate, rndc и rndc-confgen
Установленные библиотеки: libbind9.[so,a], libdns.[so,a], libisc.[so,a], libisccc.[so,a], libisccfg.[so,a] и liblwres.[so,a]
Установленные директории: /home/named, /usr/include/bind9, /usr/include/dns, /usr/include/dst, /usr/include/isc, /usr/include/isccc, /usr/include/isccfg, /usr/include/lwres и /usr/share/doc/bind-9.3.0

Короткое описание

dig

опрашивающие DNS серверы.

dnssec-keygen

это генератор ключей для защиты DNS.

dnssec-signzone

генерирует знаковые версии файлов зон.

host

утилита для просмотра DNS.

lwresd

только кеширующий сервер имен для использования в локальных процессах.

named

это демон сервера имен.

named-checkconf

проверяет синтаксис файлов named.conf.

named-checkzone

проверяет правильность файла зон.

nslookup

это программа, используемая для запроса серверов имен интернет доменов.

nsupdate

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

rndc

контролирует операции BIND.

rndc-confgen

генерирует файлы rndc.conf.