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í
×
    dnes 16:11 | Nová verze

    Příručka Linux From Scratch pro sestavení základního linuxového systému byla aktualizována v pravidelném půlročním termínu. Vydání 13.1 shrnuje přes 40 nových verzí balíčků a několik patchů. Navazující příručka Beyond Linux From Scratch s recepty pro sestavení dalších knihoven a aplikací zatím vydána nebyla, ačkoliv vývojová verze stále dostává aktualizace. Lze je číst online nebo stáhnout v HTML či PDF.

    |🇵🇸 | Komentářů: 0
    dnes 12:44 | IT novinky

    Národní bezpečnostní tým CSIRT.CZ koordinovaný sdružením CZ.NIC přichází se službou Strážci internetu, která má sjednotit způsob hlášení doménových jmen zneužívaných k páchání trestné činnosti. Službu mohou uživatelé využívat také prostřednictvím rozšíření do prohlížeče. Nový nástroj podporuje jak hlášení vyžadující autorizaci, tak anonymní reporting, u kterého však nebude možné zapojit takovou míru automatizace jako u

    … více »
    Ladislav Hagara | Komentářů: 13
    dnes 12:22 | Komunita

    Firefox pro iOS přichází s integrovaným blokováním reklam. Funkce je ve výchozím nastavení vypnutá a lze ji aktivovat v Settings > Browsing > Ad Blocker.

    Ladislav Hagara | Komentářů: 3
    dnes 11:22 | IT novinky

    Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila (𝕏) open-source robota Microduck. Předobjednat jej lze za 340 eur.

    Ladislav Hagara | Komentářů: 1
    dnes 10:55 | Nová verze

    Open-source autonomní AI agent OpenClaw (Wikipedie) byl vydán ve verzi 2026.8.1 aneb 2.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 18:55 | Nová verze

    Byla vydána první veřejná preview verze PrusaSliceru 3.0. Přesně 15 let po zveřejnění první verze Slic3ru, které připadlo na 1. září 2011. Jedná se o dosud největší upgrade PrusaSliceru: "Řídili jsme se tím, co skutečně potřebujete, a tak jsme například zcela zahodili stávající uživatelské rozhraní a vytvořili ho znovu od nuly. Přinášíme také nový systém projektů, kompletně přepracované profily navržené pro moderní tiskárny s větším

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 15:55 | Nová verze

    Byl vydán Mozilla Firefox 155.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze Smart Window, zatím ale dostupné pouze pro uživatele v USA, Kanadě a Francii. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 155 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | IT novinky

    Tima Cooka na pozici generálního ředitele společnosti Apple dnešním dnem nahradil John Ternus, který byl dosud odpovědný za hardware. Tim Cook vedl Apple od roku 2011, kdy funkci převzal od později zesnulého spoluzakladatele společnosti Stevea Jobse. Za 15 let v čele Applu více než zdvojnásobil tržní hodnotu firmy.

    Ladislav Hagara | Komentářů: 3
    včera 11:00 | Pozvánky

    Organizátoři konference LinuxDays ukončil veřejné přihlašování přednášek. Teď je na vás, abyste vybrali nejlepší témata pro letošní ročník. Hlasovat můžete do pondělí 7. září, poté bude podle výsledků hlasování sestaven program pro letošní ročník.

    Petr Krčmář | Komentářů: 5
    včera 10:55 | Nová verze

    Servo, engine webového prohlížeče napsaný v Rustu, byl vydán ve verzi 0.5.0. Novinky shrnuje přehled projektu za červenec. Došlo k dalšímu pokroku ve vykreslování webových stránek. Současným cílem projektu je vytvořit komponentu webového prohlížeče jako WebView pro použití v jiných aplikacích.

    |🇵🇸 | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (19%)
     (29%)
     (7%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2536 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

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

    17.1.2022 08:00 | Přečteno: 4438× | 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.