Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 163 (pdf).
Eric Lengyel dobrovolně uvolnil jako volné dílo svůj patentovaný algoritmus Slug. Algoritmus vykresluje text a vektorovou grafiku na GPU přímo z dat Bézierových křivek, aniž by využíval texturové mapy obsahující jakékoli předem vypočítané nebo uložené obrázky a počítá přesné pokrytí pro ostré a škálovatelné zobrazení písma, referenční ukázka implementace v HLSL shaderech je na GitHubu. Slug je volným dílem od 17. března letošního
… více »Sashiko (GitHub) je open source automatizovaný systém pro revizi kódu linuxového jádra. Monitoruje veřejné mailing listy a hodnotí navrhované změny pomocí umělé inteligence. Výpočetní zdroje a LLM tokeny poskytuje Google.
Cambalache, tj. RAD (rapid application development) nástroj pro GTK 4 a GTK 3, dospěl po pěti letech vývoje do verze 1.0. Instalovat jej lze i z Flathubu.
KiCad (Wikipedie), sada svobodných softwarových nástrojů pro počítačový návrh elektronických zařízení (EDA), byl vydán v nové major verzi 10.0.0 (𝕏). Přehled novinek v příspěvku na blogu.
Letošní Turingovou cenu (2025 ACM A.M. Turing Award, Nobelova cena informatiky) získali Charles H. Bennett a Gilles Brassard za základní přínosy do oboru kvantové informatiky, které převrátily pojetí bezpečné neprolomitelné komunikace a výpočetní techniky. Jejich protokol BB84 z roku 1984 umožnil fyzikálně zaručený bezpečný přenos šifrovacích klíčů, zatímco jejich práce o kvantové teleportaci položila teoretické základy pro budoucí kvantový internet. Jejich práce spojila fyziku s informatikou a ovlivnila celou generaci vědců.
Firefox 149 dostupný od 24. března přinese bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně (s CZ a SK se zatím nepočítá) a zobrazení dvou webových stránek vedle sebe v jednom panelu (split view). Firefox Labs 149 umožní přidat poznámky k panelům (tab notes, videoukázka).
Byla vydána nová stabilní verze 7.9 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 146. Přehled novinek i s náhledy v příspěvku na blogu.
Dle plánu byla vydána Opera GX pro Linux. Ke stažení je .deb i .rpm. V plánu je flatpak. Opera GX je webový prohlížeč zaměřený na hráče počítačových her.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.27.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
-P INPUT DROP -P FORWARD DROP -P OUTPUT ACCEPT -A INPUT -d fe80::/64 -p udp -m udp --dport 546 -m state --state NEW -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -s 2a02:.../64 -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p icmpv6 -j ACCEPT -A INPUT -i br0 -j ACCEPT -A INPUT -i eth0 -j ACCEPT -A INPUT -i lo -j ACCEPT -A FORWARD -m state --state INVALID -j DROP -A FORWARD -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
Řešení dotazu:
Firewall na Linuxu se jmenuje nftables a ovládá se příkazem nft. Konfigurace je v /etc/nftables.conf.
Pokud nějaký návod používá jakési příkazy a technologie z 0. let 21. století, ve 20. letech 21. století je vhodné takový návod ignorovat a najít místo něj nějaký aktuální.
Logická chyba je (tipuju) v tom, že spojení se do stavů related ani established nemá jak dostat. Alespoň z jednoho směru je potřeba bezpodmínečně přijmout alespoň první paket.
Někdo si s tím pečlivě hraje a určuje přesně, kudy a kam smí projít prví TCP SYN a první TCP DCERA, zatímco já na to většinou seru a nastavím to „tak nějak, aby to fungovalo“. Konfigurace pro forward vypadá u mě asi takto (po vynechání pár extra kdesicosů):
chain forward {
type filter hook forward priority filter; policy accept;
ip6 nexthdr esp meta mark set meta mark | 0x00000101 # IPSec
ip protocol esp meta mark set meta mark | 0x00000101 # IPSec
meta mark & 0x00000101 == 0x00000101 accept # IPSec
ct state { established, related } accept
ct state invalid drop
iifgroup 99 accept # důvěryhodná rozhraní (802.1x + WPA3/MACsec)
iifgroup 72 jump outer_spoof # vnější (v nějakém smyslu) rozhraní
oifgroup 72 jump outer_reject
oifgroup 72 tcp flags syn tcp option maxseg size set rt mtu
tcp dport 22 accept
ip6 nexthdr ipv6-icmp accept
ip protocol icmp accept
reject
}
chain outer_spoof {
ip6 saddr xxxx:yyyy:zzzz::/48 drop
ip saddr 10.x.y.z/16 drop # nesmysl z roku 1975
return
}
chain outer_reject {
ip6 daddr xxxx:yyyy:zzzz::/48 reject with icmpv6 port-unreachable
ip daddr 10.x.y.z/16 drop # nesmysl z roku 1975
return
}
Samozřejmě to není v žádném smyslu ideální nastavení; podstatná část je jakýsi kompromis, který se vzdává paranoidního schovávání klientů ve vnitřní síti ve prospěch rozumně rychlého odmítnutí spojení na neplatné adresy (což potřebuju mít funkční) atd.
-P INPUT DROP -P FORWARD DROP -P OUTPUT ACCEPT -A INPUT -d fe80::/64 -p udp -m udp --dport 546 -m state --state NEW -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -s 2a02:.../64 -i eth1 -p tcp -m tcp --dport 22009 -j ACCEPT -A INPUT -p icmpv6 -j ACCEPT -A INPUT -i br0 -j ACCEPT -A INPUT -i eth0 -j ACCEPT -A INPUT -i lo -j ACCEPT -A FORWARD -m state --state INVALID -j DROP -A FORWARD -i br0 -j ACCEPT -A FORWARD -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPTJen pro srovnání konfigurace IPv4 firewallu vedle vypadá takto:
-P PREROUTING ACCEPT
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A PREROUTING -d {WanIP} -i eth1 -p tcp -m tcp --dport 80 -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 172.18.0.0/24 -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -d {WanIP} -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -d {WanIP} -i eth1 -p udp -m udp --dport 1900 -j DROP
-A INPUT -i eth1 -p udp -m udp --dport 68 -j ACCEPT
-A INPUT -d {WanIP} -i eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth1 -p 2 -j ACCEPT
-A INPUT -i br0 -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -p udp -m udp --sport 1701 -j ACCEPT
-A FORWARD -p udp -m udp --dport 1701 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 1723 -j ACCEPT
-A FORWARD -p tcp -m tcp --sport 1723 -j ACCEPT
-A FORWARD -p 47 -j ACCEPT
-A FORWARD -d 224.0.0.0/4 -i eth1 -p udp -m udp -j ACCEPT
-A FORWARD -d 224.0.0.0/4 -i eth1 -p 114 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -i br0 -j ACCEPT
-A FORWARD -i eth1 -o br0 -p udp -m udp --dport 500 -j ACCEPT
-A FORWARD -d 224.0.0.0/4 -i eth1 -p udp -m udp -j ACCEPT
-A FORWARD -i eth1 -o br0 -p esp -j ACCEPT
-A FORWARD -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -m state --state INVALID -j DROPTedy na forwardu zůstanou jen pravidla:
ip6tables -A FORWARD -i br0 -j ACCEPT ip6tables -A FORWARD -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPTZvláštní.
cat ./.config | grep IPV6 CONFIG_IPV6=y CONFIG_RTL_IPV6READYLOGO=y # CONFIG_RTL_IPV6READYLOGO_HOST is not set # CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_REDIRECT_NO_HEADER is not set CONFIG_IPV6_OPTIMISTIC_DAD=y # CONFIG_IPV6_MIP6 is not set CONFIG_IPV6_SIT=y CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=y CONFIG_IPV6_GRE=y CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set CONFIG_IPV6_MROUTE=y # CONFIG_IPV6_MROUTE_MULTIPLE_TABLES is not set # CONFIG_IPV6_PIMSM_V2 is not set CONFIG_IPV6_DNSV6_MODE_SUPPORT=y CONFIG_IPV6_FORD_RA_PREFIX_SUPPORT=y CONFIG_IPV6_RA_RDNSS_SUPPORT=y CONFIG_IPV6_RA_DNSSL_SUPPORT=y # CONFIG_RTL_FAST_IPV6_DEBUG is not set CONFIG_RTL_FAST_IPV6=y CONFIG_NF_DEFRAG_IPV6=y CONFIG_NF_CONNTRACK_IPV6=y # CONFIG_IP6_NF_MATCH_IPV6HEADER is not set # CONFIG_NF_NAT_IPV6 is not set CONFIG_RTL_HARDWARE_IPV6_SUPPORT=y
Tiskni
Sdílej: