Byla vydána verze 2026 distribuce programu pro počítačovou sazbu TeX s názvem TeX Live (Wikipedie). Přehled novinek v oficiální dokumentaci.
Jihokorejská Národní daňová služba (NTS) zabavila kryptoměnu Pre-retogeum (PRTG) v hodnotě 5,6 milionu dolarů. Pochlubila se v tiskové zprávě, do které vložila fotografii zabavených USB flash disků s kryptoměnovými peněženkami spolu se souvisejícími ručně napsanými mnemotechnickými obnovovacími frázemi. Krátce na to byla kryptoměna v hodnotě 4,8 milionu dolarů odcizena. O několik hodin ale vrácena, jelikož PRTG je extrémně nelikvidní, s denním objemem obchodování kolem 332 dolarů a zalistováním na jediné burze, MEXC [Bitcoin.com].
Komunita kolem Linuxu From Scratch (LFS) vydala nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů Linux From Scratch 13.0 a Beyond Linux From Scratch 13.0. Pouze se systemd.
Byla vydána nová stabilní major verze 25.12 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Jedná se o nástupce předchozí major verze 24.10. Přehled novinek v poznámkách k vydání. Podporováno je více než 2200 zařízení.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za únor (YouTube). Odstraněn byl veškerý kód napsaný ve Swiftu. JavaScriptový engine LibJS byl reimplementován v Rustu.
Byla vydána verze 1.94.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example. Zveřejněny byly výsledky průzkumu mezi vývojáři v programovacím jazyce Rust: 2025 State of Rust Survey Results.
Google zveřejnil seznam 185 organizací přijatých do letošního Google Summer of Code (GSoC). Dle plánu se zájemci přihlašují od 16. do 31. března. Vydělat si mohou od 750 do 6600 dolarů. V Česku a na Slovensku je to 900 dolarů za malý, 1800 dolarů za střední a 3600 dolarů za velký projekt. Další informace v často kladených otázkách (FAQ). K dispozici jsou také statistiky z minulých let.
Byla vydána únorová aktualizace aneb nová verze 1.110 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.110 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Apple představil 13palcový MacBook Neo s čipem A18 Pro. V základní konfiguraci za 16 990 Kč.
Kalifornský zákon AB 1043 platný od 1. ledna 2027 vyžaduje, aby operační systémy požadovaly po uživatelích věk nebo datum narození a skrze API poskytovaly aplikacím informaci, zda je uživatel mladší 13 let, má 13 až 16 let, má 16 až 18 let nebo má alespoň 18 let. Vývojáři linuxových distribucí řeší, co s tím (Ubuntu, Fedora, …).
V minulém díle jsme si pověděli něco obecně o firewallech. Dnes se podrobněji zaměříme na zřejmě nejčastěji využívanou část a to na paketové filtry.
Paketový filtr je software, který zkoumá hlavičky paketů a podle nastavených pravidel rozhoduje, jestli je pustí dál nebo zahodí (nebo třeba rozhodne, zda bude paket routován, zda informace o něm bude zapsána do systémového logu, atd.). Filtrování probíhá na úrovni síťové vrstvy.
Firewall v Linuxu 2.4 se jmenuje NETFILTER (mimo jiné je to první "oficiální" stavový firewall v Linuxu). Je přímo součástí jádra (může být i jako modul). Pokud používáte originální jádro z vaší distribuce, tak zřejmě nebude třeba cokoliv měnit. V případě, že si jádro kompilujete sami, tak je potřeba zahrnout minimálně tohle:
Konfigurační utilita pro NETFILTER se jmenuje IPTABLES a měla by být součástí všech běžných distribucí, pokud ne tak si ji můžete stáhnout např. zde.
První generace paketového filtru se v Linuxu objevila v roce 1994, když Alan Cox portoval ipfw z BSD do jádra řady 1.1. Později se v řadě 2.0 objevil nástroj ipfwadmin. V polovině roku 1998 se v jádrech 2.2 po poměrně rozsáhlých změnách objevil program ipchains. No a nakonec se v nejnovějších jádrech řady 2.4 začal používat netfilter/iptables.
Nejdříve si řekněme podle čeho se mohou paketové filtry rozhodovat o tom, co vlastně filtrovat (netýká se jen iptables):
Obecný tvar příkazu iptables:
iptables příkaz specifikace_pravidel rozšíření
Základní pojmy:
Základní ("vestavěné") chainy jsou INPUT, OUTPUT a FORWARD. Můžeme si samozřejmě vytvářet a pojmenovávat vlastní. Vestavěné, narozdíl od těch vlastních, nemůžeme smazat (můžeme vymazat pouze jejich obsah).
Další "vestavěné", které se používají při routování s NAT jsou třeba PREROUTING a POSTROUTING.
Nyní si pojďme vysvětlit, jak vlastně filtrování paketů probíhá. Pro ilustraci použijeme obrázek:

