Uroš Popović v krátkém článku vysvětluje, co jsou emulátor terminálu, TTY a shell a jaké jsou mezi nimi rozdíly. Jde o první díl seriálu na jeho novém webu Linux Field Guide věnovaném nízkoúrovňové práci s linuxovými systémy.
Byl vydán Debian 13.5, tj. pátá opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.14, tj. čtrnáctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
CiviCRM (Wikipedie) bylo vydáno v nové verzi 6.14.0. Podrobnosti o nových funkcích a opravách najdete na release stránce. CiviCRM je robustní open-source CRM systém navržený speciálně pro neziskové organizace, spolky a občanské iniciativy. Projekt je napsán v jazyce PHP a licencován pod GNU Affero General Public License (AGPLv3). Český překlad má nyní 45 % přeložených řetězců a přibližuje se milníku 50 %. Potřebujeme vaši pomoc, abychom se dostali dál. Pokud máte chuť přispět překladem nebo korekturou, přidejte se na platformu Transifex.
Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno [oss-security mailing list].
Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.
Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.
Společnost Red Hat představila Fedora Hummingbird, tj. linuxovou distribuci s nativním kontejnerovým designem určenou pro vývojáře využívající AI agenty.
Hru The Legend of Zelda: Twilight Princess od společnosti Nintendo si lze nově díky projektu Dusklight (původně Dusk) a reverznímu inženýrství zahrát i na počítačích a mobilních zařízeních. Vyžadována je kopie původní hry (textury, modely, hudba, zvukové efekty, …). Ukázka na YouTube. Projekt byl zahájen v srpnu 2020.
Byla vydána nová major verze 29.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Detailní přehled novinek na GitHubu.
Po zranitelnostech Copy Fail a Dirty Frag přichází zranitelnost Fragnesia. Další lokální eskalace práv na Linuxu. Zatím v upstreamu neopravena. Přiřazeno ji bylo CVE-2026-46300.
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:
knot jsem zkousel, ale to je pro muj ucel kanon na orla. A take je od cznicu, ktery nemam rad.