SSH-tunneling og teknikker til port forwarding
Lær lokal, fjernbaseret og dynamisk port forwarding, og forstå deres legitime og sikkerhedsfølsomme anvendelser.
SSH-tunneling og teknikker til port forwarding er en gratis Cryptology Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cryptology Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cryptology Academy-kurset indeholder 4 lektioner i alt.
Begrebet lokal portvideresendelse
Lokal portvideresendelse (ssh -L local_port:destination_host:destination_port user@ssh_server) binder en port på din lokale maskine. Trafik, der sendes til denne lokale port, går gennem den krypterede SSH-forbindelse til SSH-serveren, som derefter opretter forbindelse til destinationen. Din lokale applikation kommunikerer med localhost, mens SSH leverer trafikken sikkert til den eksterne destination.
Anvendelse af lokal videresendelse: databaseadgang
En almindelig anvendelse af lokal portvideresendelse er adgang til en intern database bag en firewall. Med ssh -L 5432:db.internal:5432 user@bastion opretter din lokale PostgreSQL-klient forbindelse til localhost:5432. Bastionværten videresender denne trafik til den interne databaseserver, som ellers ikke kan nås fra internettet.
Begrebet fjernportvideresendelse
Fjernportvideresendelse (ssh -R remote_port:local_host:local_port user@ssh_server) binder en port på den eksterne SSH-server. Når eksterne klienter opretter forbindelse til denne fjernport, går trafikken tilbage gennem SSH-tunnellen til din lokale maskine. Det giver dig mulighed for at eksponere en lokalt kørende tjeneste for omverdenen via en internetvendt server.
Anvendelse af fjernvideresendelse: bag NAT
Fjernvideresendelse er især nyttig, når din maskine står bag NAT og ikke kan modtage indgående forbindelser direkte. Ved at oprette en omvendt tunnel til en offentlig server kan du give eksterne klienter adgang til din lokale tjeneste gennem den offentlige server. Denne teknik bruges også af nogle værktøjer til fjernadgang og systemer til administration af IoT-enheder.
Dynamisk portvideresendelse: SOCKS5-proxy
Dynamisk portvideresendelse (ssh -D local_port user@ssh_server) opretter en SOCKS5-proxy på din lokale maskine. Alle SOCKS5-kompatible applikationer kan sende trafik gennem denne proxy, så trafikken ser ud til at komme fra SSH-serveren. Det sender i praksis din webtrafik gennem det eksterne netværk, hvilket er nyttigt til at få adgang til geografisk begrænsede ressourcer eller omgå filtre på det lokale netværk.
Omvendte tunneller og sikkerhedsmæssige konsekvenser
Omvendte tunneller er effektive, men medfører sikkerhedsrisici. Hvis en server tillader GatewayPorts, bliver fjernvideresendte porte tilgængelige fra det offentlige internet og ikke kun fra localhost. En angriber, der kompromitterer en maskine med en omvendt tunnel, kan potentielt få adgang til interne tjenester. Organisationer bør overvåge uautoriserede omvendte tunneller og begrænse GatewayPorts i SSH-konfigurationerne.
SSH-serverens tunnelindstillinger
SSH-serverens konfiguration styrer mulighederne for tunnelforbindelser. AllowTcpForwarding styrer, om lokal og fjern portvideresendelse er tilladt. AllowStreamLocalForwarding styrer videresendelse af Unix-sockets. Hvis du indstiller disse til no, deaktiveres tunnelforbindelser for alle brugere; du kan også begrænse dem pr. bruger eller gruppe. Deaktivering af unødvendig videresendelse mindsker angrebsfladen.
SSH som VPN med tun-enheder
SSH understøtter oprettelse af tun-netværksgrænseflader til fuld IP-tunnelforbindelse (ssh -w). Det gør SSH til en enkel VPN, hvor hele IP-pakker sendes gennem tunnellen og ikke kun bestemte TCP-forbindelser. PermitTunnel skal være aktiveret på serveren. Selvom denne tilgang er mindre effektiv end dedikeret VPN-software, kræver den ingen ekstra software og udnytter den eksisterende SSH-infrastruktur.
Multiplexing af forbindelser
Multiplexing af SSH-forbindelser (indstillingerne ControlMaster og ControlPath) genbruger en eksisterende SSH-forbindelse til nye sessioner. Det gør efterfølgende forbindelser til den samme vært markant hurtigere, hvilket især er værdifuldt i scriptbaserede miljøer. Tunneler kan også holdes aktive på tværs af flere SSH-sessioner ved hjælp af den delte forbindelse.
Registrering af SSH-tunneler
Netværksadministratorer kan registrere SSH-tunnellering gennem usædvanlige trafikmønstre: langvarige TCP-forbindelser på port 22, uventet store datamængder for forbindelser, der kun burde transportere terminaltrafik, eller forbindelser til kendt følsomme destinationer, efter at de er oprettet. Dyb pakkeinspektion kan ikke se SSH-indholdet, men metadataanalyse kan markere mistænkelig tunneladfærd.
Bedste praksis for tunnelkonfiguration
Ved autoriseret brug skal du dokumentere alle tunneler og deres formål. Brug -N (ingen kommando) sammen med tunneler for at undgå at åbne en shell unødvendigt, og -f (baggrund) for at køre dem uden at blokere din terminal. Til permanente tunneler kan du bruge AutoSSH eller systemd-sokkelaktivering, som automatisk genstarter tunnelen, hvis forbindelsen afbrydes.
Lokal kontra fjernportvideresendelse
Du vil eksponere din lokale udviklingsserver (som kører på port 3000) til internettet gennem en offentlig SSH-server. Hvilken type portvideresendelse skal du bruge?
Opsummering af SSH-tunnellering
Opsummering af SSH-tunnellering: lokal videresendelse (-L) giver sikker adgang til interne tjenester fra din maskine, fjernvideresendelse (-R) eksponerer lokale tjenester gennem en offentlig server, dynamisk videresendelse (-D) opretter en SOCKS5-proxy til routing af trafik på applikationsniveau, tun-videresendelse aktiverer en fuld IP-VPN, og AllowTcpForwarding på serveren styrer disse funktioner.
Lær Cryptology Academy med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 67
- Lektioner
- 261
Ofte stillede spørgsmål
Er lektionen “SSH-tunneling og teknikker til port forwarding” gratis?
Ja — hele teksten til “SSH-tunneling og teknikker til port forwarding” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cryptology Academy-kurset, skal du opgradere til CoddyKit PRO. Cryptology Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “SSH-tunneling og teknikker til port forwarding”?
Lær lokal, fjernbaseret og dynamisk port forwarding, og forstå deres legitime og sikkerhedsfølsomme anvendelser. Du øver dig i Cryptology Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cryptology Academy?
Der kræves ingen tidligere erfaring. Cryptology Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “SSH-tunneling og teknikker til port forwarding”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cryptology Academy-lektion?
Ja. Alle Cryptology Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- SSH-handshake og host key-autentificering
- Autentificering med public key og agent forwarding
- SSH-tunneling og teknikker til port forwarding
- SSH-hardening og bedste praksis for audit