Co se tedy děje?
Jako pozn. k bodu 3 a pro zopakování si připomeňme, že forward v kernelu "zapnete" pomocí příkazu:
# echo "1" > /proc/sys/net/ipv4/ip_forward
Zde bych zmínil jeden z největších rozdílů oproti ipchains. Každý paket je porovnáván (filtrován) jen s jedním chainem, takže pokud paket patří do chainu FORWARD, je porovnán pouze s jeho pravidly. V ipchains by v tomto případě paket putoval skrz všechny chainy, což by celý skript dělalo delším, složitějším a méně přehledným.
Základní operace, které můžeme provádět s chainy:
-A (--append) přidá pravidlo na konec chainu.
# iptables -A INPUT ...
-D (--delete) smaže pravidlo z chainu, buď můžete uvést
pravidlo, které chcete vymazat, nebo číslo pozice pravidla v chainu.
# iptables -D INPUT -dport 80 -j DROP
# iptables -D INPUT 3
-P (--policy) tento příkaz nastavuje defaultní akci, která
se s paketem provede v případě, že nebude vyhovovat žádnému pravidlu.
# iptables -P INPUT DROP
-N (--new-chain) vytvoří nový chain, který si nějak
pojmenujete.
# iptables -N novy_chain
-F (--flush) pokud specifikujeme jméno chainu, pak vymaže
všechny pravidla, která jsou uvnitř, pokud ho neuvedeme, pak smaže všechny
pravidla ve všech chainech.
# iptables -F FORWARD # iptables -F
-L (--list) vypíše všechna pravidla v daném chainu.
# iptables -L INPUT
Někdy je vhodné specifikovat opak pravidla, tedy popisovat paket, který pokud pravidlu nevyhoví, tak na něj bude pravidlo aplikováno. Proto některá pravidla podporují negaci svého argumentu pomocí znaku ! (vykřičník), příklady viz. dále.
-p (--protocol) pomocí tohoto pravidla můžete specifikovat
protokol, např. TCP, UDP, ICMP nebo ALL (pro všechny protokoly), hodnota
ALL je defaultní.
# iptables -A INPUT -p TCP ...
# iptables -A INPUT -p ! ICMP ...
-s (--source) definice zdrojové adresy - může být ve formátu
jmenném i číselném, můžeme použít negaci, za IP adresou můžeme specifikovat
masku podsítě.
# iptables -A INPUT -s 192.168.2.1 ... (nebo ...
# iptables -A OUTPUT -s 192.168.1.1/24192.168.1.1/255.255.255.0 ...)
-d (--destination) opak parametru "-s", zde
určujeme cílovou adresu paketu, opět můžeme použít negaci.
# iptables -A OUTPUT -d ! 192.168.1.22 ...
-j (jump target) tento parametr slouží k nastavení "akce",
kterou s paketem chceme provést, máme následující možnosti:
Aby to nebylo pořád jen nudná teorie, můžeme si vyzkoušet jednoduchý příklad:
# iptables -A INPUT -s 127.0.0.1 -p ICMP -j DROP
Co jsme provedli? Do vstupního chainu jsme přidali pravidlo, které způsobí, že všechny pakety se zdrojovou adresou 127.0.0.1 využívající protokol ICMP, budou zahozeny. Takže pokud nyní zkusíte příkaz:
# ping 127.0.0.1
tak vám nebude fungovat (resp. on fungovat bude, ale žádného výsledku se
nedočkáte
), což se nám nelíbí, takže pravidlo zase, třeba takto,
smažeme:
# iptables -D INPUT 1
Pravidla můžete zapisovat přímo na příkazový řádek (a ona budou hned
fungovat), ale po restartu se všechno ztratí. Je proto vhodné vše zapisovat
do souboru, který pak nastavíte, aby byl spustitelný a necháte jej spouštět
např. ze souboru /etc/rc.local.
V některých distribucích můžete narazit na příkazy
iptables-save a iptables-restrore, které vám
mohou pomoci s nastavováním pravidel, kdo chce nechť si přečte jejich
manuálové stránky. Mnohde jsou ještě zároveň nainstalovány starší ipchains,
které můžete klidně odinstalovat.
Firewall se většinou vytváří podle pravidla, že "co není výslovně dovoleno, je zakázáno". Lze jej samozřejmě vytvářet i opačně, tedy "co není zakázáno, je dovoleno", ale první varianta bývá většinou bezpečnější.
Pokud se budeme držet prvního pravidla, pak "firewallový skript" bychom měli začít takto:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Je to důležité uvést, protože defaultně jsou policy nastaveny na ACCEPT.
Tyto pakety jsou tak trošku zvláštní případ, nepřenáší data jako takové, ale používají se pro přenos diagnostických a chybových zpráv. V některých sítích jsou tyto pakety úplně blokovány (zahazovány), ale to myslím není úplně nejlepší nápad. Je dobré pouštět alespoň ty, které zajistí fungování utilit ping a traceroute, tzn.:
ICMP 3 "destination unreachable"
ICMP 0 "echo reply"
ICMP 8 "echo request"
ICMP 11 "time exceeded"
Tady se dá říci, že v běžném provozu může "méně být více". Logování všech zahozených paketů může způsobit znatelné zpomalení firewallu a docela rychle vám bude mizet místo na disku. Logování všeho je výhodné jen ze začátku než firewall odladíte, poté je můžete omezit např. takto:
# iptables -A INPUT -m limit -limit 15/h -j LOG
Ještě pro zpřehlednění (při procházení logu) můžeme přidat parametr
--log-prefix s nějakým popiskem.
Podrobnosti o analyzování logů (včetně popisu několika užitečných programů) se dozvíte v příštím díle.
Tolik tedy z dnešního dílu. Vím, že na tak malé ploše není možno paketové filtry popsat do nějakých podrobností. Pokud vás ale zaujaly, můžete pokračovat ve studiu s pomocí odkazů pod článkem.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: