Ondřej Caletka: správa DNS zónových souborů v Gitu
Existují tři skupiny organizací, které se starají o DNS záznamy. V případě hostingu jde o hlavní předmět práce a správa zón bývá obvykle integrována do interního systému. V běžné organizaci se zase obvykle správa domén spojuje s adresářovým či DHCP serverem nebo výstupem z IPAM. U ISP se řeší úplně jiný problém, tam se spravují především reverzní zóny.
Původní návrh reverzních záznamů byl připraven pro třídy IP adres, ale v IPv4 prostoru adresy došly a přidělují se velmi malé segmenty. Proto byl vymyšlen „hack“ v podobě BCP 20 (RFC 2317), který ale přináší mnoho reverzních zón s mnoha subdelegacemi. Je pak velmi těžké to spravovat ručně, protože musíte vědět, co je kam nadelegováno a je to komplikované.
ISP velmi často hostuje jen reverzní záznamy, ty dopředné jsou obvykle ve správě registrátora domény.
V organizaci CESNET se původně přímo editovaly zónové soubory na veřejném serveru. Tam je problém, že když nezměníte sériové číslo, zóna se nepřenese na další servery a špatně se pak hledá, co se stalo.
Když uděláte syntaktickou chybu, soubor se vůbec nenačte a přestane vám fungovat DNS. Poté proběhl přechod na skrytý master server, který předává data slave serverům, ale sám není z internetu viditelný. Když něco rozbijete, záznamy se nepřenesou, ale slave servery mohou stále podávat původní verze.
Zároveň se tou dobou zavedlo podepisování DNSSEC pomocí OpenDNSSEC. Později jsme si pořídili Git, do kterého ukládáme všechny změny a komentáře.
Letos došlo k rozšíření funkce Gitu, kterým se nyní celá zóna spravuje a generuje. Správci zónových souborů dělají nejčastěji tři chyby: syntaktické chyby, nezvýšené sériové číslo a zapomenutá tečka na konci PTR záznamu. Pak se na konec záznamu připojí zbytek domény včetně TLD. Z pohledu DNS to není chyba, ale z pohledu uživatelů už ano.
Dnes má správce zónové soubory v Gitu na svém počítači, jeho repozitář je pak synchronizován se serverem, na kterém běží Gitolite. Změněné soubory se pak automaticky zkontrolují a přenesou na podepisovač, který pak výsledek pošle na autoritativní servery. Využíváme toho, že Git umí používat hooky.
Pro zónové soubory existuje projekt GitZone, který kombinuje kontroly DNS zón a správu Git repozitáře. Objevil jsem ho ale příliš pozdě, kdy jsem měl všechno skoro hotové. Doporučuji vám, abyste se na něj podívali.
Zónové soubory je možné nechat zkontrolovat pomocí named-compilezone, který je součástí DNS serveru BIND. Navíc ho dokáže vypsat v kanonickém tvaru se správným pořadím záznamů. Na standardní výstup pak vypíše, zda se mu to povedlo a jaké má zóna sériové číslo.
Automaticky se takto zkompiluje nová a předchozí verze a výstupy se porovnají, aby se zjistilo, zda došlo ke změně a je potřeba zvýšit sériové číslo.
Výsledkem je projekt dzonegit napsaný v Pythonu a vydaný pod licencí MIT. Nemá to žádné závislosti, je to možné spustit jako jeden skript.
Skript stačí na pracovním počítači stáhnout do adresáře .git/hooks/pre-commit
a dát mu práva ke spuštění. Potřebovat budete také Python a samozřejmě zmíněnou utilitu named-compilezone.
Na serveru je pak nasazen Gitolite, který funguje spolehlivě a podporuje vlastní hooky. Skripty dzonegit-pre-receive
odmítne commity, které neprojdou kontrolou. Hooky na uživatelově počítači nemůžete nijak vynutit, ale na serveru ano. Tím zajistíme, že v repozitáři máme jen soubory, které jsou validní.
Poté se spustí dzonegit-post-receive
, který aktualizuje pracovní kopii zónových souborů na serveru, vygeneruje snippety konfiguračních souborů a reloaduje DNS server. Poslední část se jmenuje dzonegit-smudge-serial
, který nastaví sériové číslo zóny na aktuální unixový čas.
Řešení je nasazeno od září 2018 a funguje velmi spolehlivě. Použití Gitu otevírá do budoucna další možností, jako nabídnout odeslání pull requestů externím správcům, kteří pak budou moci požádat o změnu v zónovém souboru pro svou organizaci.
Radek Zajíc: UEFI: Dobrý sluha, nebo zlý pán?
Uživatelé obvykle znají BIOS nebo UEFI jako menu, které je možné navštívit při startu počítače. To ale není BIOS ani UEFI, je to jen konfigurační utilita pro uživatele.
Ve skutečnosti jde o firmware, který se stará o inicializaci celého počítače včetně obrazovky a klávesnice. Procesor při zapnutí skočí na pevně danou adresu v paměti a odsud začne provádět kód.
BIOS má spoustu úkolů, ale také problémů s kompatibilitou, protože se vyvíjí už 40 let. Systém se například startuje v 16bitovém režimu, existují dva různé způsoby práce s diskem a dokonce čtyři rozhraní k detekci množství paměti. Každé z nich navíc vrací jiná data.
BIOS také například v případě bootu z CD emuluje disketu a k USB se chová jako k PS/2. I moderní počítač v režimu BIOSu všechna tato omezení má.
UEFI je moderní varianta, která je multiplatformní, má otevřenou specifikaci a nahrazuje BIOS. Proč použít UEFI? Podporuje například NVMe disky, TPM 2.0, Secure Boot nebo rozdělení disku pomocí GPT, což umožňuje využívat disky větší než 2 TB. Startuje systém v 32– nebo 64bitovém režimu, nabízí jeden způsob detekce paměti a nemusí emulovat přístup k USB zařízením.
Z hlediska implementace se zařízení dělí na čtyři třídy: třída 0 podporuje jen BIOS, třída 1 má interně UEFI a navenek emuluje BIOS, třída 2 má UEFI a aplikacím nabízí i BIOS, třída 3 pak už má jen UEFI a nenabízí vrstvu zpětné kompatibility. Intel chce od roku 2020 nabízet jen počítače z třetí třídy.
Proměnné v UEFI jsou uložené v NVRAM a v Linuxu jsou pak viditelné v adresáři /sys/firmware/efi/efivars/
. Jsou tam například informace o pořadí bootování, údaje o Secure Bootu a podobně. Narazil jsem na problém, když v NVRAM byly zapsány duplicitní proměnné a jádro je odmítlo zpracovat. Musel jsem do EFI shellu a nadbytečné proměnné ručně smazat. Normálně s tím ale problémy nejsou.
Součástí UEFI je i Secure Boot, který ověřuje podpisy toho, co načítá. Zajistí tak, že startuje skutečně kód, který vytvořil správný dodavatel. Do databáze si můžete přidat své vlastní klíče a podepisovat si software po svém.
Samotné UEFI má celou řadu vlastních bezpečnostních problémů, například neošetřené uživatelské vstupy, chyby v kontrole podpisů a podobně. S BIOSem je to ale ještě horší, protože tam ochrany neexistují vůbec a kdokoliv si tam může spouštět cokoliv.
Ondřej Koch: linuxový desktop a reálie veřejného sektoru
V NTK se rozhodli aktualizovat veřejně dostupné počítače. Původně používali tenké klienty s Windows, což bylo uživatelsky velmi nepřivětivé a pomalé. Ve výběrovém řízení jsme dostali nabídku na počítače ThinkCentre s Windows, ale nasadili jsme na ně Fedoru s GNOME a čekali jsme, co se stane.
Celkem se jedná o 150 počítačů pro koncové uživatele.
Velkým problémem veřejně dostupných počítačů jsou klávesnice, ke kterým se uživatelé nechovají zrovna přívětivě. Nakonec jsme nakoupili klávesnice určené pro nemocniční provoz. Ty jsou obalené a uklízečky je mohou klidně utřít nebo namočit do kýblu a pak usušit.
Problém je s nákupem svobodného software, protože ve veřejném sektoru není možné koupit věc, za kterou se platit nemusí. Bylo by to plýtvání prostředky. Přesto platíme Red Hatu, protože pokud to nebudeme dělat, dříve či později ty projekty zaniknou.
Příprava trvala přibližně měsíc, počítače startují ze sítě a nasazení probíhá pomocí Ansible z interního Gitu. Museli jsme odladit Wine, napsat konektor k IDM, předělat Sambu a rozchodit NFS s Kerberosem.
Vlastní nasazení pak muselo být velmi jednoduché: vybalení, nastavení AMT, zamčení BIOSu a start.
Zkušenosti jsou zatím velmi dobré. Linux je pro veřejné použití na desktopu použitelný.
Chybí jen něco jako Microsoft Group Policy, Anaconda neumí zaheslované HTTP a některým uživatelům chybí Flash. Nepodceňuje obalové materiály. Když vybalíte takové množství počítačů, čeká vás obrovská hromada odpadu.
Zatím je nasazeno 120 počítačů, které použilo 359 uživatelů pro 2432 přihlášení. Průměrná doba přihlášení je hodinu a půl. Což dokazuje, že lidé svůj čas v budově skutečně tráví.
Nejpoužívanějšími aplikacemi jsou Firefox, Nautilus, LibreOffice Writer a Evince. Nic zvláštního, je to zhruba to, co bychom čekali.
V některých případech uživatelé použijí i terminál, dokonce vyvíjejí v C nebo Pythonu či pro Android. Zkoušeli i instalovat TeamViewer, vyrábět virtuálku, sázet v LaTeXu a připojovat se SSH do CERNu.
Perličkou byl uživatel, který se snažil vysouvat neexistující mechaniku a dokonce si na to vytvořil alias.
Adam Kalisz: Multi-Gigabit Ethernet pro nadšence a malé firmy
Proč bychom potřebovali něco víc než gigabit? Moderní SSD nebo disková pole zpracovávají data výrazně rychleji než gigabitem. Představte si fotografa, který dorazí domů a chce přenést své fotky velmi rychle. Fotografové často používají Mac, tam je rozhraní Thunderbolt a je možné pro něj koupit 10GE kartu.
Stejně tak Wi-Fi standardy 802.11ac (Wi-Fi 5) nebo 802.11ax (Wi-Fi 6) dosahují vyšších než gigabitových rychlostí a je potřeba je připojit na dostatečně rychlou síť. Domácí připojení se dnes také často už ke gigabitu přibližují a budeme potřebovat víc.
Už dvacet let máme k dispozici standard 802.3ab pro gigabitový Ethernet po běžném metalickém kabelu. Rychlejší standardy jako 10GE potřebují kvalitnější kabeláž, ta ale není často k dispozici. Mnoho instalací v budovách je provedeno s kabeláží Cat 5e a je těžké všechnu kabeláž vyměnit.
Proto vznikají standardy jako 802.3bz, který umožňuje přenášet data rychlostí 2,5 Gbps nebo 5 Gbps po běžných Cat 5e, respektive 6 kabelech. Pokud použijeme metalické kabely, můžeme používat PoE, což je například v případě Wi-Fi AP velmi užitečné.
Pro použití rychlejších sítí potřebujete také rychlejší přepínače (switche). Měl by umět VLAN, ACL a je dobré, když umí i routovat. Pak jste schopni odbavit celý provoz na jednom zařízení a nemusíte třeba kvůli filtrování pořizovat další.
Nabídka je poměrně široká, nakupovat můžete u různých značek jako Fiberstore, Ubiquiti, HPE nebo Netgear. Ceny se pohybují zhruba od 300 do 630 eur.
V praxi můžeme desktopové počítače osadit kartou pro PCIe a objevují se už i základní desky, které mají integrovanou 10GE kartu. Notebooky dnes už často ani síťovou kartu nemají, ale mají Thunderbolt 3, do které je možné velmi rychlou kartu připojit. Je možné tudy přenášet až 40 Gbps.
Ceny síťových karet se pohybují od 100 do 200 eur, existují i levnější řešení využívající USB 3 nebo Thunderbolt. Tato rozhraní jsou dnes běžně dostupná na každém notebooku.
Podpora v Linuxu a BSD je velmi dobrá, na běžném počítači je možné se základními firewallovými pravidly odbavit 10 Gbps. Prostě to funguje, není s tím problém.
Dnes jste schopni postavit 10GE páteřní síť pod 1000 eur. Přibližně 300 eur vás bude stát přepínač a budete potřebovat dvě síťové karty za 150 eur za kus. Kabely a čtyři transceivery budou stát dalších 100 eur. Většině uživatelů zatím chybí motivace přecházet na něco rychlejšího než gigabit. Navíc to není tak dostupné, abyste prostě zašli do obchodu a všechno potřebné nakoupili.
Uplatnění tedy zatím tyto technologie najdou v kancelářích nebo malých firmách.
Věroš Kaplan: Restic – další zálohovací software
Zálohování většina uživatelů nesnáší, ale naopak milují výmluvy ze zálohování. Zálohovacích přístupů existuje spousta: na pásky, velké drahé diskové pole, do cloudu a podobně. Nejjednodušším způsobem je pořizovat pravidelnou kopii měnících se dat. Nevýhoda spousty celých souborů je, že taková záloha zabírá hodně místa. Poté přišli chytří lidé a zjistili, že je možné zálohovat jen rozdíly od předchozího stavu.
Znamená to ale, že při obnovení dat potřebujeme všechny rozdíly až po předchozí plnou kopii.
Zálohovacích přístupů existuje spousta, stále vznikají nové zálohovací programy. Vždycky řeší nějaký problém, mají nové funkce, ale taky nové hrany.
Zbytek přednášky se věnoval novému zálohovacímu řešení Restic, který se hodně inspiroval Gitem. Pracuje s repozitáři, do kterých ukládá data šifrovaně. Pokud útočník nemá klíč, nedostane se k obsahu záloh. Když k němu zapomenu heslo já, nedostanu se k nim taky.
Restic podporuje celou řadu různých vzdálených úložišť, do kterých dokáže zálohy nahrávat. Úložiště může používat i víc počítačů než jeden, součástí snapshotů je i hostname. Snažím se tomu ale vyhýbat, protože všechny počítače pak mají přístup k zálohám a můžou je smazat.
K zálohám je možné přidávat například popisky ve formě štítků.
Zálohy jsou snadné, ale uživatele víc zajímá obnova. Uživatelé nesnášejí zálohy, ale milují obnovy.
Konkrétní zálohu je možné obnovit podle jednoznačného ID, ale je potřeba ho nejprve ručně zjistit. Je ale možné obnovovat podle štítku nebo dalších vlastností. Zálohu je také možné připojit přes FUSE, pak jsou jednotlivé zálohy vidět jako adresáře a lze z nich vykopírovat jen část dat.
Množství záloh neustále roste, někdy ale musí přijít politické rozhodnutí a některé zálohy se zpětně smažou. Je dobré mazat zálohy, které člověk nepoužívá.
Výhoda Resticu je, že zálohuje velmi rychle. První záloha mého notebooku trvala na pomalé domácí lince několik hodin, další je pak už v řádu minut.
Martin Vicián: bezpečné používání linuxového desktopu
Na linuxovém desktopu se antivirus běžně nepoužívá, s malware se můžeme setkat jen zřídka a hlavně na serverech. Neznamená to ale, že není co zlepšovat.
Například už při stahování instalačního obrazu bychom měli zjistit, zda stahujeme skutečně to, co nám připravil tvůrce distribuce. Měli bychom ověřit kontrolní součet, ale zároveň i digitální podpis. Linuxové distribuce velmi často své obrazy podepisují pomocí GPG. Většinou jsou informace o kontrole podpisu docela schované a není snadné je najít.
Při instalaci nového počítače je pak myslet také na zaheslování UEFI, dnes je možné v něm zapnout také podporu Secure Bootu. V Ubuntu je na to vše připraveno, zapnutí je jednoduché.
Další problém může způsobit rozhraní Thunderbolt, přes které může libovolné zařízení získat přímý přístup do paměti a přečíst si z ní data. Existují bezpečnostní profily, kdy je možné povolit jen připojení některých zařízení.
V Linuxu je dnes možné v GNOME 3 v nastavení autorizovat jednotlivá zařízení, která mohou Thunderbolt používat. Problém je ale při zapínání počítače, protože než nastartuje systém, nefunguje například externí USB klávesnice nebo myš.
Zároveň autorizace nějakou dobu trvá, řádově to bývá několik sekund.