Home Map Index Zoek Nieuws Archieven Links Over ons
[Hoofd-balk]
[Voet-balk]
Dit artikel is beschikbaar in: English  Castellano  Deutsch  Francais  Nederlands  Russian  Turkce  
[Photo of the Author]
door

Over de auteur:

Georges is een ervaren Unix gebruiker (op commerciele en vrij beschikbare Unix systemen). VNC veranderde zijn leven ;-).

Inhoud:

Virtual Network Computing, ook bekend als VNC

[Illustration]

Kort:

VNC is de droom die werkelijkheid is geworden voor de netwerk administrator.
We zouden kunnen zeggen dat het een systeem is dat op op afstand bedient kan worden, maar het is veel meer dan dat.
Bij het bezoeken van http://www.uk.research.att.com/ kun je deze software GRATIS downloaden. VNC is gedistribueerd onder GPL en is beschikbaar voor meerdere platforms.
Je kunt ook jouw steentje bijdragen en verscheidene poorten van verschillende OSen zijn al gedaan door medewerkers.
Laten we proberen om de vele mogelijkheden van VNC te vinden.



 

Inleiding

In de beginjaren van 1999 verwierf AT&T de Olivetti Research Laboratory en ging verder met de ontwikkeling van VNC.
Zoals wordt verteld op de AT&T web-site komt de naam VNC van de originele ontwikkeling van very-thin-client ATM netwerk computers en "omdat de VNC viewer alleen sofware is levert dit ATM Netwerk Computer ook werkstations welke kunnen worden aangemaakt of gewist naar behoefte, we noemen het systeem Virutal Network Computing".
Om VNC te gebruiken, heb je een TCP/IP netwerk nodig, een vncserver en een vncviewer om toegang te krijgen tot de machine die de vncserver draait.
De X-gebaseerde VNCserver werkt volgens het client-server principe zoals X dat doet. In werkelijkheid heb je twee servers in één: een X server en een VNC server. Hierdoor wordt hetzelfde scherm nummer voor de X server en de VNC server behouden. Om verbinding te maken met de VNC server, moet je de machine naam en het scherm nummer geven. Het commando ziet er ongeveer als volgt uit "vncviewer machinenaam:2". Voor de duidelijkheid, als je X server scherm nummer 2 heeft dan zal de VNC server ook scherm nummer 2 hebben. Vanaf de client zijde kun je, met de viewer, verbinding maken met de server door het invoeren van het scherm nummer. 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 tot het vinden van het eerst beschikbare scherm nummer en informeert jouw hierover. Als de vncserver je scherm nummer 2 geeft, kun je een verbinding maken met de scherm nummers 3, 4... zodra je dat nummer invoert wanneer je de viewer start.
Op machines die Windows draaien is het 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 een verbinding maakt naar deze machine, dan zal deze gebruiker alles kunnen zien wat jij aan het doen bent, net alsof zijn machine alleen werkte!
Natuurlijk, het standaard scherm nummer zal 0 zijn. Als je twee NT machines met elkaar laat verbinden hoef je niet eens dit nummer in te voeren.
VNC is beschikbaar voor verschillende OSen, soms alleen als een client, dat wil zeggen de viewer. BeOS bijvoorbeeld heeft geen VNC server. Veel Unices, MacOS, AmigaOS, ... kunnen VNC gebruiken. Om te kijken welke platforms beschikbaar zijn ga je naar http://www.uk.research.att.com/vnc/platforms.html
Je kunt dan de VNC source code of de binary ophalen, dit hangt af van je platform. De programma's zijn klein en gemakkelijk te installeren.
Laten we nu eens kijken hoe VNC werkt.

 

Presentatie



De server

De huidige versie van VNC is 3.3.3 met verschillende nummer uitgave naargelang het platform.
Op Unices (of machines die X gebruiken) krijg je een programma genaamd vncserver en een andere genaamd Xvnc. Vncserver is een Perl script die je kan instellen naar jouw behoeften. Het is niet aan te bevelen om Xvnc direct op te starten.
Deze programma's kunnen worden geïnstalleerd waar je maar wilt, zodra de directorie zich in je path bevindt.
Elke window manager kan worden gebruikt zodra je deze instelt als de standaard viewer in het xstartup scriptje (kijk in de .vnc directorie).
Als je vncserver voor de eerste keer opstart, zal je om een wachtwoord worden gevraagd. Dit wachtwoord is nodig om een verbinding te maken naar deze server.
Vncserver heeft veel opties zoals elke X server. Door het intikken van Xvnc --help zul je een lijst ervan te zien krijgen. Als je deze opties gebruikt, zullen ze worden doorgestuurd van vncserver naar Xvnc, vanhier het preferent gebruik van de eerste.
Dat is genoeg om de VNC server te draaien!
Op Microsoft computers, is het een beetje anders. Op NT4.0 kun je een vncserver draaien als een service. Op Windows 95 of 98 zul je het moeten starten vanaf een icoon of een menu.
Voor de op X-gebaseerde servers kunnen veel instellingen worden gedefineerd. Je zult het bijbehorende menu moeten controleren.
We zullen niet alle specificaties, van de verschillende vncservers, voor de vele ondersteunde platforms noemen, want dat zou een compleet nieuw artikel betekenen.

