23.7. BIND9 и FreeBSD

Автор: Tom Rhodes. Перевод на русский язык: Dmitry Morozovsky.

FreeBSD начиная с версии 5.3 содержит в базовой поставке сервер DNS BIND9. Среди прочих нововведений стоит отметить новые возможности, связанные с безопасностью, новую организацию файлов конфигурации и автоматическое использование опции chroot(8). Первая часть этой главы посвящена обсуждению новых возможностей и их использования, вторая описывает процесс обновления сервера DNS при переходе на FreeBSD 5.3. Мы будем ссылаться на сервер BIND как named(8). Мы подразумеваем, что читатель знаком с терминологией, описываемой в предыдущей главе.

Файлы конфигурации для named в настоящее время располагаются в каталоге /var/named/etc/namedb/ и требуют модификации перед началом использования сервера. Большая часть работы по конфигурации сервера DNS происходит именно в этом каталоге.

23.7.1. Конфигурация основной (Master) зоны

Для создания основной зоны перейдите в каталог /var/named/etc/namedb/ и выполните команду

# sh make-localhost

При удачном стечении обстоятельств в каталоге master появится два новых файла: localhost.rev для локального домена и localhost-v6.rev для локальной зоны IPv6. В поставляемом стандартном файле конфигурации named.conf уже есть ссылки на оба файла зон.

23.7.2. Конфигурация зависимой (Slave) Зоны

Дополнительные домены и поддомены могут быть добавлены как зависимые зоны. В большинстве случаев достаточно просто скопировать файл master/localhost.rev в каталог slave и изменить копию. После изменения файлов зон нужно добавить ссылки на них в основной файл конфигурации named.conf, как в следующем примере для example.com:

zone "example.com" {
    type slave;
    file "slave/example.com";
    masters {
        10.0.0.1;
    };
};

zone "0.168.192.in-addr.arpa" {
    type slave;
    file "slave/0.168.192.in-addr.arpa";
    masters {
        10.0.0.1;
    };
};

Отметим, что использованный в этом примере IP адрес является адресом, с которого будут копироваться файлы зон; этот адрес не обязательно является публичным сервером DNS.

23.7.3. Стартовая конфигурация системы

Для автоматического запуска даемона named при загрузке системы добавьте в файл стартовой конфигурации rc.conf строку

named_enable="YES"

Есть и другие параметры конфигурации, но эта строка -- минимально необходима. Список параметров можно найти на странице справочника rc.conf(5). Если запуск named не разрешен в rc.conf, сервер можно запустить вручную командой

# /etc/rc.d/named start

23.7.4. BIND9: вопросы безопасности

FreeBSD автоматически запускает named в ограниченном пространстве chroot(8); кроме того, существует еще несколько средств, помогающих защитить сервис DNS от возможных атак.

23.7.4.1. Списки ограничения доступа

Для ограничения доступа к зонам могут применяться списки доступа. Для этого опишите для домена список IP адресов, которым разрешены запросы к содержимому доменной зоны, и используйте имя этого списка в конфигурации зоны. Вот пример описания списка ограничения доступа:

acl "example.com" {
    192.168.0.0/24;
};

zone "example.com" {
    type slave;
    file "slave/example.com";
    masters {
        10.0.0.1;
    };
    allow-query { example.com; };
};

zone "0.168.192.in-addr.arpa" {
    type slave;
    file "slave/0.168.192.in-addr.arpa";
    masters {
        10.0.0.1;
    };
    allow-query { example.com; };
};

23.7.4.2. Версия сервера

Разрешать всем запросы о версии вашего DNS сервера может быть не самой лучшей идеей: возможный злоумышленник может воспользоваться ей для выяснения известных ошибок и уязвимостей и применить их вашего сервера.

Внимание: Подмена сообщения о версии не защитит ваш сервер от эксплоитов. Защитить сервер может только обновление до версии, не содержащей известных ошибок.

Для предотвращения этого в раздел options файла конфигурации named.conf можно вписать строку, скрывающую версию сервера:

options {
        directory       "/etc/namedb";
        pid-file        "/var/run/named/pid";
        dump-file       "/var/dump/named_dump.db";
        statistics-file "/var/stats/named.stats";
        version         "None of your business";
};

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.