Простая установка и настройка BIND 9 (ДНС сервер). | Выделенный сервер своими руками

Простая установка и настройка BIND 9 (ДНС сервер).

Одной из наиболее важных служб в выделенном сервере либо VDS, несомненно, является сервер доменных имен. Одной из реализаций ДНС сервера в linux является пакет bind. Опишу простую установку и настройку пакета bind на CentOS 4.х linux. Хотя практически без изменений эту конфигурацию можно использовать для всех linux дистрибутивов.

Установка bind на сервер очень проста. Заходим в консоль и пишем:

yum install bind-chroot caching-nameserver

В результате у нас устанавливается ДНС сервер в chroot окружении, и он готов работать в качестве кеширующего сервера. Запуск сервера осуществляется с помощью команды:

service named start

Спросите почему named, если пакет называется bind? :-) Все верно. Ошибки нет. Просто нужно запомнить:

  • мы устанавливаем ДНС сервер;
  • пакет программ называется BIND;
  • служба на сервере которая устанавливается в результате установки пакета BIND называется named.
  • Далее нам необходимо сделать так, чтобы службы сервера использовали именно наш ДНС сервер. Для этого открываем в любимом редакторе файл /etc/resolv.conf и первой строкой добавляем следующее: nameserver 127.0.0.1 Сохраняемся и имеем работающий кеширующий сервер имен, но дырявый. для увеличения безопасности сервера открываем файл /etc/named.conf в нашем любимом редакторе и делаем изменения в секции options:

    options {        
    directory "/var/named";
    dump-file "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    version "no version info";
    allow-transfer { none; };
    recursion no;
    listen-on { 127.0.0.1; 111.222.333.444; };
    };

    Немного подробнее об настройках:
    version "no version info"; - при запросе версии сервера выдавать "no version info". Хотя в кавычки можно написать все что угодно.
    allow-transfer { none; }; - никому не давать разрешения на передачу зоны.
    listen-on port 53 { 127.0.0.1; 111.222.333.444; }; - принимать запросы только с интерфейса обратной петли 127.0.0.1 и с адреса 111.222.333.444 - ip адреса нашего сервера.
    recursion no; - отключить рекурсивные запросы. Это значит что наш ДНС сервер будет выдавать ответы только на те запросы, которые относятся к доменам, описанным в его настройках. То есть. Есть у нас домен ddd.com и в файле зоны нашего ДНС сервера он прописан. Тогда при обращении к нашему ДНС серверу за разрешением имени в ip адрес для записи ddd.com ответ будет положительным. При обращении за разрешением других зон - ответ будет отрицательным. Таким образом мы исключаем всяческих любителей халявы, которым вдруг понравится наш ДНС сервер.

    Сохраняемся и перезапускаем bind:

    service named restart

    После таких настроек безопасность нашего сервера значительно улучшиться. Сразу хочу сказать что описано далеко не все, что можно сделать, например пока не затронут вопрос второго ДНС сервера, и передачи ему зон, создания зон для доменов и многое другое. Приведена базовая настройка. Как всегда - жду замечаний и отзывов.

    Зачем же рекурсию разрешать?

    Зачем же рекурсию разрешать? И query с внешнего интерфейса?
    Гляньте тут, более толково розписано и тоже на Debain, но это если для локалки хотим еще и форвардить.
    А если просто DNS которые держит зоны без всяких форвардов то query none и recursion none должно быть для всех кроме 127.0.0.1

    ip - 111.222.333.444? спорим

    ip - 111.222.333.444? спорим не работает?

     111.222.333.444 - ip адреса

     111.222.333.444 - ip адреса нашего сервера.
    Спорим, что ты не читал статейку? Ну я если у тебя этот ip адрес в сервере вбит, то ты убер крутой хакер )

    Не забудьте установить bind в

    Не забудьте установить bind в var/ в целях безопасности

    for RH-based

    for RH-based distrs:

    #chkconfig --level 35 named on

    Для Debian-based

    Для Debian-based дистрибутивов есть утилита sysvconf - аналогично ntsysv звездочками отмечается чего запускать и с какими приоритетами.

    У дистрибутивов linux

    У дистрибутивов linux основаных на rpm репозитарии, так называемых Redhat-based есть утилита ntsysv. В ней можно просто выделить звездочкой необходимые для автостарта пакеты. И будет все что надо нормально стартовать.

    А как в автозапуск прописать?

    А как в автозапуск прописать? А то постоянно набирать service named start ломает сильно.

    Такая же ерунда, пишет фейлед

    Такая же ерунда, пишет фейлед и ничего не помогает :(

    После обновления named.conf

    После обновления named.conf named больше не запускается, пишет failed..

    Я пытаюсь настроить Mandriva

    Я пытаюсь настроить Mandriva 2008.1 не получается. пишет 127.0.0.1#953 Connection Refused :(

    Спасибо, второй раз по вашей

    Спасибо, второй раз по вашей статье настраиваю домашний сервер на Fedore.
    Не могу никак понять почему у меня конфиги Binda слетают при аварийном выключение сервера (кратковременное отключение света)

    Я так понял это для

    Я так понял это для коллокешена...
    Есть даже сервисы, чисто дают пространство, а ты сам уже настраиваешь пхп, апачу и т.п.

    Хорошая статья. Хотелось бы

    Хорошая статья. Хотелось бы почитать более популярно про зоны, ибо есть арендованный сервер, работает openvz, но приходится пользоваться услугами бесплатных DNS, хочется поиметь собственный. Самостоятельно пока разобраться не могу, не хватает хорошей статьи с примерами.

    To Roman Y. Bogdanov: Статья

    To Roman Y. Bogdanov:
    Статья неплохая, но упор ставиться на FreeBSD, а эта заметка поможет владельцам dedicated server на linux.

    http://brj.pp.ru/2006/12/10/m

    http://brj.pp.ru/2006/12/10/multihomed-dns-named-pdnsd/lang/ru/

    ;-) ?