Установка и настройка PowerDNS на Ubuntu 22.04

Системное администрирование

PowerDNS – это сервер DNS с открытым исходным кодом, который предлагает различные возможности, такие как настраиваемые обработчики запросов, поддержка DNSSEC, встроенные базы данных и многое другое. Он может быть использован как автономный сервер DNS, так и в качестве фронтенда для общих баз данных или служб, таких как MySQL или PostgreSQL. В этой статье мы рассмотрим, как установить и настроить PowerDNS на Ubuntu, использование MySQL и Bind для хранения DNS-записей, настройку DNSSEC и Round Robin.

Установка PowerDNS на Ubuntu 22.04

Обновление системы

Перед установкой PowerDNS необходимо обновить систему. Выполните следующие команды:

sudo apt-get update
sudo apt-get upgrade

Установка PowerDNS

Для установки PowerDNS выполните следующую команду:

sudo apt-get install pdns-server

Проверка установки

После установки PowerDNS можно проверить его версию и статус, выполнив следующие команды:

pdns_control version
pdns_control ping

Настройка конфигурации

Для настройки конфигурации PowerDNS откройте файл /etc/powerdns/pdns.conf и измените следующие параметры:

launch=gmysql,gpgsql
gmysql-host=localhost
gmysql-user=pdns
gmysql-password=password
gmysql-dbname=pdns

Эти параметры позволят использовать MySQL в качестве базы данных для хранения DNS-записей.

Перезапуск сервиса

После внесения изменений в конфигурацию PowerDNS необходимо перезапустить сервис:

sudo systemctl restart pdns.service

Настройка Web-интерфейса

Установка Poweradmin

Poweradmin – это веб-интерфейс для управления PowerDNS. Для установки Poweradmin выполните следующую команду:

sudo apt-get install poweradmin

Настройка конфигурации

Для настройки конфигурации Poweradmin откройте файл /etc/poweradmin/config.inc.php и измените следующие параметры:

$db_host = 'localhost';
$db_user = 'pdns';
$db_pass = 'password';
$db_name = 'pdns';

Доступ к Web-интерфейсу После настройки конфигурации Poweradmin вы можете получить доступ к веб-интерфейсу, открыв веб-браузер и вводя адрес вида http://your-ip/poweradmin. Введите учетные данные администратора, чтобы войти в интерфейс.

Использование MySQL и Bind для хранения DNS-записей

PowerDNS поддерживает использование различных баз данных для хранения DNS-записей, включая MySQL и PostgreSQL. В этом разделе мы рассмотрим, как настроить PowerDNS для использования MySQL в качестве базы данных и Bind в качестве DNS-сервера.

Установка Bind Для установки

Bind выполните следующую команду:

sudo apt-get install bind9

Настройка конфигурации Bind

Откройте файл /etc/bind/named.conf.options и добавьте следующие строки:

acl "trusted" {
        127.0.0.1;
        your-server-ip;
};

options {
        directory "/var/cache/bind";

        recursion yes;

        allow-query { trusted; };
        allow-transfer { none; };
};

zone "." {
        type hint;
        file "/etc/bind/db.root";
};

zone "localhost" {
        type master;
        file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
        type master;
        file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
        type master;
        file "/etc/bind/db.255";
};

Настройка конфигурации PowerDNS

Откройте файл /etc/powerdns/pdns.conf и добавьте следующие строки:

launch=bind
bind-config=/etc/bind/named.conf
bind-check-interval=600

Эти параметры позволят использовать Bind в качестве DNS-сервера и связать его с PowerDNS.

Создание базы данных

Для создания базы данных в MySQL выполните следующую команду:

mysql -u root -p
create database pdns;
grant all privileges on pdns.* to 'pdns'@'localhost' identified by 'password';
flush privileges;
exit

Настройка таблиц базы данных

Для настройки таблиц базы данных выполните следующие команды:

mysql -u root -p pdns < /usr/share/doc/pdns-backend-mysql/schema.mysql.sql

Перезапуск сервисов

