Wat nu als je een grafisch programma wilt gebruiken op de remote computer die geen X Windows gebruikt (MS Windows, Mac enz.). Daar gebruik je VNC. VNC komt in een aantal variëteiten voor. TightVNC gebruikt compressie om de remote verbinding te ontlasten. Als je niet werkt met zeer snelle verbindingen (minstens 1 Mbit), wordt het gebruik van VNC traag en een zenuwslopende ervaring.
De beste politiek is zoals steeds gebruik te maken van de meest recentste pakketten. TightVNC komt in twee aparte installaties – één voor de server component en één voor de viewer. Je moet dus enkel downloaden en installeren wat je nodig hebt (of beiden).
Start de module Firewall in de categorie Beveiliging en gebruikers van YaST om deze poorten te openen.
Selecteer in het linker paneel het onderdeel Toegestane services.
Selecteer met de keuzelijst Service, toe te staan de service VNC.
Klik op de knop Toevoegen om de service in de Toegestane service tabel op te nemen.
Indien je via een browser toegang wilt met het bureaublad dan moet
je de service VNC mini-HTTP-server Toevoegen.
In tegenstelling tot SSH, moet je de VNC-server niet constant als deamon draaien, bij intensief gebruik, kun je deze echter wel zo configureren. Let wel, de verbinding is niet versleuteld.
Om de veiligheid te verhogen kun je het best eerst inloggen bij SSH en start je daarna de VNC-server, waarna je inlogt bij de pas opgestarte VNC-server. Zo is de VNC-server maar actief als je hem nodig hebt. Om een VNC-server op te starten, log je in op de remote computer en start je de VNC-server:
sntcursist@l092pc01
:~>
ssh sntcursist@localhost
Password:Last
login: Tue Jul 13 15:37:56 2010 from 192.168.1.3
Have
a lot of fun...sntcursist@l092pc01:~>
vncserver
You will require a password to access your
desktops.
Password:
Verify:
Would you like to enter
a view-only password (y/n)? n
New 'X' desktop is
l092pc01:1
Creating default startup script
/home/sntcursist/.vnc/xstartup
Starting applications specified in
/home/sntcursist/.vnc/xstartup
Log file is
/home/sntcursist/.vnc/l092pc01:1.log
De eerste maal dat je de VNC-server start, wordt er gevraagd een wachtwoord in te geven, doe dit. Daarna wordt er gevraagd of je een 'view only' wachtwoord wilt gebruiken. Dit wachtwoord wordt gebruikt om gebruikers toe te laten een verbinding op te bouwen om te kijken wat er zich op het scherm afspeelt en waarbij ze geen gebruik kunnen maken van de muis en het toetsenbord om acties uit te voeren.
Een verbinding naar de remote
VNC-server opbouwen is nu een kwestie van een nieuw terminal venster
te openen en de opdracht `vncviewer
IP
-adres:1
`
uit te voeren. Na het intypen van het wachtwoord log je in op een VNC
X desktop, compleet met een Xterm venster. Vanuit dit venster kun je
nu programma's starten. Het enige wat VNC doet is een nieuwe X sessie
starten, maar in plaats van deze grafische omgeving te verbinden met
een fysieke grafische kaart wordt deze via het netwerk (internet)
verzonden.
Let op de :1 op het einde van de
opdracht. Dit wordt toegevoegd omdat je meerdere VNC-servers kunt
starten die elk een eigen bureaublad hebben. Telkens je een nieuwe
VNC-server start, naast degene die al draaien (met de opdracht
`vncserver
`), krijgt deze een nieuw
nummer toegewezen :2, :3, enz. Naargelang de server die je wenst te
gebruiken, voeg je het overeenkomstig nummer toe.
Een VNC-server stoppen is eenvoudig.
Gebruik de SSH-sessie terug en voer de opdracht `vncserver
-kill :1
` uit. Pas het nummer op het einde aan naargelang het
bureaublad dat je wil afsluiten.
Hoewel KDE over een ingebouwde VNC-server (traag en omslachtig in het gebruik) beschikt, gebruiken we een niet KDE gebonden programma om het bureaublad van een andere computer over te nemen. Met x11vnc kun je een bestaande X omgeving via het VNC-principe extern aanbieden.
Na de installatie van het pakket x11vnc (Oss softwarebron), moet je om de veiligheid te verhogen een wachtwoord aanmaken met de opdracht:
sntcursist@l092pc01:~>
x11vnc -storepasswd
Enter VNC password:
Verify password:
Write password to /home/sntcursist/.vnc/passwd? [y]/n y
Password
written to: /home/sntcursist/.vnc/passwd
Nadien kan je met de opdracht:
sntcursist@l092pc01:~>
x11vnc -usepw
...
The VNC desktop
is: l092pc01:1
PORT=5901
...
Deze handelingen kun je vanzelfsprekend via een SSH-verbinding uitvoeren.
De informatie hierboven moet je vervolgens in de vncviewer gebruiken:
vncviewer
192.168.54.129:
1
Hierbij hebben we de computernaam l092pc01 vervangen door zijn IP-adres. Je kunt nu na het opgeven van het wachtwoord werken op het bureaublad van de computer die je hebt overgenomen.
Na het verbreken van de verbinding wordt automatisch de server afgesloten. M.a.w. x11vnc laat standaard maar één overname toe.
De extra mogelijkheden kun je bepalen met argumenten.
-usepw zorgt voor een wachtwoordbeveiliging, zonder deze beveiliging kan iedereen de computer overnemen.
-forever zorgt ervoor dat x11vnc na het verbreken van de verbinding NIET wordt afgesloten zodat je meerdere malen kunt verbinden. X11vnc moet je dan manueel afsluiten (vb: Ctrl+C).
-shared zorgt ervoor dat meerdere viewers tegelijkertijd het bureaublad kunnen overnemen.
-viewonly zorgt ervoor dat de viewers enkel kunnen kijken, m.a.w. geen muis- of toetsenbord handelingen kunnen uitvoeren.
-bg zorgt ervoor dat het programma x11vnc op de achtergrond werkt. M.a.w. je krijgt direct de prompt terug om nieuwe opdrachten uit te voeren.
-http zorgt ervoor dat je het bureaublad via een browser met JAVA
plugin kunt overnemen.
Vb: http://192.168.54.129:5800
Met uitgebreidere viewers kun je het klembord delen, toetscombinaties doorsturen, bestanden uitwisselen, enz.
Indien nodig installeer je als root de VMware Player (zie opdrachten pagina 23).
Maak een virtuele computer aan.
Gebruik als virtuele CD-ROM het bestand ~/Documenten/Kiwi/openSUSE-11.3-livecd-kde.i686-2.8.0.iso (LiveDVD).
Start VMWare-player met de pas aangemaakte virtuele computer via de LiveDVD.
Bepaal het IP
-adres
van de virtuele computer:
Start de SSH-server op de virtuele computer.
Zorg dat de gebruiker linux op de virtuele computer een wachtwoord gebruikt.
Minimaliseer de VMware Player. Vanaf nu bedienen we de virtuele computer enkel nog op afstand.
Firewall instellen via een SSH-verbinding:
Zet met de opdracht `ssh
-X linux@
IP
-adres
`
een grafische SSH-verbinding op met de virtuele computer.
Met de opdracht `kdesu
/sbin/yast2
` start je YaST. Aangezien de gebruiker root op
de virtuele computer op afstand geen wachtwoord gebruikt, start
YaST onmiddellijk.
Stel de Firewall op afstand in zodat je het bureaublad via VNC kunt overnemen.
Sluit YaST en verbreek de
SSH-verbinding met de opdracht `exit
`
(nadien
kan nog Ctrl+C nodig zijn om de prompt terug te krijgen).
Start Dolphin
Kopieer via het fish protocol het installatiebestand /var/backup/opensuse4snt/repos/oss/suse/i586/x11vnc-0.9.9-3.1.i586.rpm van de fysieke computer naar de Persoonlijke map van linux op de virtuele computer.
Sluit Dolphin.
Installatie van x11vnc op de virtuele computer.
Zet een grafische SSH-verbinding op met de virtuele computer.
Start met de opdracht `dolphin` de bestandsbeheerder op.
Klik met de rechter muis op het bestand x11vnc-0.9.9-3.1.i586.rpm.
Voer de opdracht Openen met Software installeren/verwijderen uit.
Sluit Dolphin en zorg dat je terug een prompt krijgt.
Verlaat de grafische SSH-verbinding en zorg dat je terug een prompt krijgt.
Een VNC-wachtwoord aanmaken op de virtuele computer:
Maak een gewone SSH-verbinding
naar de virtuele computer.
Je gebruikt daarvoor de opdracht
Maak een wachtwoord aan voor VNC. Je noteert of onthoudt het wachtwoord.
Nu is het voorbereidende werk klaar en kun je de computer op afstand overnemen.
Start de VNC-server met wachtwoordbeveiliging via de SSH-verbinding op.
Start een tweede Terminalvenster.
Maak een VNC-verbinding met de
opdracht `vncviewer
IP-adres
:
0
`.
Indien je een zwart venster ziet, moet je met de muis enkele
bewegingen maken in het zwarte venster. Het wachtwoord van de
gebruiker linux opgeven. Dan pas zie je het Bureaublad van de
virtuele computer op afstand.
M.a.w. de virtuele computer had
.
Welke titel heeft het venster van de vncviewer?
Sluit indien aanwezig alle vensters op de virtuele computer op afstand.
Op de volgende manier kun je een pictogram voor Bureaublad delen op het bureaublad plaatsen:
Start Dolphin op de virtuele computer op afstand.
Open de map ~/Desktop.
Klik rechts op de witte vrije ruimte.
Voer de opdracht Nieuwe aanmaken > Koppeling naar programma... uit.
Als naam geef je Bureaublad delen.
Als Commando op het
tabblad Toepassing gebruik je: x11vnc
-usepw -bg; kdialog --msgbox "`/sbin/ifconfig | grep 'inet
addr'`"
Bevestig het dialoogvenster.
Pas de Eigenschappen van Bureaublad delen.desktop aan.
Gebruik voor de koppeling het pictogram krdc.
Bevestig het dialoogvenster en sluit Dolphin.
Verbreek de VNC-verbinding.
Verbreek de SSH-verbinding.
Test uw koppeling op de volgende manier.
Start een grafische SSH-verbinding met de virtuele computer op afstand.
Start Dolphin.
Open de map ~/Desktop.
Klik op de aangemaakte koppeling.
Als
alles goed gaat, zie je op uw terminal x11vnc opstarten en krijg je
een dialoogvenster zoals op de afbeelding.
Indien niet alles goed ging, kun je via het snelmenu de Eigenschappen van de koppeling nog aanpassen.
Sluit Dolphin.
Verbreek de SSH-verbinding. Daarmee stop je eveneens alle programma's die je tijdens de SSH-verbinding hebt gestart.
De laatste test:
Plaats het venster van de VMware Player terug op het scherm.
Klik op het pictogram van uw koppeling.
Minimaliseer het VMware Player venster.
Maak een VNC-verbinding met de virtuele computer op afstand.
Indien er geen verbindig tot stand komt is er iets fout met uw koppeling. Werk eraan tot de koppeling werkt.
Sluit het Informatie KDialog venster op de virtuele computer.
Blijft de VNC-verbinding werken?
Breek de VNC-verbinding af.
Start via een SSH-verbinding naar
de virtuele computer op afstand x11vnc op zodat je met een browser
de virtuele computer op afstand beveiligd met een wachtwoord kunt
overnemen.
Welke opdracht gebruik je daarvoor?
Start Firefox op de fysieke computer.
Naar welk internet-adres surf je om de virtuele computer over te nemen?
Indien dit niet lukt is wellicht de firewall op de computer op afstand niet correct ingesteld. Zorg dat het lukt.
Automatisch x11vnc starten bij het starten van KDE:
Maak op de virtuele computer op afstand in de map /home/linux/.kde4/Autostart een koppeling aan met
de naam x11vnc
en het Commando
(met
wachtwoordbeveiliging, werkt altijd – ook na het verbreken van
een verbinding, op de achtergrond en bereikbaar met een browser)
Bevestig het dialoogvenster.
Zorg dat de koppeling het pictogram krdc gebruikt.
Sluit alle vensters op de virtuele computer op afstand.
Herstart KDE op de volgende manier:
Klik op de knop Send Ctrl-Alt-Del in het Java Applet Window venster.
Klik op Afmelden.
Welke melding krijg je van de VNC-verbinding?
Plaats het venster van de VMware Player terug op het scherm.
Meld je aan.
Minimaliseer de VMware Player na het opstarten van KDE.
Maak een nieuwe VNC-verbinding met de browser naar de virtuele computer op afstand.
Verbreek de verbinding.
Maak een nieuwe VNC-verbinding met de browser naar de virtuele computer op afstand.
Waarom deze tweede test?
Verbreek de verbinding.
Vanaf
nu is de virtuele computer voor bijstand steeds via VNC over te
nemen.
De extra functie Kopiëren en plakken:
Maak indien nodig een browser VNC-verbinding met de virtuele computer op afstand.
Open op de computer op afstand de tekst /usr/share/doc/packages/x11vnc/README.
Kopieer de eerste internet URL die je ziet.
Klik op de knop Clipboard in het Java Applet Window venster.
Kopieer de internet-URL nu vanuit het TightVNC Clipboard venster.
Plak deze URL in de adresbalk van Firefox op de fysieke computer.
Surf naar de URL.
Welke titel heeft deze internet pagina?
Schakel de virtuele computer op afstand uit.
Verwijder de virtuele computer van de harde schijf.
Nu ga je een Windows computer met VNC overnemen.
Pak de virtuele Windows computer uit (zie opdrachten pagina 40 en verder).
Start de uitgepakte virtuele computer.
Eerst moet je VNC via het internet op de Windows-computer krijgen.
Zorg dat je kan surfen (zie pagina 55).
Ga op het internet op zoek naar de website van TightVNC.
Download de uitvoerbare bestanden voor TightVNC (dus zonder installer).
Hoe groot (in bytes) is het zip bestand met de uitvoerbare bestanden?
Pak de gecomprimeerde map uit.
Start het programma WinVNC.
Je krijgt een Windows-beveiligingsmelding i.v.m. de firewall. Als je het Bureaublad van Windows wilt overnemen moet je de Toegang toestaan zodat de VNC-server het bureaublad extern kan aanbieden.
Zorg voor een Primary password (wachtwoordbeveiliging):
Verwijder het View-only password zodat je het Bureaublad kunt bedienen.
Bevestig het dialoogvenster.
Wijs met de muis het VNC-pictogram in het systeemvak aan en noteer het ip-adres:
Minimaliseer het VMware Player venster.
Start een VNC-verbinding op de fysieke computer naar de virtuele Windows computer.
Zorg dat je het Bureaublad van Windows ziet.
VNC verwijderd standaard de
bureaubladachtergrond.
Welk effect heeft dit op de
VNC-verbinding?
Start WordPad.
Sluit de VNC-verbinding.
Probeer een VNC-verbinding via de browser naar de virtuele Windows computer op te bouwen.
Welk verschil merk je met een overname via de browser van een Linux computer op afstand met als server x11vnc?
Sluit WordPad.
Verbreek de VNC-verbinding.
Als laatste het probleem van de veiligheid. Je gaat de voordelen van VNC koppelen aan de veiligheid van SSH.
Plaats het VMware Player venster terug op het scherm.
Ga op het internet op zoek naar de website van freeSSHd.
Download het installatieprogramma van freeSSHd.
Installeer het programma freeSSHd en bevestig daarbij alle dialoogvensters.
Creëer op het einde van de installatie private sleutels.
FreeSSHd laat je NIET draaien als een System service.
Sluit alle vensters.
Start FreeSSHd.
Zorg ervoor dat de Firewall SSH-verbindingen doorlaat.
Klik rechts op het freeSSHd pictogram in het systeemvak.
Start Settings.
Activeer het tabblad Users.
Maak een gebruiker aan:
Login:
Authorization: Password stored as SHA1 hash
Password:
De gebruiker moet opdrachten kunnen uitvoeren, bestanden uitwisselen en beveiligde tunnels gebruiken.
Bevestig alle dialoogvensters.
Maak via de fysieke computer een
SSH-verbinding naar de virtuele Windows-computer.
Mocht je
problemen ondervinden met het maken van de SSH-verbinding en je
bent zeker dat de login en bijhorende wachtwoord juist zijn en je
hebt een instelling van freeSSHd aangepast en bevestigd, herstart
dan freeSSHd voor het maken van de nieuwe SSH-verbinding (Snelmenu
freeSSHd pictogram in het systeemvak > Unload en daarna
freeSSHd opnieuw starten).
Je merkt dat freeSSHd en de
terminal van KDE niet goed samenwerken.
Waaraan merk je dat?
Verbreek de SSH-verbinding.
Voer de opdracht `clear
`
uit.
Bouw met de opdracht `ssh
-q
user
@
IP-adres
`
opnieuw een SSH-verbinding naar de virtuele Windows-computer op.
Welk versie van Windows wordt gebruikt? ........................................................... Jaar:
Welke opdrachten kun je uitvoeren? Linux of Windows.
Verbreek de SSH-verbinding.
Test op de fysieke computer of
je via het fish protocol in Dolphin bestanden met de virtuele
Windows computer op afstand kunt uitwisselen.
Melding:
Het VNC-protocol gebruikt normaal poort 59xx, waarbij xx het
schermnummer van de server is. Zo zal de VNC-server op onze Windows
computer luisteren op poort 5900. Als je deze poort doorstuurt
(forward) naar een computer op afstand, kun je de VNC-server op
afstand zien als een server op je eigen lokale computer.
De
VNC-server op de Windows-computer gebruikt scherm :0.
Alle referenties naar scherm 1: op de lokale fysieke computer
zullen worden verbonden met scherm 0: op de virtuele
Windows-computer.
Je gaat deze techniek toepassen op ons voorbeeld.
Zorg dat de VNC-server op de virtuele Windows computer gestart is.
Beveiligd met een wachtwoord,
Op het tabblad Administration plaats je een vinkje bij Allow loopback connections.
Bevestig de TightVNC Server: Current User Properties.
Test of je vanaf de fysieke computer een VNC-verbinding naar de virtuele Windows computer kunt opbouwen.
Verbreek de VNC-verbinding.
Zorg dat de freeSSHd server op de virtuele computer gestart is.
Op het tabblad Tunneling activeer je de opties Allow local port forwarding.
Om een beveiligde verbinding
naar de Windows-computer vanaf de fysieke computer op te bouwen,
moet je de volgende opdracht gebruiken: ssh
-L 5901:localhost:5900 login@ipadres
Start op de fysieke computer een extra terminal venster.
Maak in dit extra terminal venster een VNC-verbinding naar het bureaublad localhost:1, met andere woorden naar uw eigen computer scherm 1:. Of in technische termen naar poort 5901. SSH vangt alle gegevens die via poort 5901 komen op en stuurt die versleuteld door naar de SSH-server op de virtuele Windows-computer. De SSH-server ontcijfert de versleutelde gegevens en geeft deze door aan poort 5900, waar de VNC-server luistert. Deze stuurt op zijn beurt de schermgegevens door naar poort 5900 van de virtuele Windows-computer, waar SSH de gegevens opvangt en deze versleuteld doorstuurt naar de SSH-client op de fysieke computer. Deze ontcijfert de gegevens en stuurt deze naar de VNC-client om het beeld op afstand op te bouwen. Zijn we nog mee. Dit is voor beide computers een extra belasting. Hoe merk je dat?
Start een programma (vb.
webbrowser) om de verbinding op afstand te testen.
Je werkt nu
met een beveiligde VNC-verbinding.
Sluit de VNC-verbinding.
Sluit het extra terminal venster.
Verbreek de SSH-verbinding met de opdracht
Sluit de terminal.
Activeer het VMware Player venster.
En nu aan jullie. Op de Rijks
Universiteit van Gent kunnen studenten, docenten en medewerkers de
computers via een beveiligde VNC verbinding gebruiken.
Op de
webpagina http://cage.ugent.be/info/vnc.html
wordt uitgelegd hoe Windows gebruikers daar gebruik van kunnen
maken.
Surf naar deze webpagina.
Start de vncserver op in de terminal van de fysieke computer.
Test de VNC-verbinding door:
De vncviewer op de virtuele Windows-computer te starten.
Test de verbinding naar de fysieke computer scherm :1.
Breek de VNC-verbinding af.
Volg de uitleg op de site en neem scherm :1 van de fysieke computer via een beveiligde verbinding over. Succes.