GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat PowerDNS Server a PowerDNS Admin na Ubuntu 20.04

PowerDNS je bezplatný a open source autoritativní jmenný server. Je napsán v C++ a běží na operačních systémech Unix, Linux a macOS. K ukládání zónových souborů a záznamů využívá MySQL, MariaDB, PostgreSQL a Oracle.

PowerDNS Admin je webový nástroj používaný pro správu PowerDNS. DNS zóny můžete vytvářet a spravovat pomocí webového prohlížeče. Dodává se s bohatou sadou funkcí. Některé z nich jsou uvedeny níže:

  • Podpora IPv4 a IPv6
  • Stránka stavu zobrazující užitečné informace
  • Automaticky vytvářet/aktualizovat reverzní záznamy PTR
  • Podpora hromadného vytváření domén
  • Podpora doménových šablon
  • Podpora DNSSec
  • Podpora ověřování uživatelů Local DB, SAML, LDAP, Active Directory

V tomto tutoriálu vám ukážeme, jak nainstalovat PowerDNS a PowerDNS admin na server Ubuntu 20.04.

Předpoklady

  • Server se systémem Ubuntu 20.04.
  • Platný název domény s adresou IP vašeho serveru.
  • Na serveru je nakonfigurováno heslo uživatele root.

Instalace a konfigurace serveru MariaDB

Než začnete, budete muset do systému nainstalovat databázový server MariaDB. Ve výchozím nastavení není nejnovější verze MariaDB k dispozici ve výchozím úložišti Ubuntu 20.04. Budete tedy muset do svého systému přidat úložiště MariaDB.

Nejprve nainstalujte požadované balíčky pomocí následujícího příkazu:

apt-get install software-properties-common gnupg2 -y

Jakmile jsou všechny balíčky nainstalovány, přidejte podpisový klíč MariaDB pomocí následujícího příkazu:

apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'

Dále přidejte úložiště MariaDB pomocí následujícího příkazu:

add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirrors.ukfast.co.uk/sites/mariadb/repo/10.5/ubuntu focal main'

Dále nainstalujte server MariaDB spuštěním následujícího příkazu:

apt-get install mariadb-server -y

Po instalaci budete muset vytvořit databázi a uživatele pro PowerDNS.

Nejprve se přihlaste do MariaDB pomocí následujícího příkazu:

mysql

Po přihlášení vytvořte databázi a uživatele pomocí následujícího příkazu:

MariaDB [(none)]> vytvořit databázi pdns;
MariaDB [(none)]> udělit vše na pdns.* na [e-mail chráněný] identifikovaný 'heslem';

Dále vyprázdněte oprávnění a ukončete prostředí MariaDB pomocí následujícího příkazu:

MariaDB [(none)]> flush oprávnění;
MariaDB [(none)]> exit;

Instalovat PowerDNS

Nejprve budete muset zakázat službu systemd-resolved z vašeho systému. Můžete jej zakázat pomocí následujícího příkazu:

systemctl disable --now systemd-resolved

Dále odstraňte výchozí soubor resolv.conf a vytvořte nový soubor:

rm -rf /etc/resolv.conf
echo "nameserver 8.8.8.8"> /etc/resolv.conf

Dále nainstalujte server PowerDNS pomocí následujícího příkazu:

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

Jakmile je PowerDNS nainstalováno, můžete přejít k dalšímu kroku.

Konfigurace PowerDNS

Nejprve budete muset importovat schéma databáze PowerDNS do databáze PowerDNS. Můžete jej importovat pomocí následujícího příkazu:

mysql -u pdnsadmin -p pdns  

Dále budete muset definovat podrobnosti připojení k databázi PowerDNS. Můžete to udělat úpravou souboru pdns.local.gmysql.conf:

nano /etc/powerdns/pdns.d/pdns.local.gmysql.conf

Změňte následující řádky:

# Konfigurace MySQL## Spustit gmysql backendlaunch+=gmysql# parametry gmysqlgmysql-host=127.0.0.1gmysql-port=3306gmysql-dbname=pdnsgmysql-user=pdnsadmingmysql-ocsql=pass před> 

Uložte a zavřete soubor a poté udělte správná oprávnění k souboru pdns.local.gmysql.conf:

chmod 640 /etc/powerdns/pdns.d/pdns.local.gmysql.conf

Dále zastavte server PowerDNS a ověřte PowerDNS pomocí následujícího příkazu:

systemctl stop pdns
pdns_server --daemon=no --guardian=no --loglevel=9

Pokud je vše v pořádku, měli byste získat následující výstup:

Nov 02 10:43:47 gmysql Připojení úspěšné. Připojeno k databázi 'pdns' na '127.0.0.1'.Nov 02 10:43:47 gmysql Připojení úspěšné. Připojeno k databázi 'pdns' na '127.0.0.1'.Nov 02 10:43:47 gmysql Připojení úspěšné. Připojeno k databázi 'pdns' na '127.0.0.1'. 2. listopadu 10:43:47 Spouštění vláken dokončeno, připraveno k distribuci otázek

Dále spusťte server PowerDNS pomocí následujícího příkazu:

systemctl start pdns

V tomto okamžiku se PowerDNS spustí a naslouchá na portu 53. Můžete to zkontrolovat pomocí následujícího příkazu:

ss -alnp4 | grep pdns

Měli byste získat následující výstup:

udp UNCONN 0 0 0.0.0.0:53 0.0.0.0:* users:(("pdns_server",pid=33140,fd=5)) tcp LISTEN 0 128 0.0.0.0:53 0.0.0.0:* users:(("pdns_server",pid=33140,fd=7)) 

Nainstalovat PowerDNS Admin

V této části vám ukážeme, jak nainstalovat PowerDNS admin s Nginx.

Instalovat požadované závislosti

Nejprve nainstalujte všechny závislosti požadované pro PowerDNS admin pomocí následujícího příkazu:

apt-get install nginx python3-dev libsasl2-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev libxmlsec1-dev libffi-dev pkg-config apt-transport-httpsentialonthdev3magit-ess baňka -y

Jakmile jsou všechny závislosti nainstalovány, přidejte úložiště Node.js pomocí následujícího příkazu:

curl -sL https://deb.nodesource.com/setup_14.x | bash -

Dále nainstalujte Node.js pomocí následujícího příkazu:

apt-get install nodejs -y

Dále přidejte úložiště příze pomocí následujícího příkazu:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tričko /etc/apt/sources.list.d/yarn.list

Dále aktualizujte úložiště a nainstalujte Yarn pomocí následujícího příkazu:

apt-get update -y
apt-get install yarn -y

V tomto okamžiku jsou nainstalovány všechny požadované závislosti, nyní můžete přejít k dalšímu kroku.

Stáhnout PowerDNS Admin

Dále si stáhněte nejnovější verzi PowerDNS admin z úložiště Git do kořenového adresáře Nginx:

klon git https://github.com/ngoduykhanh/PowerDNS-Admin.git /var/www/html/pdns

Dále změňte adresář na stažený adresář a vytvořte virtuální prostředí Pythonu pomocí následujícího příkazu:

cd /var/www/html/pdns/
virtualenv -p python3 flask

Dále aktivujte virtuální prostředí a nainstalujte všechny závislosti Pythonu pomocí následujícího příkazu:

zdroj ./flask/bin/activate
pip install -r requirements.txt

Dále deaktivujte z virtuálního prostředí pomocí následujícího příkazu:

deaktivovat

Definovat připojení k databázi

Dále budete muset definovat podrobnosti připojení databáze PowerDNS k souboru default_config.py:

nano /var/www/html/pdns/powerdnsadmin/default_config.py

Změňte následující řádky:

salt ='yourSecreteKey'Secret_Key =' yourSecReteKey'Bind_address ='0.0.0'Port =9191hsts_enabled =falseoffline_mode =falsesqla_db_user =' pdnsals ='tb_pswords ='' '' '' Pravda

Uložte a zavřete soubor, změňte adresář na pdns a aktivujte virtuální prostředí:

cd /var/www/html/pdns/
zdroj ./flask/bin/activate

Dále aktualizujte databázi pomocí následujícího příkazu:

export FLASK_APP=powerdnsadmin/__init__.py
upgrade databáze flask
instalace příze --pure-lockfile
sestavení flasku aktiv

Dále deaktivujte virtuální prostředí pomocí následujícího příkazu:

deaktivovat

Povolit PowerDNS Admin API

Správce PowerDNS používá JSON API pro čtení statistik a úpravu obsahu zóny, metadat a klíčových materiálů DNSSEC. Můžete to povolit úpravou souboru pdns.conf:

nano /etc/powerdns/pdns.conf

Změňte následující řádky:

api=yesapi-key=yoursecretekey

Uložte a zavřete soubor a poté restartujte službu PowerDNS, aby se změny projevily:

systemctl restart pdns

Konfigurace Nginx pro správce PowerDNS

Dále budete muset nakonfigurovat Nginx pro správce PowerDNS. Chcete-li tak učinit, vytvořte konfigurační soubor virtuálního hostitele Nginx pomocí následujícího příkazu:

nano /etc/nginx/conf.d/pdns-admin.conf

Přidejte následující řádky:

server { poslouchat *:80; název_serveru pdnsadmin.example.com; index index.html index.htm index.php; root /var/www/html/pdns; access_log /var/log/nginx/pdnsadmin_access.log kombinovaný; error_log /var/log/nginx/pdnsadmin_error.log; client_max_body_velikost 10m; client_body_buffer_size 128k; proxy_redirect off; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 32 4k; proxy_buffer_size 8k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_headers_hash_bucket_size 64; umístění ~ ^/static/ { include /etc/nginx/mime.types; root /var/www/html/pdns/powerdnsadmin; umístění ~* \.(jpg|jpeg|png|gif)$ { vyprší 365d; } umístění ~* ^.+.(css|js)$ { vyprší 7d; } } umístění / { proxy_pass http://unix:/run/pdnsadmin/socket; proxy_read_timeout 120; proxy_connect_timeout 120; proxy_redirect off; }}

Uložte a zavřete soubor a poté pomocí následujícího příkazu zkontrolujte Nginx, zda neobsahuje nějakou chybu syntaxe:

nginx -t

Měli byste získat následující výstup:

nginx:syntaxe konfiguračního souboru /etc/nginx/nginx.conf je oknginx:konfigurační soubor /etc/nginx/nginx.conf test byl úspěšný

Dále změňte vlastnictví pdns na www-data:

chown -R www-data:www-data /var/www/html/pdns

Nakonec restartujte službu Nginx, aby se změny projevily:

systemctl restart nginx

Vytvoření souboru služby Systemd pro správce PowerDNS

Dále budete muset vytvořit soubor služby systemd pro správu služby PowerDNS.

Nejprve vytvořte soubor služby pdns pomocí následujícího příkazu:

nano /etc/systemd/system/pdnsadmin.service

Přidejte následující řádky:

[Unit]Description=PowerDNS-AdminRequires=pdnsadmin.socketAfter=network.target[Service]PIDFile=/run/pdnsadmin/pidUser=pdnsGroup=pdnsWorkingDirectory=/var/www/html/pdnsExecStart=/var/www/html /pdns/flask/bin/gunicorn --pid /run/pdnsadmin/pid --bind unix:/run/pdnsadmin/socket 'powerdnsadmin:create_app()'ExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/ kill -s TERM $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target

Uložte a zavřete soubor a poté vytvořte soubor pdnsadmin sockt pomocí následujícího příkazu:

nano /etc/systemd/system/pdnsadmin.socket

Přidejte následující řádky:

[Unit]Description=PowerDNS-Admin socket[Socket]ListenStream=/run/pdnsadmin/socket[Install]WantedBy=sockets.target

Uložte a zavřete soubor a poté vytvořte požadované soubory a adresáře pomocí následujícího příkazu:

echo "d /run/pdnsadmin 0755 pdns pdns -">> /etc/tmpfiles.d/pdnsadmin.conf
mkdir /run/pdnsadmin/
chown -R pdns:/run/pdnsadmin /
chown -R pdns:/var/www/html/pdns/powerdnsadmin/

Dále znovu načtěte démona systemd pomocí následujícího příkazu:

systemctl daemon-reload

Dále povolte spuštění služby pdnsadmin při restartování systému pomocí následujícího příkazu:

systemctl enable --now pdnsadmin.service pdnsadmin.socket

Dále ověřte stav obou služeb pomocí následujícího příkazu:

stav systemctl pdnsadmin.service pdnsadmin.socket

Měli byste získat následující výstup:

? pdnsadmin.service - PowerDNS-Admin Načteno:načteno (/etc/systemd/system/pdnsadmin.service; povoleno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (běží) od Po 2020-11-02 10:54:19 UTC; před 5 sTriggeredBy:? pdnsadmin.socket Hlavní PID:38881 (gunicorn) Úkoly:2 (limit:2353) Paměť:62,5M CGroup:/system.slice/pdnsadmin.service ??38881 /var/www/html/pdns/flask/bin/python / var/www/html/pdns/flask/bin/gunicorn --pid /run/pdnsadmin/pid --bind unix:/run/pdnsa> ??38898 /var/www/html/pdns/flask/bin/python / var/www/html/pdns/flask/bin/gunicorn --pid /run/pdnsadmin/pid --bind unix:/run/pdnsa>Nov 02 10:54:19 pdnsadmin.example.com systemd[1]:Spuštěno PowerDNS-Admin.Nov 02 10:54:19 pdnsadmin.example.com gunicorn[38881]:[2020-11-02 10:54:19 +0000] [38881] [INFO] Starting gunicorn 20.0.4Nov:54 :19 pdnsadmin.example.com gunicorn[38881]:[2020-11-02 10:54:19 +0000] [38881] [INFO] Poslech na:unix:/run/pdnsadmin/socket (38881)Nov:2 10 54:19 pdnsadmin.example.com gunicorn[38881]:[2020-11-02 10:54:19 +0000] [38881] [INFO] Pomocí pracovníka:syncNov 02 10:54:19 pdnsadmin.gunicornle.com 38898]:[2020-11-02 10:54:19 +0000] [38898] [INFO] Bootovací pracovník s pid:38898? pdnsadmin.socket - PowerDNS-Admin socket Načteno:načteno (/etc/systemd/system/pdnsadmin.socket; povoleno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (běží) od Po 2020-11-02 10:54:19 UTC; před 5s Spouštěče:? pdnsadmin.service Poslech:/run/pdnsadmin/socket (Stream) CGroup:/system.slice/pdnsadmin.socketNov 02 10:54:19 pdnsadmin.example.com systemd[1]:Poslech na PowerDNS-Admin socketu.

Přístup k webovému uživatelskému rozhraní pro správu PowerDNS

Nyní otevřete webový prohlížeč a přejděte do webového rozhraní správce PowerDNS pomocí adresy URL http://pdnsadmin.example.com . Budete přesměrováni na následující stránku:

Klikněte na Vytvořit účet knoflík. Měli byste vidět následující obrazovku:

Zadejte své uživatelské údaje správce a klikněte na Registrovat tlačítko pro vytvoření účtu. Na následující obrazovce byste měli vidět přihlašovací stránku správce PowerDNS:

Zadejte své administrátorské uživatelské jméno, heslo a klikněte na Přihlásit se knoflík. Webové rozhraní správce PowerDNS byste měli vidět na následující stránce:

Zde zadejte adresu URL PowerDNS API pro připojení k PowerDNS a jeho správu. Poté klikněte na Aktualizovat tlačítko pro uložení změn. Měli byste vidět následující stránku:

Klikněte na Hlavní panel knoflík. Na následující obrazovce byste měli vidět řídicí panel pro správu PowerDNS:

Závěr

Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali PowerDNS a PowerDNS admin na serveru Ubuntu 20.04. Nyní můžete vytvářet zóny a přidávat záznamy prostřednictvím webového rozhraní pro správu PowerDNS.


Ubuntu
  1. Jak nainstalovat a nakonfigurovat server DHCP na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat server Redis v Ubuntu

  3. Jak nainstalovat a nakonfigurovat Mariadb 10 v Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 20.04

  3. Jak nainstalovat MariaDB na Ubuntu 22.04

  1. Jak nainstalovat MariaDB na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 18.04