SSL-VNC

Sendanor

Loikkaa: valikkoon, hakuun

Normaalin VNC-yhteyden tietoliikennettä ei ole suojattu mitenkään, ja sen käyttäminen julkiverkon yli on tästä syystä huomattava tietoturvariski. Tämän vuoksi Sendanorin VNC-yhteydet toimivat ainoastaan SSL-tunnelin läpi. SSL-salauksella estetään VNC:n läpi syötettyjen salasanojen ja muun arkaluontoisen tiedon joutuminen ulkopuolisten käsiin.

Joissakin VNC-asiakasohjelmissa on tuki SSL-salaukselle, jolloin yhteyden voi muodostaa suoraan. Tämä on kuitenkin yllättävän harvinainen ominaisuus. Tästä aiheutuva haittapuoli on se, että et voi suoraan yhdistää VNC-asiakasohjelmistoa SSL-suojattuihin portteihin, vaan joudut käyttämään ohjelmaa stunnel, joka muodostaa virtuaaliportin koneellesi jota voit käyttää VNC-asiakasohjelmistollasi.

Sisällysluettelo

Linux

Linuxissa sinun tulee aluksi varmistaa, että sinulla on paikallisella tietokoneellasi stunnel asennettuna, voit tehdä sen esimerkisi komennolla:

apt-get install stunnel4

Huomaa, ettei sinun tarvitse tehdä Sendanorin palvelinasennuksessa mitään, vaan kaikki on valmiiksi konfiguroitu. Seuraavaksi sinun tulee luoda asetustiedosto, johon tulee stunnelin vaatimat tiedot. Luo tiedosto lempieditorillasi esimerkiksi kotikansioon nimellä sendanor-vnc.conf. Sen sisällön tulisi olla seuraavanlainen:

client=yes
foreground=yes
pid=

[vnc0]
accept=localhost:5900
connect=secure.sendanor.fi:<porttinumerosi>

Muista korvata <porttinumerosi> henkilökohtaisella porttinumerollasi, jonka näet esimerkisi javavnc:stä. Asetukset kertovat stunnelille, että sen tulee salata ja ohjata paikalliset 5900 (VNC asiakasohjelmiston :0 eli näyttö numero nolla) porttiin saapuvat yhteydet SSL tunnelin kautta secure.sendanor.fi -palvelimelle. Kannattaa käyttää standardia porttinumeroa tai lähellä olevaa, koska osa VNC-asiakasohjelmista hyväksyy vain näytön numeroita porttinumeroiden sijaan. Voit lisätä useita tunneleita lisäämällä useampia [vncN] osioita tiedostoon.

Nyt voit käynnistää tunnelit suorittamalla komennon (olettaen että tallensit conf tiedoston kotikansioosi):

stunnel4 ~/sendanor-vnc.conf

Tarkista seuraavaksi onnistuiko tunneleiden käynnistäminen suorittamalla komento:

netstat -pltn | grep stunnel

Mikäli tunnelointi toimii oikein, sinun tulisi saada jokaista [vncN] osiota kohti yksi vastausrivi. Mikäli näin tapahtuu, voit ottaa nyt haluamallasi asiakasohjelmistolla yhteyden, antamalla kohdeosoitteeksi localhost:0, tai localhost::<porttinumero>, mikäli käytit epästandardia porttinumeroa. Asiakasohjelmistosi kysyy salasanaa, joka on sama kuin javavnc:ssä. Tämän jälkeen saat eteesi saman näkymän kun javavnc:ssä, mutta pystyt käyttämään |-näppäintä joten komentojen putkittaminen onnistuu paremmin kuin javavnc:ssä, ja voit taputtaa itseäsi selkään. Joissain moderneimmissa linux-jakeluissa oikea stunnel-versio on paketissa/binäärissä stunnel

Komentoriviltä suoraan ilman asetustiedostoja

 stunnel -c -P "" -f -d localhost:5900 -r secure.sendanor.fi:<porttinumerosi>

Erikoiskomennot

Kuten tulet pian huomaamaan, erikoiskomentojen lähettäminen on asiakasohjelmistotsta riippuen hankalaa, tai mahdotonta. TightVNC paketin vncviewer ohjelman erikoismerkkien lähettäminen rajoittuu F8 näppäimellä saatavan valikon kautta Ctrl+Alt+Del:n lähettämiseen, millä ei pitkälle pärjää mikäli haluaa vaihtaa virtuaalikonsolia tai tarvii SysRq -näppäintä, esimerkiksi kaatuneen järjestelmän boottaamiseen ilman virtuaalikoneen haltijan vaivaamista. Näitä komentoja varten on onneksi kehitetty maanmainio ohjelma rfbplaymacro, jonka tarvitset asennettuna paikalliselle koneellesi. Paketin asennus käy kätevästi:

