Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
S několika servery jsem převzal do správy i firewall nastavený přes shorewall. To si předělám na svůj vlastní systém, byla první věc, co mě napadla. Ale nepředělám. Nastudoval jsem si shorewall. Přece jen - nastavení je jednodušší (nižší pravděpodobnost chyby) a spousta věcí, o které jsem se musel starat sám, se shorewallem odpadá.
Shorewall tvoří několik souborů s různými parametry a pravidly. Z těch se pak při startu systému (z init skriptů) nebo při změně (make) vygenerují a zavedou do kernelu pravidla iptables.
K vytvoření jednoduchého firewallu pro malou firmu nebo domácí síť stačí několik málo souborů.
Soubor není zcela nezbytný, ale dovede usnadnit tvorbu složitějších pravidel. V tomto souboru můžeme definovat různé proměnné, které lze později použít v pravidlech, například:
HTTP=10.10.1.100 # adresa vnitřního HTTP serveru OUTER=93.231.291.257 # adresa vnějšího (internetového) síťového rozhraní OUTER_DEV=eth0 INNER_DEV=eth1
Nastavení maškarády nebo SNAT na výstupním síťovém rozhraní. Jaký je rozdíl mezi MASQUERADE a SNAT? SNAT si pamatuje všechna spojení a při krátkodobém výpadku linky je schopné pokračovat v práci jakoby se nechumelilo. Adresa pro SNAT musí být zadaná v parametrech. SNAT použijte, pokud máte pevnou linku. MASQUERADE při výpadku linky zruší všechna spojení a je třeba vytvořit spojení znovu. Adresu si MASQUERADE zjišťuje pokaždé v kernelu (pomalejší). MASQUERADE použijte, jste-li připojení například přes modem protokolem PPP a internetová adresa je vám přidělovaná dynamicky.
V souboru stačí obvykle jediný řádek. Pro mne je výhodné, jsou-li konkrétní hodnoty nahrazené symbolickými hodnotami (ty jsou nastavené v souboru params). Takto vypadá soubor pro SNAT:
$OUTER_DEV $INNER_DEV $OUTER
A takto vypadá soubor pro MASQUERADE:
$OUTER_DEV $INNER_DEV
Vyberte si samozřejmě pouze jednu podobu podle vašich potřeb.
Pro jednoduchý firewall se dvěma síťovými kartami stačí jednoduchý soubor interfaces (konkrétní hodnoty jsou opět nahrazené symbolickými hodnotami ze souboru params):
net $OUTER_DEV detect loc $INNER_DEV detect routeback
Hodnoty net a loc jsou názvy zón - na vnějším ($OUTER_DEV) rozhraní je pověšená zóna net, na vnitřním rozhraní zóna loc. Klíčové slovo detect znamená, že broadcast adresa se najde automaticky. Pro vnitřní rozhraní může být důležitá hodnota routeback - povoluje se tímto routování z vnitřní sítě do vnitřní sítě. Může to být důležité, máte-li ve vnitřní síti služby, ke kterým přistupujete přes router (například HTTP server a podobně).
Nastavení defaultní politiky. Na svých firewallech obvykle vždy nastavuji DROP či REJECT, ale pro jednoduché firewally to může být někdy dost těžký kanón - v takovém případě je vše zakázané a funguje pouze to, co se výslovně povolí v souboru rules. Ošetřit je třeba všechny směry:
loc net REJECT # Vše z vnitřní sítě do internetu se zakáže net loc DROP info # Vše z venku dovnitř se zahodí a zaloguje $FW loc ACCEPT # Vše z firewallu do vnitřní sítě se povolí loc $FW REJECT # Vše z vnitřní sítě na firewall se zakáže $FW net ACCEPT # Vše z firewallu ven se povolí net $FW DROP # Vše z internetu na firewall se zahodí all all DROP info # Vše ostatní se zahodí a zaloguje
Zde jsou definované jednotlivé zóny (internet, vnitřní síť, firewall a případně demilitarizovaná zóna). Soubor je ve své základní podobě velmi jednoduchý:
net ipv4 loc ipv4 fw firewall
Soubor s jednotlivými pravidly. Zde je to pravé místo, kde se můžeme vyřádit. Pravidla jsou rozdělená do různých sekcí, obvykle nás bude zajímat pouze sekce NEW (pravidla budeme psát za řádek SECTION NEW).
V souboru lze používat makra. To je fajn myšlenka, ale pouze do chvíle, než začneme psát jednoduchá pravidla pro DNAT. Pak to kdosi nedomyslel (nebo mi něco uniklo) a generovaná pravidla pro iptables hraničí s nepoužitelností (ale jo, chápu, proč to tak asi je). Bez komentáře se proto použití maker na nevhodném místě (DNAT) vyhnu. Makrem je v souboru například zápis Ping/ACCEPT (nemusíme se starat, jak vyjádřit v jazyce shorewall ping).
# Z vnější sítě na FW Ping/ACCEPT net $FW SSH/ACCEPT net $FW # Z vnitřní sítě na FW Ping/ACCEPT loc $FW SSH/ACCEPT loc $FW # Z vnitřní sítě ven # Hodně restriktivní firewallSSH/ACCEPT loc net Ping/ACCEPT loc net Web/ACCEPT loc net Jabberd/ACCEPT loc net IMAP/ACCEPT loc net IMAPS/ACCEPT loc net POP3/ACCEPT loc net POP3S/ACCEPT loc net
Pravidla pro provoz z vnější sítě dovnitř potřebují bližší vysvětlení. Provoz, který je iniciován zevnitř, je povolený automaticky. Kromě toho ale často vyvstává problém povolit různé služby (webový server) a zajistit, aby byla taková služba přístupná jak z internetu, tak z vnitřní sítě. Kromě toho musí být taková služba přístupná z obou sítí stejně. Nelze mít server http://bravenec.org/ přístupný z internetu normální URL adresou http://bravenec.org/ a z vnitřní sítě adresou http://10.10.1.100/ - u protokolu http by vám to obvykle apache sedící ve svém digitálním vigvamu neodpustil. Ale jedno už je to třeba poště - ale ani zde není důvod přistupovat ke službě jinak zvenku a jinak zevnitř (konfigurovat poštu na notebooku dvakrát denně je pěkný opruz).
# Služby DNAT net loc:$HTTP tcp 80 - $OUTER DNAT loc loc:$HTTP tcp 80 - $OUTER
Shorewall je natolik inteligentní, že jedním pravidlem (DNAT loc...) pro vnitřní síť nastaví jak forwading z vnitřní sítě do vnitřní sítě, tak i potřebný SNAT. Bohužel není shorewall natolik inteligentní, že nelze napsat pravidlo DNAT v jeho zjednodušené podobě (jak je popsané v dokumentaci k shorewall). Pokud totiž neuvedete adresu $OUTER, shorewall vygeneruje pravidlo bez této adresy a přesměruje pak veškerý provoz na portu 80 dovnitř sítě - provoz pro váš http jde na váš vnitřní server (v pořádku), provoz pro pro microsoft.com jde na váš vnitřní server (v pořádku???), provoz pro google jde na váš vnitřní server (život bez google?). Ale co je nejhorší, i provoz na vaši oblíbenou pornosajtu jde na váš vnitřní server. A to už v pořádku sakra není!
Ale pokud potřebujete mít službu přístupnou pouze z venku, nic vám nebrání zapsat pravidlo jednodušeji:
# Služby HTTP/DNAT net loc:$HTTP
Konfigurace je hotová, můžeme pravidla přeložit příkazem make.
Nezapomeňte zajistit, aby se shorewall startoval při spuštění systému (initskripty). To už záleží na distribuci, já to v Gentoo zajistím takto:
rc-update shorewall add default
A nakonec nezbytný odkaz na domácí stránku: http://www.shorewall.net
Jo - a ještě se možná musím předem omluvit za případné chyby či nepřesnosti. Před 24 hodinami jsem shorewall prakticky neviděl.
Tiskni
Sdílej:
HTTP=10.10.1.100 # adresa vnitřního HTTP serveru OUTER=93.231.291.257 # adresa vnějšího (internetového) síťového rozhraní
za pul roku nebudes vedet co je "OUTER" - jestli rozhrani, ipcko, nejakej server... o "HTTP" ani nemluvim ;)
Člověče, tak mě napadá... ty jsi viděl shorewall nebo víš aspoň vůbec, o čem je řeč, když - cituji - "pochopení cizího skriptu bude asi složitější"? Shorewall není "cizí" není "skript". Takto se dalo argumentovat u mého včerejšího zápisku:
http://www.abclinuxu.cz/blog/Bravenec/2010/6/skripty-pro-firewall
Klikací
Tedy abych nekřivdil - GUI je v ncurses, pravděpodobně to myší nebude ovladatalné.
Kde se bere má nechuť ke klikacím nástrojům:
Plusy GUI:
Minusy GUI:
Mám na starosti více serverů a je pro mě výhoda překopírovat na server šablonu (s komentáři a s návodem), upravit pár proměnných (OUTER, OUTER_DEV, HTTP....) a spustit. Pro archivaci změn a testování nových funkcí mohu snadno nasadit git (verzovací systém). Minusů má GUI jednoznačně více.
Ještě jsem tam objevil chybu. V nastavení služeb bylo původně uvedeno:
# Služby DNAT net loc:$HTTP tcp 80 80 $OUTER DNAT loc loc:$HTTP tcp 80 80 $OUTER
Není to vyloženě špatně, ale uvedená služba (HTTP) by pracovala pouze v případě, že by byl zdrojový port také 80, což obecně nebývá. Opravil jsem to na:
# Služby DNAT net loc:$HTTP tcp 80 - $OUTER DNAT loc loc:$HTTP tcp 80 - $OUTER