Leo Cardinaals's Weblog

mei 22, 2008

Secure Remote Ubuntu Desktop

Ingedeeld onder: Ubuntu — Leo @ 9:11 pm
Tags: , , , , ,

(Laatst bijgewerkt op 9 november 2008)
Wil men een werkplek op afstand (remote) benaderen, dan moet dit veilig gebeuren. Je wilt niet hebben dat andere kunnen meekijken en zo waardevolle informatie kunnen lezen en gebruiken.
Dit artikel behandelt het opzetten van een veilige verbinding voor een Ubuntu werkplek op afstand (remote desktop).

Zie ook Secure Remote Windows Desktop via RDP voor een Windows XP Professional of een Windows Vista Business en Ultimate remote werkplek.

Bij zo een opzet hebben we te maken met een aantal aspecten:

  • een veilige verbinding tussen twee Ubuntu computers. Zie hoofdstuk 1;
  • een Ubuntu computer (de Virtual Network Computing client) die een verzoek stuurt voor verbinding en acties over deze veilige verbinding. Zie hoofdstuk 2.
  • een Ubuntu computer (de Virtual Network Computing server) die luistert of een verzoek voor verbinding binnenkomt of dat er uit te voeren acties binnenkomen en het resultaat terugstuurt naar de client over de veilige verbinding. Deze computer heeft de werkplek op afstand, het scherm wat gedeeld moet worden op het netwerk. Zie hoofdstuk 2.

1. Het installeren van Secure Shell (SSH) voor een veilige verbinding.

We moeten een veilige verbinding opzetten als we een werkplek op afstand willen gebruiken. Dit omdat VNC (Virtual Network Computing) standaard geen veilig protocol is. Wachtwoorden worden wel versleuteld, maar deze versleuteling kan succesvol worden ontcijferd als het netwerk wordt afgeluisterd. VNC kan via een SSH-verbinding worden getunneld, wat een extra veiligheidslaag toevoegt. Zo’n tunnel is een extra netwerkverbinding tussen twee computers.

Server configuratie
Voor een veilige verbinding moeten we op de server de OpenSSH server installeren. We doen dit als volgt:

  1. Ga naar Systeem –> Beheer –> ‘Synaptic pakketbeheer’.
  2. In het ‘Synaptic pakketbeheer’ venster klik op Zoeken in de werkbalk.
  3. In het Zoeken venster vul openssh in bij ‘Zoeken:’ en klik op de Zoeken button.
  4. Terug in het ‘Synaptic pakketbeheer’ venster klik met de rechter muisknop op openssh-server en kies ‘Markeren voor installatie’.
  5. Accepteer eventuele afhankelijkheden die ook geinstalleerd moeten worden.
  6. Klik op Toepassen in de werkbalk.

Op de firewall moet poort 22 opengezet worden, zodat binnenkomende verzoeken de server kunnen bereiken.

Client configuratie
Controleer of de openssh-client is geïnstalleerd:

  1. Ga naar Systeem –> Beheer –> ‘Synaptic pakketbeheer’.
  2. In het ‘Synaptic pakketbeheer’ venster klik op Zoeken in de werkbalk.
  3. In het Zoeken venster vul openssh in bij ‘Zoeken:’ en klik op de Zoeken button.
  4. Terug in het ‘Synaptic pakketbeheer’ venster controleer of het vakje voor openssh-client groen is. Zo ja dan is openssh-client geïnstalleerd. Zo niet:
    • klik dan met de rechter muisknop op openssh-client en kies ‘Markeren voor installatie’.
    • Accepteer eventuele afhankelijkheden die ook geïnstalleerd moeten worden.
    • Klik op Toepassen in de werkbalk.

2. Het configureren van Virtueel Netwerk Computing.

Virtual Network Computing (VNC) is een manier om het bureaublad van een computer te delen. Hiermee kan een andere computer op afstand worden beheerd. Het verstuurt de toetsaanslagen en muisbewegingen van een computer naar een andere machine. Het beeld wordt de andere richting opgestuurd, via een computernetwerk.
In Ubuntu is Vino en Vintage al geïnstalleerd bij installatie. Beide programma’s kunnen worden gebruikt voor Virtual Network Computing.

Server configuratie
Op de server moeten we Vino configureren. Vino is een VNC server. Dat doen we als volgt:

  1. Ga naar Systeem –> Voorkeuren –> ‘Bureaublad op afstand’.
  2. In het ‘Bureau-op-afstand voorkeuren’ venster heb je in het tabblad Algemeen de volgende opties:
  3. Optie Omschrijving
    Andere gebruikers toestaan uw bureaublad te bekijken Deze optie moet je aanvinken.
    Andere gebruikers toestaan uw bureaublad te besturen Deze optie kan je aanvinken, als het bureaublad bestuurd moet worden. Als iemand bijvoorbeeld hulp nodig heeft.
    U om bevestiging vragen Deze aanvinken voor een betere beveiliging.
    De gebruiker vragen om een wachtwoord in te voeren Deze aanvinken voor een betere beveiliging.

  4. Ga naar het tabblad Geavanceerd.
  5. Vink de optie ‘Achtergrondafbeelding uitschakelen bij verbinding’ aan. Dit verbetert de performance.
  6. De rest van de opties laten we ongemoeid.

Vino luistert op poort 5900. Deze poort moet worden opengezet op de firewall.

Client configuratie
Vinagre is de VNC client. Hiervoor hoeven we niets te configureren. We moeten het alleen gebruiken als we een grafische verbinding willen hebben met de andere computer. Dit behandel ik in hoofdstuk 4.

3. Een tunnel creëren.

Om een veilige verbinding tussen twee computers te krijgen moeten we een tunnel opzetten. Dit doen we met gSTM (SSH Tunnel Manager). SSH Tunnel Manager is een grafische interface voor SSH. Het voordeel van gSTM is dat deze de gedefinieerde tunnels onthoud voor hergebruik. Dus moeten we eerst gSTM installeren:

  1. Ga naar Systeem –> Beheer –> ‘Synaptic pakketbeheer’.
  2. In het ‘Synaptic pakketbeheer’ venster klik op Zoeken in de werkbalk.
  3. In het Zoeken venster vul gstm in bij ‘Zoeken:’ en klik op de Zoeken button.
  4. Terug in het ‘Synaptic pakketbeheer’ venster klik met de rechter muisknop op gstm en kies ‘Markeren voor installatie’.
  5. Accepteer eventuele afhankelijkheden die ook geïnstalleerd moeten worden.
  6. Klik op Toepassen in de werkbalk.

Nu gaan we een tunnel creëren:

  1. Ga naar Toepassingen –> Internet –> gSTM.
  2. In het ‘SSH Tunnel Manager’ venster, klik op de Toevoegen button.
  3. In het ‘Add new tunnel’ venster vul een naam in voor je tunnel en klik op de OK button.
  4. In het ‘Tunnel properties’ venster vul bij Host: het IP-adres van de server in, bij Port: 22 en bij Login: de naam van de user om in te loggen en klik op de Toevoegen button. Autostart (opent de tunnel bij starten van SSH Tunnel Manager) en Privkey (privé-sleutel als extra beveiliging) kan je leeg laten.
  5. In het ‘Add redirection’ venster kies Type local en vul bij Port 5900 in, bij ‘To host’ localhost, bij ‘To Port’ ook 5900 en klik op de OK button.
  6. Klik op de Afsluiten button om SSH Tunnel Manager te sluiten.

Voor het gebruik van meerdere programma’s over een veilige verbinding, moeten additionele redirections worden opgezet voor de poorten die de andere applicaties gebruiken.

Je kan met SSH Tunnel Manager meerdere tunnels naar verschillende remote computers beheren.

gSTM zet een icoontje in de icontray. Je kan het menu van dit icoontje open door een klik met de rechter muisknop. Met het menu kan je het gSTM venster verbergen en tunnels stoppen en starten.

Toelichting op een SSH tunnel

Met SSH kan je een beveiligde tunnel opzetten tussen twee computers, die van jezelf en de remote computer. Data wat over een SSH tunnel heen en weer gaat is versleuteld en dus niet leesbaar voor onbevoegden. Zulk een tunnel kan je beschouwen als een extra lijntje aan je je locale netwerk (Local Area Network). Bij het creëren van die tunnel geef je de remote computer op door middel van een IP-adres. Dit is het internet (WAN; Wide Area Network) IP-adres van de remote computer en is in feite het IP-adres wat de computer van de internet provider heeft gekregen. Dat is dus de remote kant van de tunnel.
De andere kant van de tunnel zit aan je eigen computer vast. Ook deze kant moet je specificeren en dat is dus localhost. Je zou ook het IP-adres 127.0.0.1 (het localhost IP-adres) kunnen gebruiken. Of het IP-adres op je eigen locale netwerk (LAN) bijv. 192.168.0.1.

4. Een veilige grafische verbinding maken vanuit de client naar de server.

Dit hoofdstuk moet je iedere keer uitvoeren als je een verbinding met de werkplek op afstand wilt maken.

Ga naar Toepassingen –> Internet –> gSTM. De SSH Tunnel Manager wordt geopend. Selecteer de tunnel en klik op de Start button om de tunnel te openen. De server moet hiervoor natuurlijk wel actief zijn.

Nu moeten we nog een grafische verbinding opzetten met de server over deze tunnel.

  1. Ga naar Toepassingen –> Internet –> ‘Werkplek op afstand’.
  2. In het ‘Werkplek op afstand’ venster klik op Verbinden in de werkbalk.
  3. in het ‘Met welke machine wilt u verbinding maken?’ vul je bij ‘Host:’ localhost in. We maken een verbinding met onze eigen opgezette tunnel. De poort moet je op 5900 laten staan. Klik op de Verbinden button.
  4. Je moet nu nog een paswoord invoeren om een connectie te kunnen maken.

Nu zie je het bureaublad van de server.


Gewijzigd op 13 augustus 2008: Kader ‘Toelichting op SSH tunnel’ toegevoegd.
Gewijzigd op 9 november 2008: Optie ‘Achtergrondafbeelding uitschakelen bij verbinding’ aanzetten toegevoegd aan de server configuratie voor performance.


4 Reacties »

  1. VNC is leuk voor één gebruiker, maar als je wat serieuzere toepassingen wil , dan moet je eens FREENX uitproberen.

    Comment door Gaspard — mei 23, 2008 @ 5:14 pm | Beantwoord

  2. @Gaspard, Ja ik ken het. Het is gebaseerd op NoMachine’s NX libs. Misschien aardig om in de toekomst een artikel aan te wijden.

    Comment door Leo — mei 23, 2008 @ 6:46 pm | Beantwoord

  3. Uit mijn ervaring blijkt dat gSTM werkt goed voor porten boven 1023. Porten onder 1023 kunnen worden ge-tunneld alleen met root privileges. Een andere leuke tunnel-manager is SSHMenu.

    Comment door Darek — mei 28, 2008 @ 12:33 am | Beantwoord

  4. @Darek, Leuk je hier ook te zien en dank je voor het alternatief.

    Comment door Leo — mei 28, 2008 @ 9:35 pm | Beantwoord


RSS feed voor reacties op dit bericht. TrackBack URI

Plaats een reactie

Blog op Wordpress.com.