abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:22 | Bezpečnostní upozornění

    Výzkumníci ukazují, jak mohou otevřené tunely a IPv6 Extension Headers synchronizovat pakety do krátkých provozních špiček. V kontrolovaném experimentu naměřili přes 180násobnou koncentraci paketového toku vůči průměrné rychlosti odesílání — nikoli 180násobné zvětšení objemu dat. Článek obsahuje metodiku, limity měření i mitigace pro GRE, IPIP a další tunely.

    vencour | Komentářů: 1
    včera 12:44 | Pozvánky

    Po velkém úspěchu prvního MobileLinux Hackdaye se vracíme do Českých Budějovic s druhým ročníkem. V pátek 30. října 2026 od 10:00 se v prostorách Jihočeské univerzity uskuteční Embedded & MobileLinux Hackday #2. Těšit se můžete na témata jako Immutable Linux na telefonech (BengalOS), U-Boot a upstream vývoj, AI optimalizace pro embedded systémy nebo otevřený hardware. Nebude chybět praktické hackování, sdílení zkušeností a možnost … více »

    lkocman | Komentářů: 2
    včera 00:44 | Bezpečnostní upozornění

    Dne 21. října 2026 vydal projekt Node.js bezpečnostní aktualizace opravující deset zranitelností, včetně jedné umožňující potenciální vzdálené spuštění kódu (RCE). Nejzajímavější je CVE-2026-111497, chyba dekodéru Brotli, kterou objevili výzkumníci využívající OpenAI Codex Security. Chyba je v nativním dekodéru Brotli, nikoli v samotném JavaScriptu. Speciálně vytvořený komprimovaný vstup způsobí, že dekodér zamění

    … více »
    vencour | Komentářů: 13
    23.10. 17:44 | IT novinky

    Francouzský výrobce kabelů Nexans upozornil na napjaté dodávky elektrických kabelů. Výstavba nové výrobní linky pro některé typy kabelů může trvat přibližně tři roky. Datacentra potřebují rozsáhlé nízkonapěťové a středněnapěťové rozvody. Poptávka roste současně s modernizací elektrických sítí. Někteří odběratelé proto uzavírají výrazně delší dodavatelské smlouvy [Reuters].

    vencour | Komentářů: 14
    23.10. 14:44 | Zajímavý projekt

    Představena byla (𝕏) virtuální platforma FLYBENCH FPV, která nováčky provede zapojením a konstrukcí dronů.

    Ladislav Hagara | Komentářů: 5
    23.10. 04:11 | Nová verze

    Google Chrome 156 byl prohlášen za stabilní. Přehled novinek v poznámkách k vydání. Opraveno bylo 353 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    22.10. 20:22 | IT novinky

    Indická společnost eMudhra po bezpečnostním incidentu, tj. kompromitaci soukromých klíčů osmi mezilehlých certifikátů své certifikační autority, opouští globální byznys s SSL/TLS certifikáty.

    Ladislav Hagara | Komentářů: 4
    22.10. 15:44 | Bezpečnostní upozornění

    Dle Phoronixu zveřejnila společnost Trend Micro prostřednictvím programu Zero Day Initiative (ZDI) několik hlášení bezpečnostních zranitelností přímo na veřejném mailing listu LKML, přestože některé chyby dosud nemají opravu začleněnou do hlavní větve jádra. Mezi hlášenými problémy jsou dvě zranitelnosti s hodnocením CVSS 9.0, týkající se SMB Direct a KSMBD, které mohou umožnit vzdálené spuštění kódu. Další hlášení se týkají … více »

    vencour | Komentářů: 0
    22.10. 15:33 | Nová verze

    Správce hesel KeePassXC byl vydán ve verzi 2.8.0. Přechází na Qt 6, podporuje vkládání hesel s Waylandem, rychlé odemykání pomocí Polkitu nebo možnost nastavení klávesových zkratek (seznam změn).

    ʚĭɞ 🍉 | Komentářů: 0
    22.10. 15:22 | Nová verze

    Databáze DuckDB (Wikipedie) byla vydána ve verzi 2.0.0 LTS. S kódovým názvem Cinnamon Teal (čírka skořicová). S vyladěným protokolem Quack.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2908 hlasů
     Komentářů: 33, poslední 20.10. 23:44
    Rozcestník

    PowerDNS - Autoritativní i rekurzivní dns server s klikátkem

    17.1.2022 08:00 | Přečteno: 4529× | linux | poslední úprava: 17.1.2022 08:00

    Je to už delší doba, co jsem sepsal článek PowerDNS – přívětivý a jednoduchý DNS server. Od té doby se toho hodně změnilo. Takže opět uvolním nějaký malý výcuc z interní dokumentace.

    Úvod

    PowerDNS se stále u nás používá v interní síti jako autoritativní dns server pro některé domény i jako rekurzivní dns server. Je to dáno historicky, je to dáno kvůli nezasírání si dns serverů v rámci Active Directory, ale i kvůli dalším věcem. PowerDNS se stále hodně vyvíjí a architektura se postupně přepracovala. Důvod, proč jako předsazený dns server nepoužíváme bind, je stále stejný. PowerDNS podporuje mysql, jsou k dispozici pěkná grafická klikátka a pro menší klikací nasazení je to tedy podle mě vhodnější.


    Slovníček pojmů

    Nejdříve si ujasníme základní pojmy.

    Autoritativní DNS server

    Jedná se o server, kde jsou vedeny domény. Dotazy na domény tedy nikam nepřeposílá, ale jen obhospodařovává to, co je na něm nastaveno. Typickým příkladem jsou dns servery webhostingů. Když se jich zeptáte na nějakou doménu, která není u nich vedena, tak odpoví, že jí neznají. Nepřepošlou dotaz dál a nepřeloží vám to.


    Rekurzivní DNS server

    Jedná se o dns server, který kešuje a přeposílá dotazy. Když se ho zeptáte na cokoli, tak odpoví a správně přeloží. Na rekurzivním dns serveru nejsou vedeny domény, funguje opravdu jen jako kešovací brána pro překlady. Typickým příkladem jsou dns servery poskytovatelů připojení k internetu.


    Rekurzivní i autoritativní DNS server v jednom?

    Je možné mít jednu službu, kde jsou vedeny nějaké domény, a když je nezná, přepošle dotaz dál. Od tohoto konceptu se ale ustupuje. A jeden z hráčů, který tak učinil, je i PowerDNS.

    V původním článku má PowerDNS autoritativní část i rekurzivní část v rámci jednoho serveru. Od verze 4.1.0 byla rekurzivní část separována do vlastní služby. Tj. autoritativní část i rekurzivní část běží na vlastním portu.


    Architektura PowerDNS

    Já chci mít ve firmě PowerDNS, klikací a chci ho mít jako autoritativní i jako rekurzivní. Jak toho docílit? Řekli jsme si, že jsou tyto části rozděleny a každá běží na svém portu. Obě tedy nemohou běžet na portu 53. Jak to tedy funguje? Jednoduše, ani jedna nepoběží na portu 53 :).

    Princip je jednoduchý, autoritativní část i rekurzivní část poběží na localhostu. Autoritativní část poběží třeba na portu 5300 a rekurzivní část třeba na portu 5301. Na portu 53 pak poběží load balancer, který bude podle politik rozhazovat komunikaci. Jako dns balancer se používá dnsdist. PDNS má note, jak provést migraci: Migrating from using recursion on the Authoritative Server to using a Recursor.

    V původním článku bylo zmíněno jako klikací web rozhraní PowerAdmin, který se stále vyvíjí a jedná se asi o nejlepší klikací web rozhraní pro PowerDNS, které podporuje i dnssec. Pro mé použití jsem v době minulé zkusil zaexperimentovat a nasadil jsem PDNS Manager. Důvodů bylo několik malicherných, je to jednodušší, pěknější a v tu chvíli mi to více vyhovoval. Každý, nechť se rozhodne sám, co použije a jak.

    Finální architektura nakonec vypadá takto:
    PowerDNS Architecture


    Konfigurace

    Jak vidíte z architektury, tak nejdříve jde komunikace na dnsdist, který požadavky přesměruje na recursor. Ten se pak postará o rozhození správným směrem. Dnsdist komunikuje ale i s autoritativním PowerDNS kvůli transféru domén s dalšími dns servery. Tj. kvůli axfr komunikaci. V síti máme další dns servery, které fungují jako slave a dělá se na ně transfer dns zón. Těmi dns servery jsou: 192.168.1.1, 192.168.1.2, 192.168.1.3. Konfigurace pak tedy bude vypadat takto:


    dnsdist

    /etc/dnsdist/dnsdist.conf

    addLocal('0.0.0.0:53')
    addACL('0.0.0.0/0')
    
    newServer({address='127.0.0.1:5300', pool='auth'})
    newServer({address='127.0.0.1:5301', pool='recursor'})
    
    -- AXFR ACL
    addAction(AndRule{
        OrRule{
            QTypeRule(dnsdist.AXFR),
            QTypeRule(dnsdist.IXFR)
        },
        NotRule(OrRule{
            -- localhost
            makeRule('127.0.0.1'),
            makeRule('::1'),
            -- A slave
            makeRule('192.168.1.1'),
            makeRule('192.168.2.1'),
            makeRule('192.168.3.5'),
        })
    }, RCodeAction(dnsdist.REFUSED))
    
    
    -- Notify ACL
    addAction(AndRule{
        OpcodeRule(DNSOpcode.Notify),
        NotRule(OrRule{
            -- My superslave
            makeRule('192.168.1.1'),
            makeRule('192.168.2.1'),
            makeRule('192.168.3.1'),
        })
    }, RCodeAction(dnsdist.REFUSED))
    
    
    -- AXFR and Notify Target
    addAction(OrRule{
        QTypeRule(dnsdist.SOA),
        QTypeRule(dnsdist.AXFR),
        QTypeRule(dnsdist.IXFR),
        OpcodeRule(DNSOpcode.Notify)
    }, PoolAction("auth"))
    
    
    -- IP address for redirect to recursor:
    recursive_ips = newNMG()
    recursive_ips:addMask('0.0.0.0/0')
    
    addAction(NetmaskGroupRule(recursive_ips), PoolAction('recursor'))
    addAction(AllRule(), PoolAction('auth'))
    


    PowerDNS - autoritativní

    /etc/powerdns/pdns.conf

    ...
    allow-axfr-ips=127.0.0.1
    allow-unsigned-supermaster=no
    also-notify=192.168.1.1,192.168.1.2,192.168.1.3
    daemon=yes
    disable-axfr=no
    guardian=yes
    local-port=5300
    log-dns-queries=no
    master=yes
    trusted-notification-proxy=127.0.0.1
    webserver=yes
    webserver-address=0.0.0.0
    webserver-allow-from=127.0.0.1,::1
    webserver-password=heslo
    webserver-port=8081
    version-string=powerdns
    ...
    

    /etc/powerdns/pdns.d/mysql.conf

    launch=gmysql
    
    gmysql-host=localhost
    gmysql-port=3306
    gmysql-dbname=powerdns
    gmysql-user=powerdns
    gmysql-password=heslo123
    gmysql-dnssec=no
    


    PowerDNS - rekurzivní

    /etc/powerdns/recursor.conf

    ...
    daemon=yes
    forward-zones-file=/etc/powerdns/recursor_forward_zones.conf
    forward-zones-recurse=.=8.8.8.8
    hint-file=/usr/share/dns/root.hints
    local-address=0.0.0.0
    local-port=5301
    quiet=yes
    ...
    
    /etc/powerdns/recursor_forward_zones.conf
    devaine.local=127.0.0.1:5300
    dcera.local=192.168.58.2
    corp.devaine.cz=192.168.1.151:53;192.168.1.152:53
    


    Jak vidíte, tak nastavení je jednoduché. Trochu složitější je zpočátku proniknout do nastavení politik co a jak kam směrovat u dnsdist, ale jinak je to vše úplně v klidu.


    Sekundární DNS server

    V původním článku jsem dělal sync dns zón na sekundární dns server pomocí syncu databáze. To jsem také časem změnil a sync dělám pomocí axfr transféru dns zón. Jinými slovy, uvedenou konfiguraci PowerDNS+dnsdist mám úplně stejně na dalším serveru, jen s tím rozdílem, že autoritativní část je nastavena takto:

    /etc/powerdns/pdns.conf

    ...
    allow-axfr-ips=127.0.0.1
    allow-unsigned-supermaster=no
    #also-notify=192.168.1.1,192.168.1.2,192.168.1.3
    daemon=yes
    disable-axfr=no
    guardian=yes
    local-port=5300
    log-dns-queries=no
    master=yes
    slave=yes
    slave-cycle-interval=60
    trusted-notification-proxy=127.0.0.1
    webserver=yes
    webserver-address=0.0.0.0
    webserver-allow-from=127.0.0.1,::1
    webserver-password=heslo
    webserver-port=8081
    version-string=powerdns
    ...
    

    /etc/powerdns/pdns.d/mysql.conf

    launch=gmysql
    
    gmysql-host=localhost
    gmysql-port=3306
    gmysql-dbname=powerdns
    gmysql-user=powerdns
    gmysql-password=heslo123
    gmysql-dnssec=no
    


    Diagnostika

    Pokud chceme nějak diagnostikovat problémy s dns, tak základ je samozřejmě program "dig" z balíčku dnsutils. Tento program je něco jako nslookup, ale lepší. Pár příkladů:

    # pošli dotaz na konkrétní dns server
    dig @8.8.8.8 devaine.cz
    
    # zdiagnostikuj autoritativní část z příkladu
    dig @127.0.0.1 -p 5300 corp.devaine.cz
    
    # zeptej se na mx záznam
    dig @8.8.8.8 abclinuxu.cz mx
    
    # zeptej se na txt záznam
    dig @8.8.8.8 heronovo.cz txt
    
    # zeptej se na rdns
    dig -x 23.88.41.116
    

    Dobrým nástrojem, který nám pomůže diagnostikovat problémy s rekurzorem je "rec_control":

    # zjistit stav konkrétního záznamu
    rec_control dump-cache /tmp/dns-cache.txt
    cat /tmp/systemd-private-8e23dc6a1549477f9873f6b5594c873a-pdns-recursor.service-oBkeOV/tmp/dns-cache.txt
    
    # smaž z cache
    rec_control wipe-cache corp.devaine.cz
    
    # zobraz aktuální dotazy
    rec_control current-queries
    
    # zobraz top
    rec_control top-queries
    

    Dalším nástrojem je "pdns_control", který slouží k ovládání dns serveru, pár příkladů

    # jak dlouho běží služba
    pdns_control uptime
    
    # přehled zón na serveru
    pdns_control list-zones
    
    # zjisti, zda služba žije
    pdns_control rping
    
    # zobraz všechny statistiky
    pdns_control show '*'
    
    # zobraz konkrétní statistiku
    pdns_control show udp4-queries
    


    Závěr

    Myslím si, že nemá smysl psát ucelený návod typu step2step jako v předchozím článku. Kdo chce grafické klikátko, tak si ho doinstaluje úplně stejně jako je v předchozím článku uvedeno, jinak se nic dalšího nemění.

    A jak jste na tom vy? Co používáte a jak?

    Zdar Max

           

    Hodnocení: 100 %

            špatné • dobré        

    Anketa

    Jak jste na tom? Co používáte?
     (48 %)
     (16 %)
     (20 %)
     (16 %)
     (7 %)
     (18 %)
     (7 %)
     (5 %)
     (11 %)
    Celkem 44 hlasů

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Diskuse byla administrátory uzamčena

    17.1.2022 10:28 MP
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    Co se tyce grafickeho klikatka, tak jsem trochu nestastny. Puvodni PowerAdmin jiz neni vyvyjeny, takze momentalne vse konfiguruji pres cli, a jako nouzovou variantu mam Pdns Admin, cili misto klasickeho php nejaky kontejner s x technologiemi, coz se mi spatne dava do konfig managementu. A timpadem mam problem s moznosti vyuzivat Let's Encrypt.

    Dnsdist pouzivam taky, ale mam to predrazene az pred auth servery, kdyz jsem kreslil redundantni schema vcetne ruznych forwardu intranetovych/public zon, tak dnsdist pred rekurzory mi vyrobil krasne neresitelne smycky. Jen si clovek musi davat bacha pri upgradech dnsdist, velmi radi meni nazvy funkci, coz se config managementem spatne vykryva, taky jsem na tom mel uz pekny firemni vypadek.

    17.1.2022 10:54 Max | skóre: 73 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    PowerAdmin se ale pořád vyvíjí, jen to UI má myslím pořád strašný. Pokud jde o pdns admin, tak docker přece používat nemusíš, ne?
    Zdar Max
    Měl jsem sen ... :(
    17.1.2022 11:48 MP
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    Tak PowerAdmin - to je nejaka novinka, protoze pred rokem a vice to rozhodne bylo neudrzovany repo.

    Eh, nahradou jsem pouzil Powerdns-Admin, coz kdyz se clovek podiva na postup instalace mimo kontejner - https://github.com/PowerDNS-Admin/PowerDNS-Admin/wiki/Running-PowerDNS-Admin-on-Ubuntu-or-Debian, tak ...
    17.1.2022 12:19 Max | skóre: 73 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    Na ten postup jsem právě koukal a buď jsem už sešlehaný časem a jinýma řešeníma, nebo nevím, ale mě to nepřijde složitý. MySQL + Node.js + Python + bych před to dal Nginx jako reverzní proxy. Easy peasy :).
    Zdar Max
    Měl jsem sen ... :(
    17.1.2022 13:50 MP
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    a k tomu yarn, flask, pip prikazy...

    Jaky rozdil nastavit nginx + slozku + nahrat primo zdrojaky...
    17.1.2022 13:53 Max | skóre: 73 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    Pokrok nezastavíš, no :).
    Zdar Max
    Měl jsem sen ... :(
    17.1.2022 10:53 Mayhem
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    Pro me ucely vzdy dostacoval bind, ale pak jsem objevil dnsmasq a zamiloval jsem si jej. :-D knot jsem zkousel, ale to je pro muj ucel kanon na orla. A take je od cznicu, ktery nemam rad.
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.