Налаштування 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-записами, додавати нові записи та оновлювати існуючі.

Оцініть статтю