De client (de viewer)

De client is alleen een executable genaamd vncviewer.
Om verbinding te maken met een VNC server hoef je alleen maar vncviewer te starten en het scherm nummer te geven. Bijvoorbeeld, als je wilt verbinden met een server genaamd Linux op schermnummer 2, dan hoef je alleen maar "vncviewer linux:2" in te tikken. Dan wordt het server wachtwoord gevraagd en je bent op de linux machine's bureaublad net of je gewoon werkt op die machine. Als je als root bent ingelogd, krijg je de volledige administratie over die machine. Nou, pas op, je kunt maar beter weten wat je doet!
Dit kan voor elke viewer voor elk platform. In één woord: Fantastisch!


 

De leuke kant (omhoog!)


Op een lokaal (vanwege de snelheid) netwerk, laat VNC je nogal ongebruikelijke dingen doen.
Alles lijkt mogelijk: je kunt elk type applicatie draaien op elke OS.
Stel, als je vncserver draait op een Windows NT machine en een viewer draait op BeOS, kun je gebruik maken van elke software die beschikbaar is op de NT machine.
Bijvoorbeeld, je bent in het bezit van een Photoshop licensie, dan kun je Photoshop draaien op je BeOS machine net zoals je dat zou doen op de NT machine. Dit betekent, dat er op je bureaublad van BeOS een schermpje wordt gepresentreerd met daarin het NT bureaublad: als je natuurlijk op de NT machine aan het werken bent!

bewin.jpg
Photoshop in BeOS!

winlin.jpg
Of Gimp in Windows?

Nogmaals, dit kan worden gedaan vanaf elke machine die VNC viewer draait.
Nog een voorbeeld: als je op een machine werkt die geen internet heeft, kun je een verbinding maken met een vncserver die verbonden is met internet en zijn browser gebruiken om een URL te bezoeken. Waarschijnlijk kun je ook zijn mail programma gebruiken om te kijken naar je mailbox of om een e-mail te versturen.

linsgi.jpg
De vncviewer heeft geen internet toegang, maar toch...

Verder kun je een verbinding maken met een vncserver en vandaaruit een verbinding maken naar een of andere machine in het netwerk, en waarom niet, als je daar een nieuwe vncviewer draait, kun je ook deze machine met een vncserver verbinden, en ga zo maar door!
Als je een vncserver op een Unix machine draait, dan kan elke andere machine die vncviewer draait tegelijk verbinding maken met deze server, gebruikmakend van verschillende schermnummers. Dit werkt niet op Windows machines, want je hebt maar één scherm tot je beschikking.

 

De serieuze kant

Nou, dat betekent niet dat wat we hiervoor gezegd hebben, niet serieus is!
Bijvoorbeeld, elke SysAdmin kan de Windows NT administratie inzien: je weet niet eens wie verbonden is met een server en natuurlijk, wat hij aan het doen is... tenzij je de resource kit hebt gekocht, dit, op z'n minst laat je een lijst zien van alle processen die draaien op een specifieke machine (maar zonder de mogelijkheid te hebben om de connectie te killen). Geen commentaar!
VNC laat deze "geweldige" mogelijk niet toe.
We nemen een voorbeeld.
Je onderhoud en ontwerpt verschillende Windows applicaties (Mijn collega Javi zegt: als je arm bent heb je geen keus!). Voor elke nieuwe versie moet je de server en de clients updaten. De machines zijn min of meer ver weg van je kantoor.
Kennelijk, kun je de applicatie niet updaten als het éé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, dan zou je moeten controleren of de applicatie nog steeds draait of niet.
Zodra VNC is geïnstalleerd als een service op de werkstations, kun je vncserver van afstand opstarten en een verbinding maken naar de NT server en dan doen wat je moet doen. Dat kan zijn, je stopt de applicatie, installeerd de upgrade, (zelfs vanaf een andere NT server dan degene waarop je aan het werk bent en welke is verbonden aan de vncserver), en controleer of de upgrade goed werkt. Dan kun je de vncserver op die machine stoppen en hetzelfde werk verrichten op andere werkstations.
Dit zou niet mogelijk zijn met X emulatie op Windows machines, omdat zelfs de installatie particulier gebonden is. Een ander verschil: Anders dan onder X11 geen informatie wordt opgeslagen aan de viewers kant. Je kunt de verbinding met de vncserver verbreken, dan verbinden met een andere machine, dan weer verbinding maken met de vncserver 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 ervanuit dat we werken vanaf een NT server. Je kunt precies hetzelfde doen vanaf een Unix werkstation, die vncviewer draait en die verbonden is met een NT server die vncserver draait.
Zo kun je op deze manier het hele netwerk beheren, door commando's (als deze erzijn) te gebruiken om de vncservers op de bedienbare machines te starten zodra je de rechten hebt om dit te doen.
Veder betekent "remote" overal. Dat betekent dat je dit ook thuis zou kunnen doen!
Dat brengt ons bij de beveiliging

 

