Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Beyond Linux From Scratch. Version 2011-12-30
Назад 19.Основные серверы Вперед

Пакет BIND-9.8.1-P1

Знакомимся с пакетом BIND

В пакете BIND находится сервер DNS и клиентские утилиты. Если вы интересуетесь только утилитами, то смотрите BIND Utilities-9.8.1-P1.

Известно, что пакет правильно собирается и работает на платформе LFS-7.0.

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

Дополнительные загрузки

Зависимости пакета BIND

Необязательные

OpenSSL-1.0.0e

Необязательные (для запуска тестового набора)

Net-DNS-0.57 и Net-tools-1.60 (вы можете опустить пакет net-tools и использовать необязательный патч, необходимый для iproute2)

Необязательные (для пересборки документации)

TeX Live-20110705 и libxslt-1.1.26

Замечания для пользователей: http://wiki.linuxfromscratch.org/blfs/wiki/bind

Установка пакета BIND

Если вы решили не устанавливать пакет net-tools, примените патч iproute2 с помощью следующей команды:

patch -Np1 -i ../bind-9.8.1-P1-use_iproute2-1.patch

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

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --localstatedir=/var \
            --mandir=/usr/share/man \
            --enable-threads \
            --with-libtool &&
make

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

bin/tests/system/ifconfig.sh up

Теперь в роли непривилегированного пользователя запустите тестовый набор:

make check 2>&1 | tee check.log

Снова в роли пользователя root удалите тестовые интерфейсы:

bin/tests/system/ifconfig.sh down

Выполните следующую команду, чтобы проверить, что все 148 тестов прошли успешно:

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

Наконец, в роли пользователя root установите пакет:

make install &&
chmod 755 /usr/lib/lib{bind9,isc{,cc,cfg},lwres,dns}.so.*.?.? &&

cd doc &&
install -v -d -m755 /usr/share/doc/bind-9.8.1-P1/{arm,draft,misc,rfc} &&
install -v -m644 arm/*.html \
    /usr/share/doc/bind-9.8.1-P1/arm &&
install -v -m644 draft/*.txt \
    /usr/share/doc/bind-9.8.1-P1/draft &&
install -v -m644 rfc/* \
    /usr/share/doc/bind-9.8.1-P1/rfc &&
install -v -m644 \
    misc/{dnssec,ipv6,migrat*,options,rfc-compliance,roadmap,sdb} \
    /usr/share/doc/bind-9.8.1-P1/misc

Пояснение команд

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

--enable-threads: Этот параметр включает режим использования многопоточности.

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

chmod 755 /usr/lib/{lib{bind9,isc{,cc,cfg},lwres,dns}.so.*.?.?}: ключает бит исполнения для предотвращения предупреждения, когда для проверки зависимостей библиотек используется ldd.

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

Конфигурирование пакета BIND

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

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

Подробнее о конфигурировании

BIND будет сконфигурирован для работы в изолированной среде chroot с правами непривилегированного пользователя (named). Такая конфигурация является более безопасной, поскольку функционирование DNS может повлиять только на несколько файлов, находящихся в домашнем директории пользователя named.

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

groupadd -g 20 named &&
useradd -c "BIND Owner" -g named -s /bin/false -u 20 named &&
install -d -m770 -o named -g named /srv/named

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

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

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

rndc-confgen -r /dev/urandom -b 512 | \
    grep -m 1 "secret" | cut -d '"' -f 2

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

cat > /srv/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 в качестве журнального файла (за исключением режима debug).
// Это правила записи в журнальный файл, используемые по умолчанию.

logging {
     category default { default_syslog; default_debug; };
     category unmatched { null; };

  channel default_syslog {
      syslog daemon;                      // отправляет сообщение в демон 
                                          // системного журнала syslog
      severity info;                      // отправляет с приоритетом  
                                          // info и выше
  };

  channel default_debug {
      file "named.run";                   // записывает в named.run в
                                          // рабочем директории
                                          // Замечание: если сервер
                                          // запущен с параметром '-f',
                                          // то вместо "named.run"
                                          // используется stderr.
      severity dynamic;                   // журналирование записей на
                                          // текущем отладочном уровне сервера
  };

  channel default_stderr {
      stderr;                             // записывает в stderr
      severity info;                      // только с приоритетом 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.con находится информация для управления операциями named, выполняемыми с помощью утилиты rndc.

Создайте файл zone следующим образом:

cat > /srv/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 > /srv/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       199.7.83.42
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 (справочном руководстве администратора BIND 9).

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

Замечание

Замените <yourdomain.com> на имя вашего собственного действующего домена.

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

Установите права доступа для изолированной зоны chroot с помощью следующей команды:

chown -R named.named /srv/named

Загрузочный скрипт

Чтобы запускать сервер DNS при загрузке системы, установите загрузочный скрипт /etc/rc.d/init.d/bind, который находится в пакете blfs-bootscripts-20111226.

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 (Справочное руководство администратора BIND), которое находится в файле 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}

Установленные директории: /srv/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.8.1-P1

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

dig

опрашивает сервера DNS

dnssec-keygen

генератор ключей для безопасного использования DNS

dnssec-signzone

создает подписанные версии файлов zone

host

утилита для поиска DNS

lwresd

сервер имен, выполняющий только кэширование и используемый только для локальной обработки

named

демон сервера имен

named-checkconf

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

named-checkzone

проверка правильности файла zone

nslookup

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

nsupdate

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

rndc

управляет работой BIND

rndc-confgen

создает файлы rndc.conf

Перевод сделан с варианта оригинала, датированного 2011-12-05 22:58:00 +0000


Предыдущий раздел: Оглавление Следующий раздел:
Пакет Apache-2.2.21   Пакет ProFTPD-1.3.0