Библиотека сайта rus-linux.net
| 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.
Информация о пакете
- Загрузка (HTTP): http://gd.tuwien.ac.at/infosys/servers/isc/bind9/9.8.1-P1/bind-9.8.1-P1.tar.gz
- Загрузка (FTP): ftp://ftp.isc.org/isc/bind9/9.8.1-P1/bind-9.8.1-P1.tar.gz
- Контрольная сумма MD5: afa41f8203d50bedad65071f9b6f96d7
- Размер загружаемого пакета: 8,1 MB
- Оценочный размер требуемого дискового пространства: 260 MB
- Оценочное время сборки: 1,7 SBU (дополнительные 13 минут независимо от процессора для запуска полного тестового набора)
Дополнительные загрузки
- Необязательный патч (если не установлен пакет net-tools): http://www.linuxfromscratch.org/patches/blfs/svn/bind-9.8.1-P1-use_iproute2-1.patch
Зависимости пакета BIND
Необязательные
Необязательные (для запуска тестового набора)
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-checkzone | проверка правильности файла zone |
nslookup | это программа, используемая для выполнения запросов к серверам доменных имен, расположенных в сети интернет |
nsupdate | используется для передачи запросов на обновление DNS |
rndc | управляет работой BIND |
rndc-confgen | создает файлы |
Перевод сделан с варианта оригинала, датированного 2011-12-05 22:58:00 +0000
| Предыдущий раздел: | Оглавление | Следующий раздел: |
| Пакет Apache-2.2.21 | Пакет ProFTPD-1.3.0 |

