Wéi en App-Trafic dréit eng SSH-Weiderleitung tatsächlech?
Eng Shell, eng lokal Weiderleitung, SOCKS an den Tunnelgerät-Modus bidden ënnerschiddlech Schnëttstellen. Nennt déi, déi Är App benotze kann, ier Dir se mat engem gerouteten VPN vergläicht.
Den Terminal verbënnt sech, de Prompt erschéngt, an all si sech eens, datt den SSH-Zougang funktionéiert. Duerno kann en Datebank-Client um Laptop de private Host nach ëmmer net erreechen, an d’Sitzung gëtt als Schold betruecht. Gebaut gouf eng Shell, an dat ass eng vun véier ganz ënnerschiddleche Schnëttstellen, déi SSH ubidden kann. Nennt d’Schnëttstell als éischt, a testt dann, ob d’App se wierklech benotzt. D’Reiefolleg ass wichteg, well all Schnëttstell op seng Manéier feelt.
Nennt d’Schnëttstell, ier Dir eppes vergläicht
Den Handbuch vum OpenSSH-Client ënnerscheet véier Mechanismen, déi liicht ze verwiesselen sinn. Eng Shell oder e Kommando aus der Ferne leeft um SSH-Host. Eng lokal Weiderleitung mécht en horchend Socket um Client op an etabléiert déi weider Verbindung vun der ferner Säit. Eng Weiderleitung aus der Ferne mécht d’Géigendeel an horcht op der Serversäit. D’dynamesch Weiderleitung bitt en SOCKS-Endpunkt fir Programmer, déi wësse wéi een en benotzt.
- Shell: de Programm leeft op der ferner Maschinn, lokal horcht een net.
- Lokal Weiderleitung: Äre Laptop huet e Port, de fernen Host baut d’ausgéierend Verbindung op.
- Weiderleitung aus der Ferne: déi fern Säit huet e Port, den Trafic kënnt bei Iech zeréck.
- Dynamesch: en SOCKS-Proxy um Client, nëmme vun Applikatiounen benotzt, déi de Proxy begréifen.
Näischt vun dësem installéiert eng Route. E Programm, dat d’Proxy-Astellungen ignoréiert, oder UDP schwätzt, oder d’Nimm selwer opléist, gëtt vun enger aktiver SSH-Sitzung net beaflosst. Dat ass kee Fehler an SSH; et ass den Ëmfang vun der Schnëttstell, déi Dir gewielt hutt.
Lokal, Fern- an dynamesch Weiderleitungen ënnerscheede sech doran, wien horcht
Den Ënnerscheed, deen déi meeschte Fäll entscheet, ass wien den horchenden Socket besëtzt. Bei enger lokaler Weiderleitung horcht de Client an de fernen Enn wielt d’Zil un, dofir gëtt d’Ziladress aus der Siicht vum Server opgeléist. Bei enger Weiderleitung aus der Ferne horcht de Server an d’Verbindung gëtt op Är Säit zeréckgedro, an esou exposéiert Dir en lokalen Déngscht, ouni en direkt ze verëffentlechen.
ssh -N -L 5432:db.internal.example:5432 [email protected] ssh -N -D 1080 [email protected] ss -ltnp | grep -E '5432|1080'
Den éischte Kommando bënnt de Port 5432 um Laptop an leet en un d’Datebank weider, wéi se vum Bastion aus gesäit. Den zweeten erstellt en SOCKS-Proxy um Port 1080. Den drëtten Kommando bestätegt, wéi eng Prozesser wierklech horchen, an dat ass deen eenzege Beweis, datt d’Weiderleitung existéiert an net wéinst engem Portkonflikt roueg feelgeschloen ass.
D’dynamesch Weiderleitung verdéngt hir eege Warnung: si deckt nëmme Applikatiounen, déi SOCKS respektéieren. E Browser kann drop geriicht ginn, engem Kommandozeilen-Tool kann gesot ginn, en ze benotzen, awer en Datebank-Driver mat sengem eegene Verbindungsstack kann dat meeschtens net. Unzehuelen, datt all Programm op der Maschinn elo den Tunnel benotzt, ass dee heefegste Fehler an dësem ganze Beräich.
Den Tunnelgerät-Modus ass déi eenzeg richteg Netzwierk-Ausnam
OpenSSH ënnerstëtzt och d’Weiderleitung vum Tunnelgerät -w, déi eng Punkt-zu-Punkt-Schnëttstell amplaz vun engem TCP-Horcher duerchgëtt. Dat ass en echte Netzwierktunnel, an en gëtt bewosst konfiguréiert, net als Nieweneffekt vum Opmaache vun enger Shell.
sudo ssh -w 0:0 [email protected] ip addr show tun0
En brauch déi entspriechend Schnëttstellnummeren op béide Enner, déi richteg Konfiguratioun um Server a genuch Rechter um Client fir d’Apparat ze schafen. En brauch och en Adresséierungs- a Routingplang, well eng blooss Schnëttstell keng Richtlinn dréit, wéi eng Ziler se benotze sollen.
Och dann endet den Tunnel um fernen Host. Wéi ee Schutz den SSH-Transport och gebueden huet, en endet do, an déi weider Verbindung ass en eegene Sprong. En VPN-Gateway huet déi selwecht Form vun Grenz, dofir sollt de Verglach iwwer Ëmfang an Ofschloss goen an net doriwwer, wéi en Tool méi staark ass. Dës Grenz haart auszeschwätzen entscheet och d’Diskussioun, ob en Tunnel «alles verschlësselt», well en dat däitlech net mécht.
Testt, datt Är App d’Schnëttstell benotzt, déi Dir gebaut hutt
D’Iwwerpréiwung ass pro Applikatioun, net pro Sitzung. Eng funktionéierend Weiderleitung beweist, datt de Port gebonnen ass an de fernen Enn Uschloss ka maachen; si beweist net, datt de Programm, deen Iech wichteg ass, duerch si verbonnen huet.
curl -sS --socks5-hostname 127.0.0.1:1080 -o /dev/null -w '%{http_code}\n' https://app.internal.example/health
psql "host=127.0.0.1 port=5432 dbname=app sslmode=require" -c 'select 1'Den éischte Kommando schéckt eng Ufro duerch den SOCKS-Endpunkt mam Hostnumm aus der Ferne opgeléist, an den zweeten exercéiert de weidergeleet Datebankport mat TLS nach ëmmer erfuerderlech. Fuert déiselwecht Tester mat gestoppter Weiderleitung aus, fir ze bestätegen, datt se feelen, well en Test, deen op béide Weeër passéiert, den Tunnel ni benotzt huet.
Vergläicht dann mat engem gerouteten VPN nëmmen an de Dimensiounen, déi zielen: wéi eng Ziler ofgedeckt sinn, wéi eng Protokoller funktionéieren, wou de Schutz endet a wien den Zougang muss approuvéieren. Eng Weiderleitung fir een eenzegen Déngscht kann déi méi schmuel an déi besser Äntwert sinn, während e VPN déi richteg Form ass, wann vill Applikatiounen deeselwechte Netzwierkwee brauchen. Keng vun deenen zwee gëtt alles, wat vun hirem fernen Endpunkt erreechbar ass.