SSL-VNC
Sendanor
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)

