Tekniktips: Smart VPN-lösning via SSH

Ibland är lösningar som man använder något som även andra skulle kunna ha nytta av. Vi är nog rätt många som har datorer på jobbet som man ibland skulle vilja kunna komma i kontakt med hemifrån. En VPN-lösning är ju en bra sak som finns men den brukar ta en del tid i anspråk att sätta upp och det kanske redan finns en befintlig koppling som bara saknar åtkomst till en port eller maskin du skulle behöva nå. Detta är extra aktuellt så här i semestertider när man kanske inte vill åka in till jobbet för att ordna med någon brandväggsöppning för att eventuellt råka skapa ett säkerhetshål i stressen.

Har du en maskin som du kan köra SSH till kan detta vara lösningen på det problem du eventuellt har. Jag använder en Mac och där är det möjligt att göra detta direkt från ett terminalfönster. Du behöver ett konto på en server som går att koppla upp mot med SSH. Det behöver inte vara så att servern är tillgänglig utifrån, bara du kan nå den på något vis via en VPN-koppling så får du möjlighet att ta dig vidare till andra datorer i ditt nätverk.

Det finns möjlighet att göra tunnlar från en SSH-klient till en annan maskin.

Åtkomst till RDP från din lokala dator till en dator på jobbet via SSH:


ssh -L lokalport:server:serverport user@server.local

Om du t.ex. som jag kör Mac och skulle vilja kunna koppla upp mot en windowskärra med RDP så kan du använda detta kommando:


ssh -L 3389:10.1.2.38:3389 user@server.local

Det som händer då är att den lokala porten 3389 som står som den första siffran i kommandot kommer bli en tunnel till servern 10.1.2.38 och dess remote desktoptjänst på port 3389.

När du sedan med din RDP-klient kopplar upp mot servern anger du uppkopplingsuppgifter:

127.0.0.1

Du kan även använda localhost som namn.

Om man då behöver koppla upp mot flera servrar går det bra att göra samma koppling flera gånger mot olika maskiner eller om du skulle behöva koppla upp mot flera olika portar mot samma maskin.


ssh -L 3389:10.1.2.38:3389 -L 3390:10.1.2.42:3389 user@server.local

I exemplet ovan skapar jag två tunnlar mot remote desktop på maskinerna som har IP-nummer 10.1.2.38 och 10.1.2.42. För att nå dem från min lokala remote desktopklient får jag lägga på portnummer i hostnamnet för att nå den andra:

127.0.0.1 -> Kopplas mot 10.1.2.38
127.0.0.1:3390 -> Kopplas mot 10.1.2.42

Om detta inte fungerar kan det bero på att servern inte tillåter att man skapar lokala tunnlar.

Om du jobbar på ett större företag eller om företaget har en IT-avdelning så är det nog bäst att kolla med dem om det är ok att koppla upp mot maskiner på detta viset.

Om Fredrik
Fredrik Gustavsson

IT-konsult som är konstant nyfiken. Intresserad av många saker. Jobbar i mitt eget IT-konsultföretag på dagarna där jag även driver nätbutik och fysisk butik. Har nog programmerat det mesta genom åren och skriver nu rätt mycket programvara i Microsoftmiljön C# eller PHP.

Leave a Reply

Your email address will not be published. Required fields are marked *