Домашняя страница PowerDNS – тут>>>.
Установка выполняется на CentOS 6.6.
Установка MariaDB полностью описана тут>>>.
Устанавливаем MariaDB:
# yum install MariaDB-client MariaDB-common MariaDB-compat MariaDB-devel MariaDB-server MariaDB-shared
Запускаем:
# service mysql start
Выполняем первоначальную настройку:
# /usr/bin/mysql_secure_installation
Добавляем в автозагрузку:
# chkconfig mysql on
Настраиваем MariaDB для работы PowerDNS:
# mysql -u root -p
Создаём базу:
MariaDB [(none)]> CREATE DATABASE powerdns; Query OK, 1 row affected (0.01 sec)
Создаём пользователя:
MariaDB [(none)]> GRANT ALL ON powerdns.* TO 'power_admin'@'%' IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.00 sec)
Создаём файл pdns_mysql.sql
с таким содержимым:
DROP TABLE IF EXISTS domains; 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); DROP TABLE IF EXISTS records; 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); DROP TABLE IF EXISTS supermasters; create table supermasters ( ip VARCHAR(25) NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) DEFAULT NULL );
Запускаем создание таблиц:
# mysql -u root -p -D powerdns < pdns_mysql.sql Enter password:
Устанавливаем PowerDNS:
# yum install pdns pdns-backend-pipe pdns-backend-mysql pdns-backend-geo
Редактируем /etc/pdns/pdns.conf
:
setuid=pdns setgid=pdns launch=gmysql gmysql-host=localhost gmysql-user=power_admin gmysql-password=password gmysql-dbname=powerdns local-address=10.***.***.164
Добавляем в автозагрузку:
# chkconfig pdns on
Запускаем:
# service pdns start Starting PowerDNS authoritative nameserver: started
Для работы Poweradmin – нам потребуется NGINX + PHP-FPM. Их настройка описана в посте CentOS: установка NGINX + PHP-FPM, поэтому описывать её не будем.
Устанавливаем PHP:
# yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext
Создаём файл /etc/php-fpm.d/poweradmin.conf
:
[poweradmin] listen = 127.0.0.1:9001 pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 user=nginx group=nginx slowlog = /var/log/nginx/pwadmin-slow.log php_admin_value[error_log] = /var/log/nginx/pwadmin-error.log php_admin_flag[log_errors] = on
Для Poweradmin создаём виртуалхост в файле настроек NGINX /etc/nginx/nginx.conf
:
server { listen 80; server_name pwadmin.domain.local; root /usr/share/poweradmin; access_log /var/log/nginx/pwadmin-access.log; error_log /var/log/nginx/pwadmin-error.log; location / { index index.html index.htm index.php; } location ~ .php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/vhosts/pwadmin.domain.local$fastcgi_script_name; } }
Проверяем:
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Запускаем:
# service nginx start Starting nginx: [ OK ]
Запускаем PHP-FPM:
# service php-fpm start Starting php-fpm: [ OK ]
Добавляем их в автозапуск:
# chkconfig nginx on # chkconfig php-fpm on
Открываем фаервол:
# iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT
Создадим каталог для витртуалхоста с Poweradmin:
# mkdir -p /var/www/vhosts/pwadmin.domain.local
Переходим в него и со страницы загрузок загружаем Poweradmin:
# git clone https://github.com/poweradmin/poweradmin .
Создаём файл настроек:
# cp inc/config-me.inc.php inc/config.inc.php
Переходим в браузере на http://pwadmin.domain.local/install:
Выбираем язык:
Installation step 2 – просто жмём Go to step 3.
Далее настраиваем подключение к базе данных (ВАЖНО: последнее поле – пароль пользователя admin
):
Можно (не обязательно) заполнить данные по умолчанию для зон:
Шаг 5 – кликаем Next.
Шаг 6 – записываем $session_key
в файл /var/www/vhosts/pwadmin.domain.local/inc/config.inc.php
.
После шага Installation step 7 – удаляем директорию install:
# rm -rf /var/www/vhosts/pwadmin.domain.local/install/
Переходим на главную – и логинимся в Poweradmin с логином admin
и паролем, который указали ранее:
Готово.
Добавим зону local
.
Переходим в Add master zone, и заполняем поля:
Для редактирования переходим в List zones, слева от домена жмём “Редактировать“:
Добавляем домен domain.local
:
Проверяем:
# dig @10.***.***.164 domain.local +short 10.***.***.164
Готово.
Последнее – открыть порт 53 для UDP:
# iptables -I INPUT 2 -p udp --dport 53 -j ACCEPT
# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Проверяем с удалённого сервера.
Редактируем /etc/resolv.conf
, первой строкой добавляем IP нового DNS:
# cat /etc/resolv.conf | grep name nameserver 10.***.***.164
И выполняем поиск:
# dig domain.local +short 10.***.***.164
Работает.
Ссылки по теме
https://plone.lucidsolutions.co.nz