В этой статье описана установка и начальная настройка DNS сервера PowerDNS. Вы можете спросить, почему не так популярный нынче Bind? Power Dns отличается от него тем что берет данные о зонах из базы данных, поддерживаются популярные БД, такие как MYSQL, PGSQL, Oracle. Работает как в качестве авторитетного, так и в качестве рекурсивного сервера. Удобством данного решения является удобная панель администрирования с веб интерфейсом, каких для Bind есть несколько, и все они не блещут своей функциональностью и удобством настройки. Power Dns так же предусмартивает возможность миграции с обычного Bind.
Данное руководство написано для использования с Ubuntu Server 8.10, но подойдет и для других Debian based дистрибутивов.

Установим необходимое, для начала MYSQL.

Код:


apt-get install mysql-server mysql-client

Затем отредактируем конфиг файл MYSQL, необходимо настроить его таким образом, что бы он был доступен со всех интерефейсов, для этого необходимо закомментировать строку с параметром bind-address

Код:


[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address
[...]

Перезапустим MYSQL командой /etc/init.d/mysql restart и проверим что у нас получилось

Код:


netstat -tap |grep mysql

Мы должны увидеть примерно следующее

Код:


root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 6724/mysqld
root@server1:~#

Теперь перейдем к установке сервера PowerDns

Код:


apt-get install pdns-server pdns-backend-mysql

Конфигурация PowerDns хранится в директории /etc/powerdns, мы вернемся к ней чуть позже, а пока создадим базу данных и таблицы в ней для нашего dns сервера. Я использовал для примера имя пользователя для БД power_admin с паролем power_admin_password, не забудьте сменить их на свои. Среди команд приведены краткие комментарии для разъяснения действий и названия таблиц.

Код:


mysql -u root -p
CREATE DATABASE powerdns;
GRANT ALL ON powerdns.* TO 'power_admin'@'localhost' IDENTIFIED BY 'power_admin_password';
GRANT ALL ON powerdns.* TO 'power_admin'@'localhost.localdomain' IDENTIFIED BY 'power_admin_password';
FLUSH PRIVILEGES;
### Базу создали, права выставили, переходим к созданию таблиц.
USE powerdns;
### Таблица для доменов
CREATE TABLE domains (
id INT auto_increment,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(6) NOT NULL,
notified_serial INT DEFAULT NULL,
account VARCHAR(40) DEFAULT NULL,
primary key (id)
);
### Создаем индекс для таблицы
CREATE UNIQUE INDEX name_index ON domains(name);
### Создаем таблицу записей
CREATE TABLE records (
id INT auto_increment,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(6) DEFAULT NULL,
content VARCHAR(255) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
primary key(id)
);
### Создаем индексы для таблицы
CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
### Создаем таблицу мастер зон
CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);
### Пока все, можно выходить :)
quit;

Теперь пора отредактировать конфигурационный файл PowerDns, добавим тип запуска, а именно линиюlaunch=gmysql как показано в примере ниже. Выполните команду vim /etc/powerdns/pdns.conf и вставьте нужный текст в файл.

Код:


[...]
#################################
# launch Which backends to launch and order to query them in
#
# launch=
launch=gmysql
[...]

Затем отредактируйте файл /etc/powerdns/pdns.d/pdns.local до состояния приведенного в примере ниже, не забудьте сменить имя пользователя и пароль от базы данных на те что вы указали при создании базы данных.

Код:


# Here comes the local changes the user made, like configuration of
# the several backends that exists.
gmysql-host=127.0.0.1
gmysql-user=power_admin
gmysql-password=power_admin_password
gmysql-dbname=powerdns

Перезапустите сервер PowerDns командой /etc/init.d/pdns restart, после этого он уже готов к работе. Вы можете ознакомится с документацией по нему по адресу http://downloads.powerdns.com/documentation/

Установка Poweradmin

Установим все пакет необходимые для нормальной работы пакета.

Код:


apt-get install apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imap php5-mcrypt php5-mhash php5-ming php5-mysql php5-xmlrpc gettext

Установим Pear DB

Код:


pear install DB
pear install pear/MDB2#mysql

Затем перезапустите Apache командой /etc/init.d/apache2 restart.
Скачаем дистрибутив Poweradmin

Код:


cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.2.tgz

Ставить будем в директорию /var/www/poweradmin

Код:


tar xvfz poweradmin-2.1.2.tgz
mv poweradmin-2.1.2 /var/www/poweradmin
touch /var/www/poweradmin/inc/config.inc.php
chown -R www-data:www-data /var/www/poweradmin/

Затем открываем в браузере адрес вашего сервера, ( например http://server1.example.com/poweradmin/install или http://192.168.0.100/poweradmin/install). И в открывшемся окне выбираем язык, затем заполняем информацию касательно нашей базы данных, а именно логин, пароль, и название базы, хост базы localhost.

Затем будет окно с вопросами о создании служебного аккаунта для нашего DNS сервера, впишем имя юзера power_admin, и зададим ниже пароль для аккаунта администратора и адрес электронной почты, в котором надообязательно заменить символ «@» на символ «.«, тоесть если у вас адрес vasya@example.com то он должен быть написан как vasya.example.com.
Далее вам будет предложеновыполнить запрос к вашей БД для установки привелегий, и на этом установка завершена.

Необходимо удалить директорию с файлами инсталляции poweradmin

Код:


rm -fr /var/www/poweradmin/install/

Затем вы можете зайти по адресу вашего сервера, ( например http://server1.example.com/poweradmin или http://192.168.0.100/poweradmin) с логином admin и паролем который вы задали при установке.

На этом все, можете переходить к созданию зон и настроек вашего DNS сервера.

Оригинал статьи (На английском языке, присутствуют скриншоты) http://www.howtoforge.com/installing-powerdns-with-mysql-backend-and-poweradmin-on-ubuntu-8.10

Anti-Spam Protection by WP-SpamFree