Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).
V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).
Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.
Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.
Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevili v únicích dat a případně se nechat na další úniky upozorňovat.
Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."
Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.
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ší.
Nejdříve si ujasníme základní pojmy.
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.
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.
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.
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:
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:
/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'))
/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
/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.
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
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
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
Tiskni
Sdílej: