Sikker VNC tunnel på Ubuntu

Sikker VNC tunnel på Ubuntu

Wed 14 November 2012

I denne posten vil jeg kort gå igjennom de kommandoene du trenger for å sette opp en sikker VNC tunnel. Jeg har tatt utgangspunkt i en Ubuntu 12.10 maskin, men kommandoene vil fungere på stort sett alle linuxdistroer, og hvertfall de som er debianbaserte.

Hva er VNC?

VNC er en protokoll for grafisk fjernadministrering av datamaskiner. Protokollen er populær og utbredt. Den kommer som standard i de fleste desktop Linux distribusjoner, samt i macosx.

Hvordan virker det?

For å starte en VNC sesjon trenger man en server og en klient. Klienten er maskinen du fjernstyrer fra, mens serveren er maskinen som skal kontrolleres.

For å installere og starte vncserveren:

$ sudo apt-get install x11vnc
$ mkdir ~/.x11vnc
$ x11vnc -storepasswd password ~/.x11vnc/passwd
$ x11vnc -display :0 -rfbauth ~/.x11vnc/passwd

VNC Viewer Mac
Du kan nå koble til vncserveren din v.h.a en vncklient. Gjør et søk på vncklient så finner du nok en for din plattform.

Er du på Windows kan jeg anbefale RealVNC, og er du på Mac kan du prøve Chicken of VNC.

Når du kobler til vncserveren din vil du bli spurt om et passord for å kryptere selve innloggingsprosessen.

Dette er det samme passordet vi satte som en del av x11vncserver setup prosessen.

Hva er problemet?

VNC er en klartekst protokoll. Dette betyr at all kommunikasjon mellom klienten og serveren kan leses av alle som er på samme nett. Opprinnelig ikke et stort problem på lukkede kablet nett, men idag et sikkerhetsproblem da en ofte bruker trådløse nett med mange brukere på.

Eksempel: Om du kobler deg til en Mac med VNC vil du komme til innlogginskjermen og må logge deg på selve maskinen. Gjøres dette over VNC må du sende passordet i klartekst, noe som er lite heldig.

Samme problemet kan oppstå når du logger på epost, Facebook og lignende.

Hva er løsningen?

Vi kan ikke kryptere selve VNC trafikken vår, men vi kan opprette en kryptert tunnel hvor vi sender den ukrypterte trafikken igjennom.

Det er enklere enn det høres ut som!

Først må vi opprette tunellen:

ssh - L 5900:127.0.0.1:5900 bruker@host

Du kan så starte vncserveren som vist over:

$ x11vnc -display :0 -rfbauth ~/.x11vnc/passwd

Nå vil all trafikk på port 5900 bli sendt fra 'host' til maskinen du sitter på via den krypterte ssh-tunnelen.

Vi kan nå starte vncklienten på 'localhost' og koble oss til vncsesjonen.


Vær obs på at klienten nå skal koble seg til 'localhost' og ikke 'host'.

Så det var det, bruk vnc over ssh så er du litt tryggere :)

Tagged as : vnc ssh ubuntu