После внесения изменений в конфигурацию PowerDNS и Bind необходимо перезапустить сервисы:

sudo systemctl restart pdns.service
sudo systemctl restart bind9.service

Настройка DNSSEC

DNSSEC (DNS Security Extensions) – это набор расширений протокола DNS, который позволяет проверять подлинность и целостность DNS-записей. В этом разделе мы рассмотрим, как настроить DNSSEC в PowerDNS.

Генерация ключей

Для генерации ключей выполните следующую команду:

sudo dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE your-domain.com

Добавление DS-записей в реестр

После генерации ключей вам нужно добавить DS-записи в реестр вашего домена. Для этого выполните следующую команду:

sudo dnssec-dsfromkey Kyour-domain.com.+005+12345.key your-domain.com

Где “Kyour-domain.com.+005+12345.key” – это путь к файлу с ключом, сгенерированным на предыдущем шаге, а “your-domain.com” – это ваш домен.

Активация DNSSEC в PowerDNS

Для активации DNSSEC в PowerDNS добавьте следующие строки в конфигурационный файл /etc/powerdns/pdns.conf:

dnssec=yes
dnssec-allow-unsigned=no

Перезапуск сервиса

После внесения изменений в конфигурацию PowerDNS перезапустите сервис:

sudo systemctl restart pdns.service

Round Robin DNS

Round Robin DNS – это метод балансировки нагрузки, при котором DNS-серверы предоставляют несколько IP-адресов для одного домена. Каждый раз, когда клиент запрашивает IP-адрес для домена, DNS-сервер возвращает следующий IP-адрес из списка.

Настройка DNS-записей

Для настройки Round Robin DNS в PowerDNS вам нужно создать несколько DNS-записей для одного домена, каждая запись будет содержать разный IP-адрес. Для примера создадим 3 записи для домена example.com:

example.com. IN A 192.168.0.1
example.com. IN A 192.168.0.2
example.com. IN A 192.168.0.3

Настройка PowerDNS

Откройте файл /etc/powerdns/pdns.conf и добавьте следующие строки:

local-address=0.0.0.0
webserver=yes
webserver-address=0.0.0.0
webserver-port=8081

Эти параметры позволят настроить PowerDNS для обработки запросов по протоколу HTTP и использования интерфейса пользователя для управления DNS-записями.

Установка интерфейса пользователя

Установите интерфейс пользователя для PowerDNS с помощью следующей команды:

sudo apt-get install pdns-webapi

Настройка интерфейса пользователя

Откройте файл /etc/powerdns/pdns.webapi.json и добавьте следующие строки:

{
  "experimental-json-interface": true,
  "webserver-port": 8081,
  "webserver-address": "0.0.0.0",
  "webserver-password": "your-password",
  "webserver-allow-from": "0.0.0.0/0",
  "webserver-allow-dnssec": true,
  "webserver-allow-tsig": true,
  "webserver-allow-recursion": true
}

Обратите внимание, что вы должны заменить “your-password” на свой пароль.

Перезапуск сервиса

Перезапустите сервис PowerDNS:

sudo systemctl restart pdns.service

Добавление записей через интерфейс пользователя

Откройте веб-браузер и перейдите по адресу http://your-server-ip:8081. Введите имя пользователя и пароль, указанные в параметре “webserver-password”. Затем выберите зону, в которой вы хотите добавить DNS-записи, и нажмите на кнопку “Add Record”. Введите имя DNS-записи, выберите тип “A”, и введите IP-адрес. Нажмите на кнопку “Add Record” для добавления записи.

Заключение

PowerDNS – это мощный и гибкий DNS-сервер, который позволяет настраивать DNS-записи, использовать базу данных MySQL для хранения данных, активировать DNSSEC для защиты от атак и использовать метод балансировки нагрузки Round Robin DNS. Установка и настройка PowerDNS на Ubuntu – это простой и быстрый процесс, который не требует особых знаний и навыков. С помощью интерфейса пользователя вы можете управлять DNS-записями, добавлять новые записи и обновлять существующие.

Оцените статью