sshuttle versus plná VPN: co jeho metoda skutečně pokrývá
sshuttle přenáší jen to, co jeho metoda přesměrování podporuje: nejprve zkontrolujte pokrytí TCP, DNS a UDP, potřebná místní oprávnění a vzdáleného pomocníka.
sshuttle se vybírá proto, že SSH už funguje a kryptografie vypadá povědomě, a tato úvaha přeskočí jedinou otázku, která rozhoduje o vhodnosti. Které pakety opouštějí stroj, který účet je nese na druhé straně a kolik místních oprávnění nástroj vyžaduje. Tyto tři odpovědi se liší podle metody přesměrování, takže nastavení, které funguje pro jednu aplikaci, může tiše selhat u další. Následující rozbor začíná protokolem, který aplikace skutečně potřebuje.
Začněte protokolem, který aplikace potřebuje
Podpora protokolů v sshuttle 2.0 závisí na zvolené metodě. Metody NAT a nft v Linuxu zvládají TCP a DNS a TPROXY přidává obecné UDP. Každá platforma a metoda má své hranice a macOS zachytává zcela jiným mechanismem. Než cokoli zvolíte, zaznamenejte nainstalovanou verzi, zvolenou metodu a protokoly, které aplikace potřebuje.
Fungující požadavek TCP tedy o aplikaci UDP nebo o každém dotazu DNS dokazuje jen velmi málo. sshuttle navíc bere TCP jako proudy, místo aby tuneloval celé IP pakety, takže závěr o propustnosti vypůjčený z běžné VPN se sem nepřenáší. Porovnejte mechanismus, který skutečně spouštíte, se zátěží, kterou skutečně máte.
| Approach | What it carries | What it needs locally |
|---|---|---|
| SSH local forward | One explicitly named TCP destination | Nothing beyond the SSH client |
| sshuttle, nft or nat method | TCP and DNS to the routed prefixes | Root or sudo for firewall rules |
| sshuttle, tproxy method | TCP, DNS and general UDP | Root or sudo, and kernel support |
| IP VPN | Routed IP traffic in a tunnel | A client with the required privileges |
Co klient potřebuje lokálně
Dokumentované uspořádání klienta vyžaduje root nebo sudo, protože instaluje místní pravidla zachytávání, místo aby vytvořilo tunelové rozhraní. Tento jediný fakt mění bezpečnostní příběh: proces s tímto oprávněním může přesměrovat provoz celého stroje, ne jen jedné aplikace. Berte oprávnění jako součást návrhu, ne jako detail instalace.
Ověřte, která pravidla nástroj nainstaloval a že při ukončení zmizí. Spadlá relace, která po sobě nechá pravidla zachytávání, může poslat provoz do černé díry dlouho poté, co si operátor myslí, že spojení skončilo, a příznak vypadá jako výpadek sítě, ne jako zbylé pravidlo.
sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route
První příkaz je podoba typického volání se skutečně potřebným prefixem. Druhý ukazuje, co nástroj nainstaloval, a třetí potvrzuje, že se neobjevilo tunelové rozhraní, což je u tohoto návrhu očekávaný výsledek.
Co spouští vzdálená strana
Vzdálená strana je autorizovaný účet SSH plus kompatibilní prostředí pomocníka v Pythonu. Přihlášení, které projde v omezeném shellu, automaticky nedává právo pomocníka spustit, a účet, který pomocníka spustit umí, automaticky nedosáhne na každou cílovou službu. Obě skutečnosti patří do žádosti o přístup, ne do poznámek k řešení potíží.
Chraňte ověření identity hostitele i autentizaci účtu. Přijetí neznámého klíče hostitele, aby první spojení fungovalo, odstraňuje kontrolu, že vzdálená strana je zamýšlený stroj, a to je zde důležitější než u přesměrování pro jediný účel.
Omezte vzdálený účet na služby, které pracovní postup potřebuje, a tento rozsah dohodněte s těmi, kdo hostitele provozují. Jsou součástí vztahu důvěry a žádné nastavení na straně klienta to nemění.
Kde leží hranice důvěry
Přesměrování soukromého připojení API přes SSH neopravňuje ke každé operaci API. TLS aplikace i přihlášení do aplikace stále platí a nástroj nedokáže udělat neautentizovanou službu bezpečnou. Ani další skok ze vzdáleného hostitele není automaticky stejný chráněný segment jako kanál SSH, protože toto druhé spojení se řídí politikou, kterou vzdálený hostitel má.
Zapište hranici jednou větou: provoz do těchto prefixů odchází tímto účtem na onom hostiteli. Pokud věta potřebuje odstavec výjimek, návrh dělá víc, než tvrdí jeho dokumentace, a zaslouží si druhý pohled, než se dostane do produkce.
Dokažte to po protokolech a potom zvolte nástroj
Otestujte každý potřebný protokol neškodným požadavkem, včetně cesty překladače a rodin adres, které aplikace používá. Zařaďte do testu i odpojení, aby se povolené chování aplikace při selhání stalo známým výsledkem, a ne překvapením během incidentu. Relace, která během běhu správně přesměrovávala, nic neříká o tom, co se stane po jejím pádu.
Pro hrstku výslovně pojmenovaných služeb je běžné místní přesměrování snazší na vlastnictví i na audit. Pro provoz aplikací, který odpovídá jeho metodě, nabízí sshuttle legitimní střední cestu. Když je požadavkem široká IP konektivita, je návrh VPN poctivou odpovědí a volba sleduje pokrytí a provozní odpovědnost, ne žebříček šifrovacích algoritmů.