wget http://cyberelk.net/tim/data/rfbplaymacro/stable/rfbplaymacro-0.2.2.tar.bz2
tar xjf rfbplaymacro*
cd rfbplaymacro*
./configure
make all
sudo make install

Seuraavaksi tarvitset makrotiedoston, joita voi nauhoittaa esimerkiksi rfbproxy ohjelmalla. Luo seuraavanlainen tiedosto kotikansioosi nimellä ctrl-alt-f10.rfb:

RFM 001.000
shared
key 0xffe3 down delay 10ms # <Ctrl
key 0xffe9 down delay 10ms # <Alt
press 0xffc7 delay 10ms    # F10
key 0xffe9 up delay 10ms   # >Alt
key 0xffe3 up delay 10ms   # >Ctrl

Näppäinyhdistelmällä Ctrl-Alt-F10 pääset virtuaalikonsoliin 10, joka on yleensä varattu kernelin viesteille. Huomaa, että joudut ennen komennon lähettämistä sulkemaan VNC -asiakasohjelmistosi hetkellisesti. Mutta yhteyden sammuttaminen ei vaikuta mitenkään virtuaalijärjestelmän tilaan, joten älä huoli. Näppäinmakron lähettäminen etäpalvelimelle tapahtuu komennolla:

echo -n "salasana: ";stty -echo ;read foo;(rfbplaymacro --server=localhost:0 --passwd=$foo) < ctrl-alt-f10.rfb;unset $foo;stty echo

VAROITUS: bashin rajoitteiden takia salasana jää RAMiin ja on mahdollisesti luettavissa sieltä.

HUOM: rfbplaymacro tukee vain VNC:n näyttönumeroita. Jos haluat komennon näyttävän salasanan sitä kirjoittaessa poista "stty -echo;"

HUOM:rfbplaymacro tukee versiosta 0.2.1 alkaen salasanaa makrotiedostossa. Muista tällöin poistaa tiedoston lukuoikeudet muilta ja ryhmältä. Salasana syötetään tiedostoon password käskyllä tiedoston toiselle riville, ennen shared-riviä, mutta versiomäärittelyn jälkeen.

Kun tämän jälkeen kirjaudut takaisin VNC -asiakasohjelmistollasi, pitäisi sinulla olla edessäsi kernelin viesti-ikkuna.

Jotta pääset takaisin virtuaalikonsoliin, sinun tulee luoda vastaavasti tiedosto ctrl-alt-f1.rfb, jossa korvaat F10 rivin F1 rivillä. Näppäinkoodit ovat samat kuin X ikkunointijärjestelmässä, joten voit itse tutkia näppäimia xev ohjelmalla. Tässä muiden funktionäppäimien koodit, jotta pääset alkuun:

press 0xffbe delay 10ms # F1
press 0xffbf delay 10ms # F2
press 0xffc0 delay 10ms # F3
press 0xffc1 delay 10ms # F4
press 0xffc2 delay 10ms # F5
press 0xffc3 delay 10ms # F6
press 0xffc4 delay 10ms # F7
press 0xffc5 delay 10ms # F8
press 0xffc6 delay 10ms # F9
press 0xffc7 delay 10ms # F10
press 0xffc8 delay 10ms # F11
press 0xffc9 delay 10ms # F11

Windows

Mikäli sinulla ei ole stunnelia asennettuna, asenna se osoitteesta:

http://www.stunnel.org/download/binaries.html

Asennettuasi ohjelman, käynnistysvalikkoosi ilmestyy stunnel kansio, josta löytyy Edit stunnel.conf nimike. Valitsemalla nimikkeen konfigurointitiedosto avautuu lempieditoriisi. Etsi seuraavankaltainen rivi tiedostosta:

;client = yes

Ja poista puolipiste rivin alusta. Muuten [vnc0] lisääminen tapahtuu identtisesti kuin linuxissa, katso ohje siitä.

Huomatus: Sinun ei tarvitse asettaa pid tai muita asetuksia windowsissa, ainoastaan lisää [vnc0] ja sen jälkeiset kaksi riviä.

Kun olet muokannut tiedoston, tallenna se. Tämän jälkeen valitse stunnel kansiosta kohta Start stunnel, jonka jälkeen voit käyttää haluamaasi VNC asiakassovellusta yhteyden muodostamiseen. Osoitteelle pätee sama sääntö kuin Linuxissa, eli localhost:0 viittää porttiin 5900, jota kautta saat nyt salatun yhteyden Sendanorin palvelimeen.

Toimivuus testattu: Jikuja 20. huhtikuuta 2010 kello 22.04 (UTC)

Henkilökohtaiset työkalut