Beveiliging

Elke communicatie opdracht binnen een netwerk kan worden beschouwd als een potentieel beveiligings lek.
Dat is een feit! Het enige wat je kan doen is proberen het risico te verkleinen. Wees niet naïef: beveiliging is alleen maar een woord. Als iemand je verteld dat zijn netwerk voor 100% beveiligd is, geloof hem dan niet! Hackers zijn veel slimmer dan mensen denken: dat is ook een feit.
Derhalve, om VNC te beveiligen moet je je netwerk beveiligen. Firewalls, SSL, SSH... kunnen worden gebruikt om de beveiliging te verbeteren.
Bij SSL en SSH heb je de mogelijkheid om het verkeer te encrypten op twee manieren. We gaan SSL of SSH hier niet bespreken, want dat is een heel ander onderwerp. Als je meer hierover wilt weten kun je op de SSH website kijken http://www.ssh.fi/ of naar de open source SSL op http://www.openssl.org/
Extra's, patches en add-ons voor beveiligingen zijn beschikbaar vanaf de AT&T website. Te midden hiervan vind je 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 mogelijkheid voor beveiliging is om restricties te geven op IP adres.
Er zijn er veel meer maar we zullen ze niet allemaal noemen. Je kunt kijken op http://www.uk.research.att.com/vnc/extras.html
VNC heeft ook Java implementatie. Dat betekent dat je een browser die Java ondersteund kunt gebruiken als viewer, zodra je de juiste poort (58**, waar ** het scherm nummer wordt bedoelt: 5802 luistert naar scherm 2). Dit is het noemen waard, maar het is ontzettend traag en het zit vol met beveiligingslekken. Maar het bestaat en het vergt wat test werk.
Tot slot over het beveiligings hoofdstuk, in het kort, VNC is beslist niet kwetsbaarder dan telnet of rlogin.

 

Het is al voorbij

Als je VNC niet kent, is het het testen waard. We hopen door dit artikel VNC aantrekkelijker voor jouw te maken. Het is vast één van de grootste bundel software in deze categorie.
Het is een klein bestand, erg snel (natuurlijk is het 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 vrijgave ging over de Windows versie: als een gebruiker op afstand op het NT werkstation de CapsLock aan laat staan, werkt het Ctrl-Alt-Del commando niet meer (mijn collega zei dat ik het wachtwoord in een editor moest zetten, dit kopiëren en plakken in het wachtwoord veld...en dat werkt!). Dat is alles wat ik kon vinden! Desalniettemin gebruik ik VNC op Solaris Sparc, Irix, Linux, BeOS, AmigaOS en NT. De minst ontwikkelde versie is de AmigaOS versie.
Wat je net hebt gelezen is maar een klein deel van de vele mogelijkheden die VNC bied.
VNC verschijnt al met sommige Linux distributies, een teken dat de interesse in deze software steeds groter wordt.
Als je thuis een klein netwerkje hebt of een groot netwerk, probeer VNC gewoon. Het is geweldig!

Toen ik je vertelde dat we een goede tijd gingen verlaten...

 

Talkback voor dit artikel

Elk artikel heeft zijn eigen talkback pagina. Daar kan je commentaar geven of commentaar van anderen lezen:
 ga naar de talkback pagina 

Site onderhouden door het LinuxFocus editors team
© Georges Tarbouriech
LinuxFocus.org 2000

Klik hier om een fout te melden of commentaar te geven
Translation information:
en -> --
en -> nl

2000-08-09, generated by lfparser version 1.5