Debian.pro/

Про Debian


Debian, bind9, bind установка. Конфигурируем master-NS с комфортом. Web-интерфейс для bind, smbind.

Сегодня мы будем конфигурировать master NS на нашем сервере. Как обычно, в моём стиле, с минимальными усилиями.
disclaimer: Помните, установка smbind на боевой сервер с кучей пользователей может повредить работе bind’a. Точнее повредить bind’у могут пользователи панели, сломав зоны. Устанавливайте smbind только на тот сервер, на который не имеют доступа люди, которые желают вам зла.
Тот же ispmanager сильно лучше фильтрует то, что пользователи пытаются записать в файлы зон.

smbind я использую достаточно редко, но использую. Панелька хорошая и дело своё делает хорошо, но паранойя своё берет — он у меня стоит либо на отдельных машинах, куда доступ никто не имеет, либо на серверах клиентов (и у них доступ в smbind есть только у меня и у пары ответственных людей со стороны заказчика).

Для начала поставим bind9:

root@server:~# aptitude install bind9

После этого нам нужно будет установить LAMP. Как это сделать мы все помним, а если не помним, то читаем тут

Теперь поставим саму панельку:

root@server:~# aptitude install smbind

По ходу установки нам будут задавать вопросы по конфигурированию. Спросят рутовый пароль от mysql, тип базы, с которой будет работать smbind (у нас mysql — не забудьте, что сначала выбираем mysql, потом жмем пробел, и только потом — enter), пароль для пользователя+базы, с которой будет работать smbind и дефолтный пароль учетки admin в веб-морде smbind. Если не спросят (в lenny, например, не спрашивали) — то дефолтный пароль admin.

После окончания установки идём по адресу http://ip_address/smbind/

Меняем пароль для пользователя admin, если нужно, создаём дополнительных пользователей, от которых вы будете редактировать и создавать зону, всячески развлекаемся.

Теперь заставим bind подгружать зоны, созданные через smbind. В файл /etc/bind/named.conf добавляем такую строчку:

include "/etc/smbind/smbind.conf";

Рестартим bind9:

root@server:~# /etc/init.d/bind9 restart

Теперь мы можем управлять нашими зонами через веб-интерфейс. Само прописывание записей в веб-морде ничего не даст — они не применяются сразу. Для того, чтобы «закоммитить изменения» в bind у вас есть два пути:
1) по ssh использовать команду:

root@server:~# rndc reload

Безопасно, но ничерта неудобно.

2) Починить в панели кнопку commit changes.
Как это сделать — в комментариях подсказал andreich (#12):

root@server:~# chmod 664 /etc/bind/rndc.key

Ну и немного припрячем smbind. В файле /etc/apache2/conf.d/smbind.conf изменим строку

Alias /smbind /usr/share/smbind/php

На что-то вроде такого:

Alias /somesecretshithere /usr/share/smbind/php

Тогда интерфейс бинда будет доступен по адресу http://$ip_adress/somesecretshithere (или http://$some_hostname_of_server/somesecretshithere) — это затрудняет его поиски.
Так же неплохо было бы защитить директорию /usr/share/smbind/php при помощи .htaccess+.htpasswd. Либо ограничить доступ туда по IP. Тут уже насколько у вас фантазии хватит)

Приятного использования. Жду ваших вопросов.


