Een SSH-client maakt verbinding met een Secure Shell-server, waardoor u terminalopdrachten kunt uitvoeren alsof u tegenover elkaar zit computer. Maar met een SSH-client kunt u ook een poort "tunnelen" tussen uw lokale systeem en een externe SSH-server.
Er zijn drie verschillende soorten SSH-tunneling en deze worden allemaal voor verschillende doeleinden gebruikt. Elk omvat het gebruik van een SSH-server om verkeer om te leiden van de ene netwerkpoort naar de andere. Het verkeer wordt via de gecodeerde SSH-verbinding verzonden, dus het kan niet worden gecontroleerd of gewijzigd tijdens het transport.
U kunt dit doen met de opdrachtssh
die is opgenomen in Linux, macOS en andere UNIX-achtige besturingssystemen. In Windows, dat geen ingebouwde ssh-opdracht bevat, raden we de gratis tool PuTTY aan om verbinding te maken met SSH-servers. Het ondersteunt ook SSH-tunneling.
"Lokale poortdoorschakeling" biedt u toegang tot lokale netwerkbronnen die niet zijn blootgesteld aan internet. Stel dat u bijvoorbeeld vanuit uw huis toegang wilt krijgen tot een databaseserver bij u op kantoor. Om veiligheidsredenen is die databaseserver alleen geconfigureerd om verbindingen van het lokale kantoornetwerk te accepteren. Maar als u op kantoor toegang hebt tot een SSH-server en die SSH-server verbindingen van buiten het kantoornetwerk toestaat, kunt u vanaf thuis verbinding maken met die SSH-server en toegang krijgen tot de databaseserver alsof u op kantoor bent. Dit is vaak het geval, omdat het eenvoudiger is om één SSH-server te beveiligen tegen aanvallen dan om verschillende netwerkbronnen te beveiligen.
Hiervoor stelt u een SSH-verbinding in met de SSH-server en geeft u de client opdracht om verkeer door te sturen van een specifieke poort van uw lokale pc, bijvoorbeeld poort 1234, naar het adres van de server van de database en de poort op het kantoornetwerk. Dus wanneer u probeert toegang te krijgen tot de databaseserver op poort 1234 uw huidige pc, "localhost", wordt dat verkeer automatisch "getunneld" over de SSH-verbinding en verzonden naar de databaseserver. De SSH-server zit in het midden en stuurt het verkeer heen en weer. U kunt elke opdrachtregel of grafische tool gebruiken om toegang te krijgen tot de databaseserver alsof deze op uw lokale pc werd uitgevoerd.
Gebruik voor lokale doorschakeling normaal verbinding met de SSH-server, maar lever ook de-L
argument. De syntaxis is:
ssh -L local_port: remote_address: remote_port [email protected]
Laten we zeggen dat de databaseserver op uw kantoor zich op 192.168.1.111 op het kantoornetwerk bevindt. U hebt toegang tot de SSH-server van het kantoor opssh.youroffice.com
en uw gebruikersaccount op de SSH-server isbob
. In dat geval ziet uw opdracht er als volgt uit:
ssh -L 8888: 192.168.1.111: 1234 [email protected]
Na het uitvoeren van die opdracht kunt u toegang krijgen tot de databaseserver op poort 8888 bij localhost. Dus als de databaseserver webtoegang biedt, kunt u // localhost: 8888 aansluiten op uw webbrowser om er toegang toe te krijgen. Als u een opdrachtregelprogramma had dat het netwerkadres van een database nodig heeft, wijst u dit naar localhost: 8888. Alle verkeer verzonden naar poort 8888 op uw pc wordt getunneld naar 192.168.1.111:1234 op uw bedrijfsnetwerk.
Het is een beetje verwarder als u verbinding wilt maken met een servertoepassing die op hetzelfde systeem draait als de SSH-server zelf . Stel dat u bijvoorbeeld een SSH-server hebt die wordt uitgevoerd op poort 22 op uw kantoorcomputer, maar dat u ook een databaseserver heeft die wordt uitgevoerd op poort 1234 op hetzelfde systeem op hetzelfde adres. U wilt toegang tot de databaseserver van thuis, maar het systeem accepteert alleen SSH-verbindingen op poort 22 en de firewall staat geen andere externe verbindingen toe.
In dit geval zou u een opdracht zoals de volgende kunnen uitvoeren:
ssh -L 8888: localhost: 1234 [email protected]
Wanneer u probeert toegang te krijgen tot de databaseserver op poort 8888 op uw huidige pc, wordt het verkeer via de SSH-verbinding verzonden. Wanneer het arriveert op het systeem waarop de SSH-server draait, zal de SSH-server het naar poort 1234 sturen op "localhost", wat dezelfde pc is waarop de SSH-server zelf draait. Dus de "localhost" in de bovenstaande opdracht betekent "localhost" vanuit het perspectief van de externe server.
Om dit te doen in de PuTTY-toepassing op Windows, selecteert u Verbinding> SSH> Tunnels. Selecteer de optie "Lokaal". Voer voor "Bronpoort" de lokale poort in. Voer voor "Bestemming" het bestemmingsadres en de poort in het formulier remote_address: remote_port in.
Als u bijvoorbeeld dezelfde SSH-tunnel als hierboven wilt instellen, voert u8888
in als de bronpoort enlocalhost: 1234
als de bestemming. Klik achteraf op "Toevoegen" en klik vervolgens op "Openen" om de SSH-verbinding te openen. U moet natuurlijk ook het adres en de poort van de SSH-server invoeren op het hoofdscherm 'Sessie' voordat u verbinding maakt.
'Externe poort doorsturen "Is het tegenovergestelde van lokale doorsturen en wordt niet zo vaak gebruikt. Hiermee kunt u een bron op uw lokale pc beschikbaar maken op de SSH-server. Laten we bijvoorbeeld zeggen dat u een webserver draait op de lokale pc waar u voor zit. Maar uw pc bevindt zich achter een firewall die geen inkomend verkeer naar de serversoftware toestaat.
Ervan uitgaande dat u toegang hebt tot een externe SSH-server, kunt u verbinding maken met die SSH-server en externe poortdoorschakeling gebruiken. Uw SSH-client zal de server laten weten dat hij een specifieke poort (bijvoorbeeld poort 1234) op de SSH-server doorstuurt naar een specifiek adres en poort op uw huidige pc of lokaal netwerk. Wanneer iemand toegang krijgt tot de poort 1234 op de SSH-server, wordt dat verkeer automatisch "getunneld" over de SSH-verbinding. Iedereen met toegang tot de SSH-server heeft toegang tot de webserver die op uw pc wordt uitgevoerd. Dit is in feite een manier om door firewalls te tunnelen.
Gebruik voor verzending op afstand de opdrachtssh
met het argument-R
. De syntaxis is grotendeels hetzelfde als bij lokale forwarding:
ssh -R remote_port: local_address: local_port [email protected]
Stel dat u een servertoepassing wilt laten luisteren op poort 1234 op uw lokale pc die beschikbaar is op poort 8888 op de externe SSH-server. Het adres van de SSH-server isssh.youroffice.com
en uw gebruikersnaam op de SSH-server is bob . U voert de volgende opdracht uit:
ssh -R 8888: localhost: 1234 [email protected]
Iemand kon dan verbinding maken met de SSH-server op poort 8888 en die verbinding zou worden getunneld naar de servertoepassing draait op poort 1234 op de lokale pc waar u de verbinding van hebt gemaakt.
Om dit te doen in PuTTY op Windows, selecteert u Verbinding> SSH> Tunnels. Selecteer de optie "Afstandsbediening". Voor "Bronpoort" voert u de externe poort in. Voor 'Bestemming' voert u het bestemmingsadres en de poort in de vorm local_address: local_port.
Als u bijvoorbeeld het bovenstaande voorbeeld wilt instellen, geeft u8888
op als de bronpoort enlocalhost: 1234
als de bestemming. Klik achteraf op "Toevoegen" en klik vervolgens op "Openen" om de SSH-verbinding te openen. Je moet natuurlijk ook het adres en de poort van de SSH-server invoeren op het hoofdscherm 'Sessie' voordat je verbinding maakt.
Mensen konden dan verbinding maken met poort 8888 op de SSH-server en hun verkeer zou worden getunneld naar poort 1234 op uw lokale systeem.
Standaard luistert de externe SSH-server alleen naar verbindingen van dezelfde host. Met andere woorden, alleen mensen op hetzelfde systeem als de SSH-server zelf kunnen verbinding maken. Dit is om veiligheidsredenen. U moet de optie "GatewayPorts" inschakelen in sshd_config op de externe SSH-server als u dit gedrag wilt overschrijven.
RELATED: Wat is de Verschil tussen een VPN en een proxy?
Er is ook "dynamic port forwarding", die op dezelfde manier werkt als een proxy of VPN. De SSH-client maakt een SOCKS-proxy die u kunt configureren voor gebruik. Al het verkeer dat via de proxy wordt verzonden, wordt via de SSH-server verzonden. Dit is vergelijkbaar met lokale doorsturen: lokaal verkeer wordt naar een specifieke poort op uw pc gestuurd en via een SSH-verbinding naar een externe locatie verzonden.
GERELATEERD: Waarom een openbaar wifi-netwerk gebruiken gevaarlijk kan zijn, zelfs bij toegang tot versleutelde websites
Stel dat u een openbaar wifi-netwerk gebruikt. U wilt veilig bladeren zonder te worden bespied. Als u thuis toegang hebt tot een SSH-server, kunt u verbinding maken en dynamische poort doorsturen gebruiken. De SSH-client maakt een SOCKS-proxy op uw pc. Alle verkeer dat naar die proxy wordt verzonden, wordt via de SSH-serververbinding verzonden. Niemand die het openbare Wi-Fi-netwerk controleert, kan uw browsing volgen of de websites waar u toegang tot heeft, censureren. Vanuit het perspectief van websites die u bezoekt, is het alsof u thuis achter uw pc zit. Dit betekent ook dat je deze truc kunt gebruiken om toegang te krijgen tot websites die alleen voor de VS zijn terwijl je buiten de VS bent - ervan uitgaande dat je toegang hebt tot een SSH-server in de VS.
Als een ander voorbeeld, wil je misschien toegang tot een media serverapp die u op uw thuisnetwerk hebt. Om veiligheidsredenen is het mogelijk dat u alleen een SSH-server hebt die is blootgesteld aan internet. U staat inkomende verbindingen van internet niet toe aan uw mediaservertoepassing. U kunt dynamische port-forwarding instellen, een webbrowser configureren om de SOCKS-proxy te gebruiken en vervolgens via de webbrowser toegang krijgen tot servers die op uw thuisnetwerk draaien alsof u thuis voor uw SSH-systeem zat. Als uw mediaserver zich bijvoorbeeld op poort 192.168.1.123 op uw thuisnetwerk bevindt, kunt u het adres192.168.1.123
in elke toepassing met behulp van de SOCKS-proxy aansluiten en hebt u toegang tot de mediaserver alsof je werkte in je thuisnetwerk.
Om dynamische forwarding te gebruiken, voer je de ssh-opdracht uit met het argument-D
, bijvoorbeeld:
ssh -D local_port [email protected]
Laten we bijvoorbeeld zeggen dat u toegang heeft tot een SSH-server opssh.yourhome.com
en dat uw gebruikersnaam op de SSH-serverbob
is. U wilt dynamische doorsturen gebruiken om een SOCKS-proxy te openen op poort 8888 op de huidige pc. U voert de volgende opdracht uit:
ssh -D 8888 [email protected]
U kunt vervolgens een webbrowser of een andere toepassing configureren om uw lokale IP-adres (127.0.01) en poort 8888 te gebruiken. Alle verkeer van die toepassing zou door de tunnel worden geleid.
Om dit in PuTTY in Windows te doen, selecteert u Verbinding> SSH> Tunnels. Selecteer de optie "Dynamisch". Voer voor "Bronpoort" de lokale poort in.
Als u bijvoorbeeld een SOCKS-proxy op poort 8888 wilt maken, geeft u8888
als de bronpoort op. Klik achteraf op "Toevoegen" en klik vervolgens op "Openen" om de SSH-verbinding te openen. Je moet natuurlijk ook het adres en de poort van de SSH-server invoeren op het hoofdscherm 'Sessie' voordat je verbinding maakt.
Je zou dan een applicatie kunnen configureren om toegang te krijgen tot de SOCKS-proxy op je lokale pc (dat wil zeggen, IP-adres 127.0.0.1, dat verwijst naar uw lokale pc) en geef de juiste poort op.
GERELATEERD: Hoe configureer ik een proxyserver in Firefox
U kunt Firefox bijvoorbeeld configureren om de SOCKS-proxy te gebruiken . Dit is met name handig omdat Firefox zijn eigen proxy-instellingen kan hebben en geen proxy-instellingen voor het hele systeem hoeft te gebruiken. Firefox verzendt zijn verkeer via de SSH-tunnel, terwijl andere toepassingen uw internetverbinding normaal gebruiken.
Wanneer u dit in Firefox doet, selecteert u "Handmatige proxyconfiguratie", voert u "127.0.0.1" in het vak SOCKS-host in en voert u de dynamische poort in het vak "Poort". Laat de vakken HTTP Proxy, SSL Proxy en FTP-proxy leeg.
De tunnel blijft actief en open zolang u de SSH-sessieverbinding open hebt staan. Wanneer u uw SSH-sessie beëindigt en de verbinding met een server verbreekt, wordt de tunnel ook gesloten. Maak gewoon opnieuw verbinding met de juiste opdracht (of de juiste opties in PuTTY) om de tunnel opnieuw te openen.
Hoe u zich kunt ontdoen van Bitdefender's kennisgevingen en gebundelde software
Bitdefender is net als andere antivirusprogramma's meer dan alleen een antivirusprogramma dat uw pc stil beschermt. Installeer Bitdefender en u krijgt een wachtwoordbeheerprogramma, een afzonderlijke webbrowser en een aantal andere meldingen en advertenties die u misschien niet wilt zien. GERELATEERD: Wat is de beste antivirus voor Windows 10?
Hoe u opnames kunt downloaden van uw Netgear Arlo Cameras
Het Arlo-camerasysteem van Netgear neemt automatisch video op wanneer er beweging wordt gedetecteerd en u kunt die video-opnamen bekijken in de Arlo-app. Maar je kunt ook opnames rechtstreeks naar je telefoon downloaden, zodat je deze kunt delen of bekijken zoals je zou willen. GERELATEERD: Hoe installeer ik het Netgear Arlo Pro-camerasysteem Netgear houdt Arlo camera-opnames bij tot zeven dagen als u niet betaalt voor een abonnement, wat meestal meer dan voldoende tijd is om ze te bekijken voordat ze verdwijnen.