Hvis du er heldig nok til at Internett-leverandøren din (ISP) gir deg en dedikert IP-adresse, kan du sette opp en hjemmeserver og gjøre den tilgjengelig for Internett ved å legge til noen få regler for portvidereføring til ruteren din. Men hvis Internett-leverandøren din får deg til å dele IP-en med naboene dine, vil ikke videresending av port hjelpe. Andre leverandører blokkerer ganske enkelt innkommende tilkoblinger gjennom brannmurregler.
Du kan omgå alle disse begrensningene ved hjelp av en virtuell privat server. Alt vil fungere, selv om det har mindre enn 512 MB RAM, da alt det trenger å gjøre er å omdirigere nettverkstrafikk. Dette er veldig lett på CPU og RAM. Serveren vil motta innkommende tilkoblinger og omdirigere dem til datamaskinen din gjennom det som kalles en «omvendt SSH-tunnel.» På denne måten kan du sette opp alle slags hjemmeserver, med svært små månedlige kostnader.
Tenk deg at du oppretter en NextCloud-server for å laste opp / synkronisere filene dine. Du får personvernet til å ha disse filene på hjemmeserveren din, og så kan du kjøpe en 6 TB harddisk for å få all den plassen du trenger. Du trenger bare å betale en månedlig strømregning og mindre enn $ 5 / måned for en virtuell privat server. Det er mye billigere enn den månedlige regningen for en server med 6 TB plass.
Merk: Dette fungerer bare for å omdirigere TCP-nettverkstrafikk. TCP brukes av ting som webservere (port 80 / tcp). UDP brukes av noen (ikke alle) spillservere, for eksempel Counter Strike (port 27015 / UDP). UDP-tunneling er mulig, men med noen «hacks», som kan være tema for en fremtidig opplæring.
Windows 10 har nå en innebygd SSH-klient
Det er ikke nødvendig å bruke PuTTY lenger for å starte SSH-tilkoblinger. Faktisk, for denne opplæringen vil du faktisk bruke denne innebygde klienten til å sette opp tunnelen. Les veiledningen om Windows 10s OpenSSH-klient hvis du ikke allerede er kjent med den.
Forbered Virtual Private Server til Tunnel Connections
Lag en virtuell privat server med favorittleverandøren din, som DigitalOcean, Linode, Vultr, eller hva du ellers foretrekker. Det viktigste er å velge en serverplassering som er så nær deg som mulig for å minimere nettverksforsinkelse. Prøv å sette opp serveren på en slik måte at du kommer til å logge på rotkontoen direkte, helst med en SSH-nøkkel, da den er sikrere. Dette kreves hvis du vil få serveren til å lytte til tilkoblinger som kommer på porter under 1024, såkalte privilegerte porter.
Åpne ledeteksten (eller en terminal hvis du bruker Linux), og logg på serveren via SSH.
Rediger OpenSSH-serverinnstillinger:
nano /etc/ssh/sshd_config
Hvis du ikke logget på som root, men som en vanlig bruker, må du bruke denne kommandoen, ellers vil du ikke kunne lagre filen:
sudo nano /etc/ssh/sshd_config
Rull ned til du finner en variabel som heter «GatewayPorts.» Linjen kan se slik ut: #GatewayPorts no
. Slett den forrige “#” (til kommentar) og endre linjen til GatewayPorts yes
.
Hvis du ikke finner linjen, er det bare å bla ned til slutten og legge til linjen selv:
GatewayPorts yes
trykk Ctrl + X, og trykk deretter på y, og til slutt Enter for å lagre filen.
Last SSH-demonen på nytt slik at den tar tak i den nye innstillingen.
systemctl reload ssh.service
Avslutt fra SSH-økten.
exit
Hvordan sette opp en omvendt SSH-tunnel
Kommandoparametrene er de samme på Linux, Windows og til og med BSD-operativsystemer. Den generelle syntaksen er:
ssh -R remote_port:host:localport your_username@IP-of-server
remote_port
forteller serveren å omdirigere tilkoblinger som kommer til den på den porten.host
forteller serveren på hvilken IP-adresse tilkoblingen skal omdirigeres til.127.0.0.1
vil bli brukt her for å omdirigere til din egen datamaskin.localport
instruerer hvilke portdatapakker som skal omdirigeres til. Her bør du legge portnummeret som applikasjonen din, installert på din lokale datamaskin, lytter til.
For eksempel, for å videresende alle tilkoblinger som kommer på port 80 (til serveren) og sende dem til port 8080 på din lokale datamaskin, vil kommandoen være:
ssh -R 80:127.0.0.1:8080 root@203.0.113.1
Dette forutsetter at du har en webserver, som Apache eller Nginx, som lytter på port 8080 på din lokale maskin. Men hvis Apache / Nginx lytter til standardport 80, er det ikke noe problem å bruke den samme porten to ganger i forrige kommando (siden de refererer til port 80 på en annen server).
ssh -R 80:127.0.0.1:80 root@203.0.113.1
På dette punktet, hvis noen skriver inn IP-adressen til den virtuelle private serveren din i adressefeltet i en nettleser, vil forbindelsen deres bli omdirigert og betjent av din lokale datamaskin.
På bildet over, a enkel webserver for Chrome ble brukt som lytter på port 8887 som standard. Du kan prøve dette oppsettet selv ved å installere appen og deretter bruke kommandoen, som på bildet.
Det er verdt å nevne at for å holde tunnelen aktiv, må SSH-sesjonen forbli aktiv. For å lukke tunnelen, skriv exit
i terminal- / ledetekstvinduet.
Konklusjon
Som du kan se, er det ikke vanskelig å lage en omvendt SSH-tunnel, men det er å sikre et nettsted. Så hvis du velger å implementere en idé som en lokal NextCloud-server, må du i det minste isolere den i en virtuell maskin. På denne måten, hvis nettstedet ditt blir kompromittert, vil i det minste resten av operativsystemet være uskadd.
Og du vet … alltid sikkerhetskopiere det du ikke vil risikere å miste!