Комментарии (21):

  1. AmdY :

    Спасибо, пока не наткнулся, даже не собирался настраивать dns, но аппетит приходит во время еды.
    Я веб разработчик и настраиваю локальный вебсервер на vmware. Вот решил упростить жизнь и завернуть все *.dev на себя, а то править /etc/hosts надоело. Хотелось бы, увидеть как это делается. а то данного материала не нашёл у вас.

    p.s. Ушёл гуглить

  2. Пропишите ip своего bind9 в dns серверы на локальной машине попробуйте.

  3. Павел :

    После выполнения команды aptitude install smbind не хочит запускатся по адресу http://127.0.0.1/smbind/

  4. Павел :

    Сделал рестарт apache и bind, перехожу по ссылке http://127.0.0.1/smbind/ пишет Database error: not found

  5. > По ходу установки у нас спросят кучу всякой чуши, вроде пароля mysql root’a и пароля для mysql пользователя, от которого будет работать smbind.

    Значит неправильно отвечали на вопросы.

  6. Павел :

    Как теперь быть? Может какой-то файлик подредактировать нужно?

  7. aptitude purge, aptitude install
    там не только файлы редактировать, но и базу разворачивать — проще заново поставить.

  8. Павел :

    Спасибо за оперативную помощ. Пост 7 помог.

  9. Не за что. Пост 7 — вообще ваш )

  10. Павел :

    У меня так:

    7. inkvizitor68sl : 03.02.2012 в 17:35

    aptitude purge, aptitude install
    там не только файлы редактировать, но и базу разворачивать — проще заново поставить.

    Возможно ето из-за сообщения которое ожидает модерации)

  11. Круто. Я отвечаю на комментарии, которые забыл отмодерировать хД Совсем старый стал) Ладно, в любом случае, не за что.

  12. andreich :

    «Единственная оговорка — кнопка «Commit changes» работать не будет.»
    Будет всё работать, если поправить права на /etc/bind/rndc.key
    664 вполне достаточно для нормальной работы.
    Если это поправите в статье, цены ей не будет! Каждый раз на неё натыкался и дочитываю до этого места, начинал искать дальше или забивал, а тут пришлось добивать до конца =)

  13. Спасибо большое, переделал статью.

  14. paladim :

    Подскажите где грабли?
    При удалении зоны, происходит следующая ошибка:
    DB Error: syntax error
    UPDATE zones SET updated = ‘yes’LIMIT 1 OFFSET 0 [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘OFFSET 0’ at line 1]

    При повторном заходе в веб-панель — удаленная зона исчезает, но файл зоны в /etc/smbind/zones/ и запись зоны в smbind.conf остается.
    Linux Debian 6.0.7 / 2.6.32-5-686

  15. Влад :

    Версию smbind попробуйте обновить/откатить.
    Больше всего на баг в коде похоже.

  16. paladim :

    Вроде проблема решена.
    По поискам в сети «что, да как?», исправляли баги в разных версиях smbind-0.4.7 до 0.4.7-5
    В bug fix была не раз информация о правки файла zonedelete.php. Было раньше только «LIMIT 1», а потом «LIMIT 1 OFFSET 0» в более новых версиях. Самая последняя версия в сети найдена 0.4.8 Вот как раз в версии 0.4.8, в файле zonedelete.php опять вернули «LIMIT 1». Что я и исправил в текущей установленной версии (0.4.7-5). Этот глюк исчез. Единственно, при удалении зоны, не удаляется сам файл зоны в /etc/smbind/zones/, но в smbind.conf запись очищается. Это пережить пока можно. Пока других проблем незамечено.
    Установить сразу 0.4.8 версию, с минимальными усилиями – не получается (что-то вроде aptitude install smbind_0.4.8), нужно ставить все вручную. Deb – пакетов 0.4.8 не нашел.

  17. Dan :

    Добрый день!
    Пробую настроить, как в статье. Но на этапе <> вылетает ошибка при перезапуске бинда. Файл smbind.conf пустой, зоны не заводились.

  18. А конкретнее можно? Какая ошибка и на каком этапе?

  19. Дмитрий :

    root@debi750:~# aptitude install smbind
    Не удалось найти пакеты, содержащих «smbind» в своём имени или описании
    Не удалось найти пакеты, содержащих «smbind» в своём имени или описании
    Ни одного пакета не будет установлено, обновлено или удалено.
    0 пакетов обновлено, 0 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
    Необходимо получить 0 B архивов. После распаковки 0 B будет занято.
    root@debi750:~#

    Что изменилось?

  20. Дмитрий :

    поставил webmin, буду пробовать работать с ним

Написать комментарий