Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Aneb jak postavit všestranné VPN řešení.
Kromě komerčních řešení alá Cisco AnyConnect, Fortinet, Pulse Secure atd. máme i několik plně OSS variant, které stojí za používání.
Několik let zpátky (možná rok 2016) jsem měl před sebou jasný úkol, rozjet BYOD řešení pro zaměstnance i externisty. Kdo nezná termín BYOD, tak jde o připojení čehokoli do firmy, hlavně privátních zařízení. Jde tedy o silně heterogenní prostředí. Úkol ale není jen umožnit připojení, ale umožnit ho jednoduše a pokud možno i bez admin práv.
Proč né OpenVPN, ale IKEv2 (ipsec)?
Občas někdo slyší něco o L2TP. Většinou se nepoužívá samotné L2TP, ale L2TP over IPSEC (samotné L2TP totiž není šifrované). Tzn., že se sestaví IPSEC spojení a v něm se pak tuneluje L2TP. Pro funkčnost tedy potřebujeme to samé jako u IPSECu (IKEv1/IKEv2), tj. jen porty UDP500 a UDP4500 (NAT-T). Když někde čtete návod, že musíte na firewallu povolit i L2TP port 1701, tak skončete se čtením takového návodu, protože autor neví, která bije a tohoto fudu je plný internet.
Problém L2TP je na více stranách. Pokud máte server za NATem, tak máte ošklivý problém. Ten problém jsou špatné checksummy při komunikaci. V Linuxu není problém (špatný checksumm / poškozený natem lze ignorovat, resp. ignoruje se jen ten, co je zapouzdřený v ESP komunikaci/ipsec tunelu), ve Windows je potřeba povolit toto ignorantsví v registrech ("AssumeUDPEncapsulationContextOnSendRule") a FreeBSD je v tomto ohledu nepoužitelné, resp. celé roky bylo. Možná to je už fixnutý ve verzi 11, viz Bug 146190. V době, kdy jsem to tedy řešil, tak pfSense bylo na L2TP over IPSEC nepoužitelné.
Můj případ je nat-nat (server i klienti za natem), takže L2TP za natem nepřicházelo v úvahu. Kromě tedy problému na straně klientů (nutno editovat registry ve Windows) neumí mobike, neumí always on, v určitých situacích (když se restartoval server) si klient nevšiml že k něčemu došlo a ve Windows se tvářil, že spojení je ok a nebylo. Tzn. v určitých situacích nekorektní chování.
Našlo by se několik jedinců, kteří by se na to určitě zeptali. Takže odpovědí je několik. V době kdy jsem to řešil, WireGuard nebyl dostupný. Dále přetrvává to, že není dostupný pro všechny platformy (stále se občas někdo najde s Windows mobile, Windows ARM apod.). Osobně jsem ho ještě netestoval, takže ani nevím, co aktuálně vše umí, ale always on prý problém není a funguje to parádně.
SoftEther jsem nezkoušel. Důvodů, proč jsem ho ani nezkoušel bylo několik:
Strongswan považuji v současné době za nejlepší oss implementaci IPSECu a velkým tahounem této implementace v oss světě.
Vše začalo tímto projektem. Založil ho John Gilmore v roce 1996. Nelíbilo se mu, že komunikace po internetu není zabezpečena. A to chtěl změnit. Záměrem nebylo vydělat, financí měl dost z předešlých projektů, chtěl jen umožnit ochranu práv obyčejných lidí na internetu (zabránit odposlouchávání apod.). Administrativně projekt řídil Hugh Daniel. Narazilo se ale na to, že v té době vláda USA nedovolovala export cryptografie a podobných technologií. Jinými slovy, takový projekt vyvíjený v USA by nebylo možné použít v celém světě. Z toho důvodu se vývoj odehrával mimo USA (a všichni z USA měli zakázáno přispívat do kódu). O vývoj se zpočátku starali John Ioannidis a Angelos Keromytis. Projekt pak z technického hlediska řídil Henry Spencer a později pak Michael Richardson. IKE démon (userspace aplikaci) pak spravoval D. Hugh Redelmeier a implementaci v kernelu (KLIPS) Richard Guy Briggs. O dokumentaci se pak staral Sandy Harris a později Claudia Schmeing.
Z hlediska funkčnosti byla první vize taková, že každý by měl doma krabičku, která by byla mezi počítačem (či více počítači/LAN sítí) a internetem. Pokud by probíhala komunikace s někým, kdo by tu krabičku měl také, tak by byl provoz automaticky šifrován. Krabička měla být založena na Linuxu.
První verze měla vyjít v roce 1996, ale to se nepovedlo kvůli spoustě překážkám (jako třeba kvůli vývozním zákonům USA). Nakonec tedy první verze 1.00 vyšla v 1999/04.
Velice restriktivní přístup mohl zato, že byl FreeS/WAN forknutý. Andreas Steffen napsal rozsáhlý patch na implementaci X.509, ale Gilmore jej odmítl včlenit. Mathieu Lafon napsal podporu NAT-T (možnost provozovat IPSEC přes NAT) a taktéž bylo odmítnuté patch včlenit. Jeden maintener FreeS/WANu včlenil všechny patche a tento balíček pojmenoval "super-freeswan". To se Gilmorovi moc nelíbilo. Nakonec v roce 2003 na konferenci v Berlíně bylo rozhodnuto o forknutí projektu (tenkrát ve verzi 2.04), tím vznikl OpenSWAN. Gilmore vydal ještě dvě verze FreeS/WANu a pak projekt ukončil.
Kromě forku OpenSWAN vznikl i fork pojmenovaný strongSwan. Za tímto forkem stál/stojí Andreas Steffen, profesor ze Švýcarské vysoké školy HSR (Hochschule für Technik Rapperswil). Projekt stále vede v rámci školy a rozhodně v tom není sám, pomáhají mu mj. Martin Willi a Tobias Brunner.
Vznikl v roce 2012 jako fork OpenSWAN projektu. Paul Wouters pomohl založit společnost Xelerance, která vyvíjela OpenSWAN. Následně došlo k neshodům, bojům o vlastnictví jména OpenSWAN apod. Výsledkem byl fork pojmenovaný LibreSWAN.
Myslím si, že se jedná o nejpokročilejší implementaci se stabilním vývojem, naprosto parádní dokumentací + příklady nastavení (Configuration Examples), dělají i věci okolo tohoto řešení jako např. aplikaci pro Android, která zjednodušuje deploy nastavení, umožňuje zasílání debug logů a další a další věci. Od samého počátku má pevné vedení na akademické půdě. Je vidět, že vývoj jde hodně kupředu. Naproti tomu např. OpenSWAN vypadá, že hodně stagnuje (github), resp. vypadá polomrtvě. Pokud jde o LibreSWAN, tak ten žije hodně, viz CHANGES. Ale upřímně tam nevidím moc oslňujících věcí a co je horší, všude se píše, že má problémy s EAP (pokud je to skutečně pravda, tak je to velká mezera). U VTI mají uvedeno "experimental", to samé u XFRM. strongSwan třeba zahodil Pluto už v roce 2012, mají implementaci HA, předělali syntaxy konfiguráků a vytvořili vici plugin a od verze 5.7.0 je možné využívat tento interface pro přístup aplikací třetích stran. Tzn. takový API řešení.
Co dalšího mně přesvědčilo bylo, že strongSwan se používá v docela známých řešení. Pro mně nejblíže např. v pfSense, ZyXEL routery (aspoň myslím, že jsem to tam viděl v OSS balíčku), jedna nejmenovaná CZ firma, co poskytuje VPN, Sophos a další.
Když jsem se před 4 lety rozhodoval, co nasadit, tak jsem byl na vážkách. Nakonec jsem se rozhodl pro strongSwan. Nyní musím říci, že to byla dobrá volba a v dnešní době už bych nezaváhal.
Tolik asi tak ke stručné historii a důvodům, proč jsem vybral to, co jsem vybral. Příště už pronikneme do celého návrhu řešení, instalace a konfigurace.
Zdar Max
Tiskni
Sdílej:
sshuttle
Add-VpnConnectionRoute -ConnectionName "Company VPN" -DestinationPrefix "192.168.0.0/24"Deploy na Win stanice dle toho návodu není dotažen. Osobně řeším pomocí next next exáče, který jednoduše přednastaví celý tunel a uživatel si jen při prvním přihlášení zadá login a pw. Úroveň omylu při nastavování se blíží nule.
...Chybějící accounting, tam nevím, co dodat. Tak, jak to máš, tak nemáš přehledné výstupy (kdo kdy se přihlásil, kolik dat přenesl atd. Nějaké info lze zjistit parsováním auth logů, ale je to zbytečná drbačka). Chybějící accounting + lepší vedení účtů řeší Radius server (a strongswan mu umí posílat accounting info)...Ten acounting mě zmátnul. Když jsi to popsal, pochopil jsem - já mám "tucet" uživatelů, v tvém případě to bude asi řádově více. Z toho vyplývá i deploying. Dělat next next exáč pro jakousi obskurní Windows platformu by vyšlo dráž, než to těm pěti lidem naklikat. Navíc to neklikám já
Ale ono to rozlišení protokolu je podstatné. Když zprovozňuji IPSec spojení mezi dvěma IPv6 stroji, postupuji takto:
Cituji z jinde v této diskusi uvedeného odkazu:
Packets that are routed through such an interface are guaranteed to be IPsec transformed or dropped.
Použití takového interface by mě nutilo k postupu na hlavu postavenému:
Ať nad tím uvažuju jak chci, virtuální síťové rozhraní u IPv6 přináší jenom zmatek a bordel. U IPv4 může být situace jiná, tam může virtuální síťové rozhraní situaci trochu zpřehlednit. Ale nemyslím si, že by jakékoliv virtuální síťové rozhraní mělo tu moc nějak zvládnout ten zmatek a bordel, který už v IPv4 sítích obecně vládne.
...provoz v navázaném tunelu...V jakém tunelu? IPSec mi nedělá žádný "tunel" (pomíjím tunel mod fungování). IPSec jenom říká, že provoz mezi adresou A a adresou B se šifruje!
spdadd -6n 2001:db8:1::/64 2001:db8:2::/64 any -P out ipsec esp/tunnel/2001:db8:1::1-2001:db8:2::1/require;Zde se říká, že paket putující ze sítě 2001:db8:1::/64 přes router 2001:db8:1::1 se má na tomto routeru zašifrovat (parametry domlouvá racoon), na routeru 2001:db8:2::1 se paket rozšifruje a pošle dál do sítě 2001:db8:2::/64 (druhý směr se musí nakonfigurovat zvlášť). Naprosto stejné nastavení by bylo pro transport mode, změnily by se pouze adresy sítě a mod tunnel na transport. Když je politika zapnutá, šifruje se. Když je politika vypnutá, nešifruje se. Pro síťový provoz, firewall, routování atd. je IPSec transparentní. Ať tam IPSec je nebo ne, síťový provoz probíhá stále stejně. Nevnímám zašifrované pakety jako "tunelované" - jen transformované do jiné, nečitelné podoby. Tato část nastavení je v ipsectools velmi přímočará. StrongSwan tuhle část trochu skrývá, ale kdesi vespod funguje stejně.
Není normální provozovat [...] IPSec s jedním rozhraním.
Trochu jsem se v tom šťoural, přemýšlel a studoval manuály a z hlediska bezpečnosti se mi jeví použití vyhraženého interface jako klasický příklad "security by obscurity". Unixová filozofie říká, že program má dělat jednu věc a má ji dělat pořádně:
První bod - síťový protokol - je naprostý základ. Pokud nefunguje, je šílené zkoušet rozchodit další dva body. IPSec skrz striktně šifrovaný interface ten první bod rozbíjí a fušuje do řemesla bodu třetímu.
Když jste zvyklý používat IPSec místo firewallu, tak jakmile vám z nějakého důvodu zmizí interface (jak se to stalo v Linuxu před lety), zákonitě musí nastoupit pocit, že bez interface je zabezpečení špatně. Ve skutečnosti je IPSec správně, špatně (nebo vůbec) je nastavený firewall.
Znovu upozorňuji: používám IPv6 a jen vyjímečně vytvářím tunely popsané v tomto článku. IPSec je o cosi obecnější nástroj, než by se z tohoto článku mohlo zdát.
To nemá nic společného s neomylností. Jen jsem se seznámil s tím, jak ta implementace funguje, a snažil jsem se ji pochopit místo toho, abych se "zašprajcoval" na stanovisku, že když je to jinak, než jsem byl zvyklý, je to nutně špatně navržené. Sice jsem taky začínal na FreeS/WAN, ale když jsem pak objevil ipsec-tools, měl jsem radost z toho, že konfigurace najednou docela dobře odpovídá tomu, jak ta implementace opravdu funguje.
Co se týká té (ne)omylnosti, měl bych námět k zamyšlení: je opravdu tak principiální rozdíl mezi chybou v konfiguraci security policies a chybou v konfiguraci pravidel netfilteru? Je opravdu jedno na denním pořádku a druhé prakticky vyloučené? Já bych řekl že ne.
Není to slovíčkaření.
V transportním režimu se vezme nešifrovaný packet, mezi IP hlavičku a payload se vloží AH hlavička (případně ESP, je-li třeba šifrování) a packet se pustí do světa, jako kdyby šifrovaný nebyl. O dešifrování se postará příjemce.
V tunelovacím režimu se vezme nešifrovaný packet, celý se zabalí do AH (či ESP) a předřadí se mu úplně nová IP hlavička. Nová IP hlavička potřebuje nějakou zdrojovou a cílovou adresu. A těmi jsou adresy konců tunelu. Šifrovaný packet tudíž neputuje k původnímu příjemci, ale k druhému konci tunelu, kde se dešifruje a vybalený packet se odsměruje dál původnímu příjemci.
Z toho vyplývají jiné způsoby použití. Transportní se používá při end-to-end šifrování, kdežto tunelovací při propojování sítí. Ono by se daly oba režimy znásilnit pro opačný způsob použití, ale nebylo by moc praktické. Určitou analogii lze najít s WDS v protokolu 802.11.
Ono by se daly oba režimy znásilnit pro opačný způsob použití, ale nebylo by moc praktické.
Tunnel mode se pro host to host IPsec používá celkem běžně. Dokonce jsem zaslechl, že existují i implementace, které transport mode ani nakonfigurovat neumožňují.
Obráceně by to ale asi bylo opravdu trochu násilné. Nejjednodušší by v takovém případě asi bylo kombinovat transport mode s něčím jako ipip nebo GRE.
Encapsulating Security Payloads (ESP) provides confidentiality, connectionless data integrity, data-origin authentication, an anti-replay service (a form of partial sequence integrity), and limited traffic-flow confidentiality.https://en.wikipedia.org/wiki/IP_tunnel
IP tunnels are often used for connecting two disjoint IP networks that don't have a native routing path to each other, via an underlying routable protocol across an intermediate transport network. In conjunction with the IPsec protocol they may be used to create a virtual private network between two or more private networks across a public network such as the Internet. Another prominent use is to connect islands of IPv6 installations across the IPv4 Internet.
To je správná připomínka. Je to tak. Pokud na sebe počítače přímo vidí, funguje spojení i bez šifrování. To je na IPv6 normální stav.
Řešení mě napadají hned čtyři:
označit ve StrongSwan šifrované pakety a ve firewallu neoznačené pakety zahodit (jde to?)Pokud se nepletu, jde to, ale podle mě je jednodušší použít na netfilteru rovnou extension policy a zahazovat to, co jde nešifrovaně.
Především: xfrm není síťové rozhraní, xfrm je část linuxového síťového stacku, která zajišťuje transformaci paketů, nejčastějí šifrování nebo dešifrování pomocí ESP a autentizaci pomocí ESP nebo AH, tj. to, co známe jako IPsec.
To je věc, která fungovala už od počátku řady 2.6, ale protože implementace nevytvářela pro bezpečnou komunikaci virtuální "tunelové" rozhraní, jak byli lidé zvyklí z (nejen) FreeS/WAN, prakticky od té doby se po všech fórech šířilo nepřetržité brblání, že je to celé úplně blbě, nedá se to pochopit, nedá se to používat atd. Spousta lidí má totiž myšlenkový blok, že když vidí "holé" i "zabezpečené" pakety na stejném interface, tak to přece nemůže být bezpečné, a nějakým security policies, které jsou v jádře teprve 16 let, přece věřit nebudou.
Nakonec vývojáři tu možnost, aby se použil jakýsi virtuální interface pro xfrm, v jádře 4.19 implementovali. Ale naštěstí je to jen možnost, pokud si to tak nenastavíte, funguje všechno jako předtím.
Já provozuji IPSEC bez xfrm
To je na jakékoli současné linuxové distribuci velmi nepravděpodobné.
Před xfrm byla možnost používat VTI (od kernelu 3.6).
To není "před xfrm", xfrm je součástí linuxového jádra už od počátku řady 2.6 (technicky už od nějaké verze z řady 2.5). Jak už jsem se pokusil naznačit jednou, zaměňujete "xfrm" a "virtuální xfrm interface".
U jednoduchého vpn není problém, ale jakmile se komplexita zvětšuje, je to velký přínos.
Máme zákazníka, pro kterého jsem opravoval chybu, která se projevila, když v jednom netns vytvořili asi 17000 SA a pak ten netns zrušili. Měli se svými nasazeními všelijaké problémy, ale nevzpomínám si, že by si někdy stěžovali na absenci virtuálních xfrm rozhraní.
V tom případě nevím, proč jsi s tím začal, když se celou dobu bavíme o xfrm virtuálním iface
Protože opakovaně používáte určitý termín, ale myslíte tím něco úplně jiného, než co znamená. Termíny slouží k tomu, aby se lidé domluvili. Když si bude každý vymýšlet vlastní terminologii, bude to s tou domluvou docela problém.
V tomto případě je to o to horší, že to děláte v textu, který je něco jako tutorial, takže je naprosto žádoucí chybnou terminologii opravit, aby se ji neučili další.
Že se tobě o tom nějaká firma nezmínila(nebo nemá nasazeno) má celkem nulový informační přínos.
Informační přínos je v tom, že je to příklad, že ani při dost značné komplexitě to bez těch virtuálních rozhraní není problém, stačí nepodléhat zažitým stereotypům.
Navíc kdo googlí xfrm, narazí v 99% na virtuální iface a né část stacku v kernelu.
Nedalo mi to a zkusil jsem to:
Abych byl férový, na 11. místě konečně XFRM Interface Development Notes - Libreswan.
Je sice známé, že Google personalizuje výsledky vyhledávání, ale že by až tak moc?
Není problém s kolizními segmenty (klient může být ve své lokální síti 192.168.1.0/24 a zároveň se pomocí VPN připojit do vzdálené 192.168.1.0/24 a není problém)Jak to funguje?
Hrubá propustnost je jen jedna část problému; openvpn totiž veškerý provoz zpracovává v jedné frontě jedním threadem, takže pokud přes openvpn běží větší datové přenosy, interaktivní provoz tím dost trpí. Dnes už sice tun/tap umí multiqueue, takže by multithreadové zpracování bylo možné, ale zatím openvpn nikdo nepřepsal.
Dřív to bylo ještě horší, to se v tom jednom threadu dělalo úplně všechno a synchronně, takže se třeba stávalo, že když byla pomalejší odezva od LDAP serveru, každé přihlášení uživatele na pár sekund zablokovalo veškerý provoz.
přes 120 klientů na jednom OpenVPN serveru (outsourcovaného) a nevím nevím, zda to bylo pomalý kvůli tomu serveru jako takovému (kromě OVPN tam jsou i další věci) nebo zda za to mohlo i OpenVPN jako takové
Při 120 klientech a pravděpodobně i nezanedbatelném procentu skutečně aktivních je skoro jisté, že je to ten problém, který jsem popisoval (všechno v jedné frontě a jednom threadu).
TCP nepoužitelné
Tunelování v TCP je problém skoro vždy, to by mělo být brané jen jako nouzová alternativa pro situace, kdy UDP z nějakého důvodu nejde použít - třeba proto, že je jedna strana za nějakým nesmyslně nakonfigurovaným firewallem. Zejména TCP v TCP funguje rozumně jen za ideálních podmínek, jakmile se začnou ztrácet pakety, dělá to psí kusy.