Tartalomjegyzék
PowerDNS
- Szerző: Sallai András
- Copyright © Sallai András, 2012, 2013
- Licenc: GNU Free Documentation License 1.3
- Web: http://szit.hu
Bevezetés
Egy rövid leírás a PowerDNS használatáról MySQL háttérrel.
Ha szétnézünk az Interneten, Debian, Ubuntu vagy más Linuxokon hogyan is kell beállítani a PowerDNS-t, akkor nagyon sok utasítás szerepel például az adatbázis, táblák, felhasználók létrehozásáról, konfigurálásról, stb. Itt pedig én elintéztem a beállításokat egyetlen állománytörléssel. Miért van ez?
A jelenlegi Debian verzió a 7.2. Itt egyszerűen nem kell többről gondoskodni. A telepítő mindent megcsinál, ha megadom a MySQL root jelszavát, majd egy jelszót a PowerDNS számára.
A PowerDNS-ről
A PowerDNS egy C++-ban írt GPL licencelésű DNS szerver. A legnagyobb előnye, hogy többféle háttérből képes dolgozni. Rendelkezik terheléselosztó és hibakezelő algoritmusokkal, több szálas.
A PowerDNS egy authoratív, azaz illetékes szerver. Ez annyit jelent, hogy DNS zónákat tárol, zónákban illetékes. A DNS recursor egy teljesen különálló program.
Telepítés MySQL háttérrel (backend)
Telepítsük a MySQL szervert:
apt-get install mysql-server
Telepítsük a PDNS szükséges csomagjait:
apt-get install pdns-server pdns-backend-mysql
A pdns-backend-mysql csomag telepítése létrehozza a MySQL-ban a szükséges táblákat.
Beállítás
Egyetlen fájlt kell törölni:
rm /etc/powerdns/pdns.d/pdns.simplebind
A fájlban lévő beállításokat csak telepítés utáni tesztelésre tették bele a gyártók.
Poweradmin
A PowerDNS-hez három féle webes adminisztrációs felület is ismert. Ebből egyet találunk itt, a többi weboldal megtalálható a linkek között.
Szedjük le a legújabb PHP alapú Poweradmin-t:
lynx https://www.poweradmin.org
Csomagoljuk ki, például a /var/www/poweradmin könyvtárba. Ekkor így fogjuk elérni:
http://192.168.5.6/poweradmin/
Ha szeretnénk olyan felső szintű tartománynevet (top level domain), amely nem valódi – például tanulási céllal –, akkor szerkesztenünk kell a következő állományt:
mcedit /var/www/poweradmin/inc/toolkit.inc.php
Keressük meg benne a $valid_tlds = array(); tömböt és egészítsük ki a kívánt legfelső szintű tartománynévvel.
Például a végére írhatjuk az „and” nevet:
$valid_tlds = array( ... ... ... "zw", "and");
Ne felejtsünk el előtte vesszőt írni, és legyen idézőjelben.
Böngészőben:
http://192.168.5.6/poweradmin/install
Értelemszerűen beállítjuk.
Lesz egy ehhez hasonló SQL utasítás is. Ezt be kell másolni egy SQL parancssorba:
GRANT SELECT, INSERT, UPDATE, DELETE ON pdns.* TO 'joska'@'127.0.0.1' IDENTIFIED BY '12345';
A végén kapunk egy ehhez hasonló tartalmat:
$db_host = '127.0.0.1'; $db_user = 'joska'; $db_pass = '12345'; $db_name = 'pdns'; $db_port = '3306'; $db_type = 'mysql'; $db_layer = 'PDO'; $session_key = '##Io[f0YTPc3&j!yeFm5FRgtl&Mitgfs0!C*qGe{+nCI^Q'; $iface_lang = 'en_EN'; $dns_hostmaster = 'hostmaster.kek.and'; $dns_ns1 = 'ns1.kek.and'; $dns_ns2 = 'ns2.kek.and';
Ezt el kell menteni a következő helyre:
/var/www/poweradmin/inc/config.inc.php
Kitöröljük az install könyvtárat és kész.
Persze kézzel is el lehet készíteni a fájl, a fenti könyvtárban van, hozzá egy minta:
cp /var/www/poweradmin/inc/config-me.inc.php /var/www/poweradmin/inc/config.inc.php
Szerkesszük a fájlt.
Zóna felvétele
A webfelületen bejelentkezünk:
http://192.168.5.6/poweradmin/
Felveszünk egy zónát. Egy zónának legyen minimum 1 NS rekordja és egy A rekordja a teszteléshez.
Utána parancssorban:
pdnssec rectify-zone zold.and
Ehhez hasonló eredményt látunk:
Adding NSEC ordering information
Tesztek
MySQL
Ellenőrizzük:
netstat -tap | grep mysql
Lehetséges kimenet:
root@jupiter:~# netstat -tap | grep mysql tcp 0 0 localhost:mysql *:* LISTEN 2342/mysqld root@jupiter:~#
PDNS
apt-get install nmap nmap -sU localhost
Eredményben lenni kell egy ilyen sornak:
53/udp open/filtered domain
Hibák ellenőrzése
tail -f /var/log/syslog
Zóna tesztje
dig @localhost zold.and
Függelék
További kapcsolódó csomagok:
- pdns-recursor - PowerDNS recursor (caching)
- pdns-backend-geo - geo backend for PowerDNS
- pdns-backend-ldap - LDAP backend for PowerDNS
- pdns-backend-mysql - generic MySQL backend for PowerDNS
- pdns-backend-pgsql - generic PostgreSQL backend for PowerDNS
- pdns-backend-pipe - pipe/coprocess backend for PowerDNS
- pdns-backend-sqlite3 - sqlite backend for PowerDNS
- pdns-backend-sqlite - sqlite backend for PowerDNS
- pdns-doc - PowerDNS manual
- pdns-server - extremely powerful and versatile nameserver