PowerDNS (pdns) je open source DNS server napsaný v C++ a vydaný pod licencí GPL. Stal se dobrou alternativou pro tradiční DNS server Bind, navržený s lepším výkonem a nízkými požadavky na paměť. PowerDNS poskytuje dva produkty, autoritativní server a rekurzor. Autoritativní server PowerDNS lze konfigurovat prostřednictvím různých backendů, včetně souborů prosté zóny Bind, RDBMS, jako je MySQL, PostgreSQL, SQLite3 nebo LDAP.
V tomto tutoriálu vám ukážu, jak nainstalovat a nakonfigurovat autoritativní server PowerDNS s databázovým serverem MariaDB jako backend a pomocí Poweradmin pro snadnou správu DNS.
Předpoklady
- Server CentOS 7
- Oprávnění uživatele root
Co uděláme:
- Nainstalujte úložiště EPEL a Remi
- Nainstalujte a nakonfigurujte MariaDB
- Nainstalujte PowerDNS
- Nainstalujte Poweradmin
- Po instalaci Poweradmin
- Vytvořit ukázkovou zónu
Krok 1 – Instalace EPEL a Remi Repositories
Nejprve musíme nainstalovat závislosti pro instalaci PowerDNS. Chystáme se nainstalovat úložiště EPEL a instalaci REMI pro PHP 7.2.
Nainstalujte úložiště EPEL a PHP Remi pomocí následujících příkazů.
yum -y install epel-release
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Jakmile budou tato úložiště přidána do systému, nainstalujte balíček 'yum-utils'.
yum -y nainstalovat yum-utils
A povolte úložiště PHP 7.2 Remi pomocí následujícího příkazu.
yum-config-manager --enable remi-php72
Krok 2 – Instalace a konfigurace MariaDB
Autoritativní server PowerDNS má podporu pro jiný backend, včetně databázového serveru MySQL/MariaDB. Termín 'backend' je datové úložiště, které bude server konzultovat a které obsahuje záznamy DNS (a některá metadata). A pro tuto příručku použijeme MariaDB jako backend.
Nainstalujte MariaDB pomocí následujícího příkazu yum.
yum -y nainstalujte mariadb mariadb-server
Po dokončení instalace spusťte službu MariaDB a přidejte ji do doby spouštění při spuštění.
systemctl spustit mariadb
systemctl povolit mariadb
Dále nakonfigurujeme heslo uživatele root pro MariaDB pomocí interaktivního nástroje s názvem 'mysql_secure_installation'.
Spusťte níže uvedený příkaz.
mysql_secure_installation
A budete vyzváni ke konfiguraci hesla root databázového serveru. Zadejte „Y“ pro nastavení hesla uživatele root a zadejte silné heslo.
Nastavit heslo root? [A/n] A
Nové heslo:
Znovu zadejte nové heslo:
Pro ostatní stačí napsat „Y“ na yes.
Odebrat anonymní uživatele? [A/n] A
Zakázat vzdálené přihlášení root? [A/N] A
Odebrat testovací databázi a získat k ní přístup? [A/n] A
Načíst nyní tabulky oprávnění? [A/n] A
V důsledku toho jste nainstalovali databázový server MariaDB a nastavili heslo root pro ověřování.
Dále vytvoříme novou databázi a uživatele pro instalaci PowerDNS. Přihlaste se do prostředí MySQL pomocí uživatelského rootu a hesla.
Níže spusťte příkaz MySQL.
mysql -u root -p
HESLO
Nyní vytvořte novou databázi s názvem 'powerdns' a udělte všechna databázová oprávnění novému uživateli s názvem 'pdns' s heslem 'pdnspassword2018'.
vytvoření databáze powerdns;
udělte všechna oprávnění na powerdns.* uživateli [email protected] identifikovanému pomocí 'pdnspassword2018';
flush oprávnění;
Poté vytvořte struktury tabulek pro databázi PowerDNS spuštěním následujících dotazů MySQL níže.
Vytvořit domény tabulky (
id int auto_increment,
Name Varchar (255) NOT NULL,
Master Varchar (128) výchozí null,
last_check INT VÝCHOZÍ NULL,
typ VARCHAR(6) NOT NULL,
notification_serial 4 0, INT DEFAULT NULL,
) Engine=InnoDB;
VYTVOŘTE UNIKÁTNÍ INDEX name_index NA doménách(název);
CREATE TABLE records (
id BIGINT Auto_increment,
domain_id int default null,
name varchar (255) výchozí null,
typ varchar (10) výchozí null,
obsah varchar (64000) výchozí null,
ttl INT DEFAULT NULL,
před INT DEFAULT NULL,
change_date INT DEFAULT / NULL, dis
auth 1.;
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX recordorder ON records (domain_id, ordername);
CREATE TABLE supermasters (
ip VARCHAR(64) NOT NULL,
jmenný server (0 ) VARCHAR(055) NULL VARCHAR(255) CH NOT > AR NULL
PRIMÁRNÍ KLÍČ (ip, nameserver)
) Engine=InnoDB;
komentáře CREATE TABLE (
id INT AUTO_INCREMENT,
INT INT NOT NULL,
jméno VARCHAR(255) NOT NULL,
typ VARCHAR(10) NOT NULL, VAR, < upraveno_zavináč AR /> co mment VARCHAR(64000) NOT NULL,
PRIMÁRNÍ KLÍČ (id)
) Engine=InnoDB;
VYTVOŘIT INDEX comments_domain_id_idx ON komentářů (id_domény);
název_id_domény CREAx;
ON komentáře (název, typ);
CREATE INDEX comments_order_idx ON comments (id_domény, upraveno_at);
CREATE TABLE doménová metadata (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
druh VARCHAR(32),
content TEXT,
D ne B PRIMÁRNÍ KLÍČ
INDEX domainmetadata_idx ON domainmetadata (id_domény, druh);
kryptoklíče CREATE TABLE (
id INT AUTO_INCREMENT, INT AUTO_INCREMENT, INT AUTO_INCREMENT, INT AUTO_INCREMENT, BR /> NULL,
aktivní BOOL,
content TEXT,
PRIMÁRNÍ KLÍČ(id)
) Engine=InnoDB;
CREATE INDEX domaini dindex ON cryptokeys (id_domény);
CREATE TABLE tsigkeys (
id INT AUTO_INCREMENT,
název ) 5 CH 0 CH 0 ,
tajné VARCHAR(255),
PRIMÁRNÍ KLÍČ (id)
) Engine=InnoDB;
VYTVOŘIT UNIKÁTNÍ INDEX jmenný index NA tsigkeys(název, algoritmus);
ukončit;
V důsledku toho byla vytvořena databáze MySQL/MariaDB a uživatel pro instalaci PowerDNS.
Krok 3 – Instalace PowerDNS
Nainstalujte PowerDNS a všechny potřebné balíčky pomocí následujícího příkazu.
yum -y install pdns pdns-backend-mysql bind-utils
Po instalaci balíčků PowerDNS přejděte do adresáře '/etc/pdns/' a upravte konfigurační soubor 'pdns.conf' pomocí editoru vim.
cd /etc/pdns/
vim pdns.conf
Ve výchozím nastavení používá PowerDNS jako backend 'bind'. Napište tedy komentář '#' před konfiguraci 'launch=bind' a vložte konfiguraci backendu MySQL, jak je uvedeno níže.
#launch=bind
launch=gmysql
gmysql-host=localhost
gmysql-user=pdns
gmysql-password=pdnspassword2018
gmysql -dbname=powerdns
Uložit a zavřít.
Nyní spusťte službu pdns a přidejte ji do doby spouštění při spuštění.
systemctl start pdns
systemctl enable pdns
Poté přidejte službu DNS do brány firewall.
firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
A služba PowerDNS je v provozu, zkontrolujte pomocí následujícího příkazu.
netstat -tap | grep pdns
netstat -tulpn | grep 53
dig @10.9.9.10
Výsledkem bude, že služba pdns bude spuštěna na portu 53 a získáte odpověď ze serveru PowerDNS.
Krok 4 – Instalace Poweradmin
V tomto kroku nainstalujeme správu DNS pro PowerDNS s názvem „Poweradmin“. Je to webová aplikace založená na PHP, takže ke spuštění aplikace potřebujeme nainstalovat PHP a webový server.
Nainstalujte webový server httpd a balíčky PHP pomocí následujícího příkazu.
yum -y install httpd 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
Po instalaci musíme nainstalovat další balíčky PHP Pear. Spusťte následující příkaz.
yum -y install php-pear-DB php-pear-MDB2-Driver-mysqli
Jakmile je instalace httpd a PHP dokončena, spusťte službu httpd a přidejte ji do doby spouštění při spuštění.
systemctl spustit httpd
systemctl povolit httpd
Dále přejděte do adresáře '/var/www/html' a stáhněte si zdrojový kód poweradmin.
cd /var/www/html/
wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
Rozbalte komprimovaný soubor poweradmin a přejmenujte jej.
tar xvf poweradmin-2.1.7.tgz
mv poweradmin-2.1.7/ poweradmin/
Poté do firewallu přidejte protokoly HTTP a HTTPS.
firewall-cmd --add-service={http,https} --permanent
firewall-cmd --reload
A jsme připraveni na post-instalaci poweradmin.
Krok 5 – Poweradmin Post-Installation
Otevřete webový prohlížeč a zadejte IP adresu serveru a /poweradmin/install/ cestu URL pro instalaci. Můj je:
http://10.9.9.10/poweradmin/install/
Vyberte preferovaný jazyk a klikněte na tlačítko „Přejít na krok 2“.
Nyní stačí kliknout na tlačítko „Přejít na krok 3“.
Zobrazí se vám konfigurace databáze. Zadejte podrobnosti o databázi PowerDNS, které jsme vytvořili, a heslo správce pro PowerDNS.
Klikněte na tlačítko „Přejít na krok 4“.
Poté budete muset vytvořit nového uživatele s omezenými právy. Zadejte podrobnosti následovně a změňte uživatele, heslo atd. za své.
Nyní klikněte na tlačítko „Přejít na krok 5“.
A zobrazí se vám stránka jako níže.
Otevřete znovu svůj terminálový server, přihlaste se pomocí uživatele root a hesla. Poté spusťte dotazy MySQL jako na stránce.
mysql -u root -p
HESLO
GRANT SELECT, INSERT, UPDATE, DELETE
ON powerdns.*
TO 'hakase'@'localhost'
IDENTIFIKUJE 'hakase-labs123';
Nyní se vraťte do webového prohlížeče a klikněte na tlačítko „Přejít na krok 6“.
A zobrazí se vám stránka jako níže.
Instalačnímu programu se nepodařilo vytvořit novou konfiguraci '../inc/config.inc.php'. Musíme jej tedy vytvořit ručně.
Vraťte se na terminálový server, přejděte do adresáře '/var/www/html/poweradmin' a vytvořte nový konfigurační soubor 'inc/config.inc.php'.
cd /var/www/html/poweradmin
vim inc/config.inc.php
Nyní do něj vložte PHP skript na stránce.
Uložte a zavřete, poté se vraťte do prohlížeče a klikněte na tlačítko.
A instalace je dokončena.
Volitelně:
Pokud chcete podporovat adresy URL používané jinými dynamickými poskytovateli, zkopírujte soubor htaccess.
cd /var/www/html/poweradmin
cp install/htaccess.dist .htaccessPoté MUSÍTE odstranit adresář 'install'.
rm -rf /var/www/html/poweradmin/install
Vraťte se zpět do webového prohlížeče a přihlaste se k řídicímu panelu Poweradmin pomocí adresy URL, jak je uvedeno níže.
http://10.9.9.10/poweradmin/
Přihlaste se pomocí výchozího uživatele 'admin' a hesla a klikněte na tlačítko 'Go'.
V důsledku toho se vám zobrazí řídicí panel Poweradmin a instalace je dokončena.
Krok 6 – Vytvoření vzorové zóny a záznamů DNS
V této fázi otestujeme instalaci PowerDNS a Poweradmin vytvořením nové zóny DNS pro doménu s názvem 'emma.io'.
Na hlavním panelu Poweradmin klikněte na nabídku 'Přidat hlavní zónu'.
Nastavte název zóny s názvem domény 'emaa.io' a klikněte na tlačítko 'Přidat zónu'.
Kliknutím na nabídku „Seznam zón“ zobrazíte všechny dostupné zóny. A klikněte na tlačítko 'upravit' pro zónu 'emma.io'.
Kliknutím na nabídku „Seznam zón“ zobrazíte všechny dostupné zóny. A klikněte na tlačítko 'upravit' pro zónu 'emma.io'.
Nyní klikněte na tlačítko 'Přidat záznam' a úspěšně přidáme zónu DNS a záznam DNS pro doménu s názvem 'emma.io'.
Dále otestujeme doménu 'emma.io' pomocí příkazu nástroje DNS 'dig'.
Zkontrolujte jmenný server nebo záznam ns domény 'emma.io'.
dig NS emma.io @10.9.9.10
Zkontrolujte záznam DNS domény 'emma.io'.
dig A emma.io @10.9.9.10
Zobrazí se vám, že doména „emma.io“ má jmenný server z našeho serveru DNS „ns1.hakase-labs.io“ a „A“ tohoto názvu domény odpovídá naší konfiguraci nahoře s IP adresou serveru. '10.9.9.11'.
Nakonec byla instalace a konfigurace PowerDNS a Poweradmin na CentOS 7 úspěšně dokončena.