original in en Georges Tarbouriech
en to nl Rano Kuhl
Georges is een ervaren Unix-gebruiker (op commerciële en vrij beschikbare Unix-systemen). VNC veranderde zijn leven ;-).
Om VNC te gebruiken, heb je een TCP/IP-netwerk
nodig, een VNC-server en een VNC-viewer om toegang te krijgen tot de machine die
de VNC-server draait.
De op X gebaseerde VNC-server werkt volgens hetzelfde client-server-principe
als X. In werkelijkheid heb je twee servers in één:
een X-server en een VNC-server. Hierdoor is het mogelijk hetzelfde schermnummer te gebruiken
voor zowel de X-server als de VNC-server. Om verbinding te maken met de VNC-server, moet je de
computernaam en het schermnummer opgeven. Het commando heeft de volgende opbouw:
"vncviewer computernaam:2". Voor de duidelijkheid, als je X-server schermnummer
2 heeft, dan zal de VNC-server ook schermnummer 2 hebben. Vanaf de client kun je
met behulp van de viewer verbinding maken met de server door het invoeren van het schermnummer.
Als een gebruiker op de server werkt op scherm 1 en jij maakt een verbinding met
scherm 2, dan zal deze gebruiker niet eens merken dat je op zijn machine werkt.
VNC is in staat het eerste vrij beschikbare schermnummer te vinden en de gebruiker hierover
te informeren, maar niets weerhoudt die gebruiker ervan een ander schermnummer te gebruiken.
Als de VNC-server je schermnummer 2 geeft, kun je een verbinding maken met bijvoorbeeld
scherm nummer 3 of 4 door het gewenste nummer in te voeren bij het opstarten
van de viewer.
Op machines die Windows draaien ligt de zaak anders, want je bent dan niet in staat om een nieuwe desktop te maken. De bestaande desktop is op afstand bedienbaar. Als we naar het vorige voorbeeld van de werkende gebruiker kijken en je maakt een verbinding naar deze machine, dan zal deze gebruiker alles kunnen zien wat jij aan het doen bent, net alsof zijn machine uit zichzelf werkt! Het standaard-schermnummer zal natuurlijk 0 zijn. Als je twee NT-machines met elkaar laat verbinden hoef je dit nummer niet eens in te voeren.
VNC is beschikbaar voor verschillende besturingssystemen, hoewel soms alleen
als een client, oftewel viewer. Voor BeOS is bijvoorbeeld geen VNC-server beschikbaar.
Veel Unices, MacOS, AmigaOS, ... kunnen VNC gebruiken. Op
http://www.uk.research.att.com/vnc/platforms.html kun je zien
welke versies er voor welke platforms zijn. Je kunt de broncode of de gecompileerde versie van VNC downloaden,
afhankelijk van het platform waarop je werkt. De programma's zijn klein en gemakkelijk te installeren. Laten
we nu eens kijken hoe VNC werkt.
De client (de viewer)
De client is alleen een executable genaamd VNC-viewer. Om verbinding te maken met een VNC-server hoef je alleen maar VNC-viewer te starten en het schermnummer te geven. Als je bijvoorbeeld wilt verbinden met een server genaamd Linux op schermnummer 2, dan hoef je alleen maar "vncviewer linux:2" in te tikken. Hierop wordt het serverwachtwoord gevraagd waarna je op het bureaublad van de Linux-computer terechtkomt, net of je gewoon op die machine werkt. Als je als root bent ingelogd, krijg je volledig beheer over die computer. Je kunt dus maar beter weten wat je doet. Dit kan voor elke viewer, voor elk platform. In één woord: fantastisch!
Op een lokaal (vanwege de snelheid) netwerk, laat VNC je nogal ongebruikelijke
dingen doen. Alles lijkt mogelijk: je kunt elk type applicatie draaien op elk
besturingssysteem. Als je bijvoorbeeld VNC-server draait op een Windows NT-computer en een
viewer op BeOS, dan kun je gebruik maken van elke software die beschikbaar is
op die NT-machine. Stel, je bent in het bezit van een Photoshop-licentie, dan
kun je Photoshop draaien op je BeOS-machine net zoals je dat zou doen op de NT-computer.
Op je BeOS-bureaublad verschijnt een schermpje met daarin het NT-bureaublad:
je werkt dus op de NT-machine!
Nogmaals, dit kan worden gedaan vanaf elke machine die VNC-viewer draait.
Nog een voorbeeld: als je op een computer werkt die geen internetverbinding
heeft, dan kun je een verbinding maken met een VNC-server die verbonden is met het internet en
diens browser gebruiken om een URL te bezoeken. Waarschijnlijk kun je ook het mail-programma
gebruiken om je mailbox te bekijken of om een e-mail te versturen.
De VNC-viewer heeft geen
internettoegang, maar toch...
Verder kun je een verbinding maken met een VNC-server en van daaruit een verbinding maken naar de een of andere computer in het netwerk, en (waarom ook niet) als je daar een nieuwe VNC-viewer draait, kun je ook deze machine met een VNC-server verbinden, en ga zo maar door! Als je een VNC-server op een Unix-machine draait, dan kan elke andere machine die VNC-viewer draait tegelijk verbinding maken met deze server, gebruikmakend van verschillende schermnummers. Dit werkt niet op Windows-machines, omdat je daar natuurlijk maar één scherm tot je beschikking hebt.
Dat betekent natuurlijk niet dat wat we hiervoor gezegd hebben, niet serieus is! Iedere systeembeheerder kent de kwaliteiten van een Windows NT-netwerk: je weet niet eens wie verbonden is met een server of wat hij aan het doen is... tenzij je de resource kit hebt gekocht, waarmee je in ieder geval een lijst kunt oproepen van alle processen die draaien op een specifieke machine (overigens zonder de mogelijkheid de verbinding te verbreken). Geen commentaar... Met VNC kun je de zaken omdraaien. Een voorbeeld: Je onderhoudt en ontwerpt verschillende Windows-applicaties (Mijn collega Javi zegt: als je arm bent heb je het niet voor het kiezen!). Voor elke nieuwe versie moet je de server en de clients updaten. De machines zijn allemaal in mindere of meerdere mate van je eigen kantoor verwijderd. Je kunt de applicatie niet updaten als deze op één of meer clients draait. Met VNC kun je de applicatie op elke client stoppen, de update installeren, controleren...zonder je kantoor te verlaten. Het is beter om dit te doen als niemand werkt, maar veel gebruikers vergeten de applicatie te sluiten na gebruik, waarna je zou moeten controleren of de applicatie nog steeds draait of niet. Zodra VNC is geïnstalleerd als een service op de werkstations, kun je VNC-server op afstand opstarten, een verbinding maken met de NT-server en doen wat je moet doen. Dat kan zijn het stopzetten van de applicatie, het installeren van de upgrade, (zelfs vanaf een andere NT-server dan degene waarop je aan het werk bent als deze is verbonden met de VNC-server), en het controleren of de upgrade goed werkt. Daarna kun je de VNC-server op die machine stoppen en hetzelfde werk verrichten op andere werkstations.
Dit zou niet mogelijk zijn met X-emulatie op Windows-computers, omdat de installatie gebonden is aan het besturingssysteem. Een ander verschil: Anders dan onder X11 wordt er geen informatie opgeslagen aan de kant van de viewer. Je kunt de verbinding met de VNC-server verbreken, verbinden met een andere machine, daarna weer verbinding maken met de VNC-server en uiteindelijk weer verder gaan met je werk!
Iets belangrijks: VNC heeft de mogelijkheid om met Ctrl-Alt-Del het NT-werkstation dat op afstand wordt bediend te ontkoppelen. (Dit was niet mogelijk bij vorige versies). Dit voorbeeld gaat ervan uit dat we werken vanaf een NT-server. Je kunt precies hetzelfde doen vanaf een Unix-werkstation dat VNC-viewer draait en verbonden is met een NT-server die VNC-server draait. Zo kun je op het hele netwerk beheren door (als je de rechten hebt om dit te doen) de aanwezige commando's te gebruiken om de VNC-servers op de bedienbare machines te starten. Verder betekent 'remote' overal. Dat betekent dat je dit ook thuis zou kunnen doen! Waarmee we terecht zijn gekomen bij de beveiliging.
Het is helaas een feit dat elke communicatie-opdracht binnen een netwerk als een potentieel beveiligingslek kan worden beschouwd. Het enige wat je kunt doen is proberen het risico te verkleinen. Wees niet naïef: beveiliging is alleen maar een woord. Als iemand je vertelt dat zijn netwerk voor 100% beveiligd is, kun je hem maar beter niet geloven. Hackers zijn veel slimmer dan mensen denken: ook dat is een feit.
Om VNC te beveiligen moet je derhalve het netwerk beveiligen. Firewalls, SSL, SSH e.d. kunnen worden gebruikt om de beveiliging te verbeteren. Bij SSL en SSH heb je de mogelijkheid om het verkeer op twee manieren te versleutelen. We gaan SSL of SSH hier niet bespreken, want dat is een heel ander onderwerp. Als je meer hierover wilt weten kun je de SSH-website bekijken op http://www.ssh.fi/ of naar de open source-SSL surfen op http://www.openssl.org/. Extra's, patches en add-ons voor beveiliging zijn beschikbaar vanaf de website van AT&T. Hier vind je onder meer een manier om toegang te krijgen tot een server die achter een firewall zit. Er is ook een versie van VNC beschikbaar die gebruik maakt van SSLeay public key-encryptie. Een andere beveiligingsoptie is het geven van restricties op IP-adres. Natuurlijk zijn er nog veel meer mogelijkheden maar die zullen we niet allemaal noemen. Zie http://www.uk.research.att.com/vnc/extras.html voor meer informatie.
VNC heeft ook Java-implementatie. Dat betekent dat je een browser die Java ondersteunt kunt gebruiken als viewer, zodra je de juiste poort gebruikt (58**, waarbij ** het schermnummer is: 5802 luistert naar scherm 2). Het is het noemen waard, maar het is wel ontzettend traag en het zit vol met beveiligingslekken. Maar het bestaat en het zou getest moeten worden. Tot slot van het beveiligingshoofdstuk moet kort vermeld worden dat VNC is beslist niet kwetsbaarder is dan telnet of rlogin.
Als je VNC niet kent, is het het testen waard. We hopen dat we met dit artikel je interesse hebben gewekt. Waarschijnlijk is het een van de beste pakketten in deze categorie. Het is een licht pakket, erg snel (natuurlijk is dit wel afhankelijk van het netwerk of het type verbinding) en het is gratis! VNC is betrouwbaar en het enige probleem dat ik had met de laatste versie betrof de Windows-versie: als een gebruiker op afstand op het NT-werkstation de CapsLock aan laat staan, werkt het commando Ctrl-Alt-Del niet meer (mijn collega zei dat ik het wachtwoord in een editor moest zetten, dit kopiëren en plakken in het wachtwoordveld - deze tip werkt nog ook!). Dat is het enige minpunt dat ik kon vinden. Ik gebruik VNC op Solaris Sparc, Irix, Linux, BeOS, AmigaOS en NT. De minst ontwikkelde versie is die voor AmigaOS.
Wat je net hebt gelezen is maar een klein deel van de vele mogelijkheden die VNC te bieden heeft. VNC verschijnt al met sommige Linux-distributies, een teken dat de interesse voor deze software steeds groter wordt. Of je nu thuis met een klein netwerk werkt of met een groot netwerk op het bedrijf, probeer VNC gewoon eens uit. Je zult zien dat het geweldig is!