[[oktatas:linux:dns_szerver|< DNS szerver]] ====== PowerDNS ====== * **Szerző:** Sallai András * Copyright (c) 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 ===== Linkek ===== * http://www.powerdns.com * http://freecode.com/projects/pdns-admin * http://www.poweradmin.org * http://sourceforge.net/projects/powerdnsadmin/ * http://www.howtoforge.com/installing-powerdns-with-mysql-backend-and-poweradmin-on-debian-squeeze