Mogućnosti
Standardna Microsoft rješenja
Microsoft Windows XP, standardno, omogućava pružanje pomoći s udaljenog računala na dva načina: Remote Assistance i Remote Desktop. Ista tehnologija koristi se u oba slučaja. Remote Desktop zapravo nije zamišljen kao sustav za pomoć, nego prvenstveno kao mogućnost spajanja na računalo u uredu od kuće.
Ako korisnik ne zna napisati formule u Excel-u, on će zatražiti pomoć prijatelja preko Remote Assistance sustava. Poziv prijatelju može se uputiti na njegov E-mail (preko MAPI account-a) ili preko Windows Messenger-a (potreban je .NET Password account), a može se i snimiti u datoteku te proslijediti tradicionalnim metodama (snail-mail, disketa ...). Prilikom pozivanja specificira se koliko dugo poziv ostaje otvoren, a preporuča se definiranje posebne lozinke samo za tu priliku. Kad se pokrene Remote Assistance, vidi se korisnikov ekran i s udaljene lokacije moguće je raditi na korisnikovom računalu ili se dopisivati s njim (chat).
Kako je Remote Desktop zamišljen kao pristup vlastitom računalu s udaljene lokacije, za njega nije potreban poziv. Ako je aktivan lokalni korisnik u vrijeme pristupa udaljenog korisnika, njegov rad (njegov session) se prekida. Tehnologija Remote Desktop-a koristi se za pristup Terminal Service-ima Windows servera, dok je izvedba na Windows XP ograničena na jednog aktivnog udaljenog korisnika.
VNC
VNC je program koji prikazuje ekran drugog računala (oba računala spojena su ili u lokalnu mrežu ili komuniciraju putem interneta) i omogućava korištenje lokalne tipkovnice i miša za kontrolu udaljenog računala. U praksi, to je kao da sjedimo pred udaljenim računalom i radimo na njemu (ako se zanemari sporiji rad). VNC ima sličnosti s Remote Assistance tehnologijom, ali se može konfigurirati tako da nije potrebna akcija korisnika za korištenje VNC-a.
VNC je opće prihvaćen u računalnom svijetu te postoje izvedbe za različite platforme koje su međusobno kompatibilne. Drugim riječima, VNC viewer (klijent) program pokrenut na Windows XP računalu može pristupati VNC serveru na Linux računalu. Postoji više različitih programa koji koriste VNC protokol, a najpoznatiji su RealVNC, UltraVNC i TightVNC. Rasprava o tome koja izvedba je najbolja je dobar način za pokretanje međureligijskih ratova.
Prednost i mana VNC-a je spajanje na aktivni session korisnika. Ako treba pomoći kod korištenja nekog programa to je vrlo pogodno, ali ako treba napraviti neku kraću administrativnu akciju (poput kontrole mjesta na disku ili pregleda EventLog-a) ponekad je zgodnije ne smetati aktivnog korisnika.
TermServer hack
Tijekom izrade Service Pack-a 2 (SP2), u opticaju je bila verzija Remote Desktopa koja je omogućavala više istovremeno aktivnih korisnika (više aktivnih session-a). U konačnoj verziji SP2 to je izbačeno, ali je moguće koristiti hack baziran na razvojnoj verziji. Testovi pokazuju kako možemo istovremeno pristupiti VNC-om na aktivni session i Remote Desktop-om na drugi session.
Instalaciju možete pronaći upitom na Google-u.
Nedostaci
Za korištenje VNC-a i Remote Desktop-a, nužno je da na udaljenom računalu Windows-i rade. Ako se Windows-i ne mogu pokrenuti, niti VNC niti Remote Desktop ne mogu pomoći.
Omogućavanje pristupa preko mreže krije u sebi potencijalne sigurnosne probleme. Sav promet (svi podaci), između udaljenih računala, putuju mrežom po kojoj se kreću milioni korisnika, a neki od njih imaju maliciozne namjere. Opisana rješenja (programi) više ili manje dobro omogućavaju pristup udaljenim računalima, ali pri tome se ne brinu puno o sigurnosti sustava.
Zbog nedostatka IP adresa često se koriste razna NAT rješenja. Prisutnost NAT-a komplicira izvedbu jer nije moguće direktno pristupiti udaljenom računalu.
Jedno moguće rješenje sigurnosnog problema: OpenVPN
Tehnologije virtualnih privatnih mreža (engl. VPN) koriste se za spajanje udaljenih lokacija "kroz" internet. U Windows-ima XP postoji podrška za IPSec klijent, dok je podrška za IPSec server ugrađena u serverske verzije Windows-a. Open Source rješenje OpenVPN koristi SSL/TLS protokol za enkripciju (šifriranje) podataka stvarajući virtualni tunel između krajnjih točaka (krajnje točke tunela mogu biti dva udaljena računala). Tunel možemo konfigurirati da prosljeđuje pakete LAN-ova u kojima se krajnje točke nalaze, tako da dobivamo situaciju u kojoj se tunel ponaša kao bridge, tako da sve stanice imaju dojam kako se nalaze na LAN-u.
OpenVPN koristi IANA registrirani UDP/TCP port 1194 (može se mijenjati u konfiguraciji) pa je potrebno taj port "otvoriti" na vatrozidu (engl. firewall).
OpenVPN je multiplatformno rješenje pa se vrlo često koristi u kada treba pristupiti Linux server(-ima) firme s WindowsXP laptopa (udaljene lokacije).
Instalacija
Za instalaciju potrebno je skinuti Openvpn GUI koji mora instalirati korisnik s administrativnim pravima. Za Ultra VNC treba skinuti Ultra VNC program i video upravljač (engl. driver). Kod instalacije Ultra VNC programa, treba postaviti lozinku (polje "VNC password"), postaviti "Require MS Logon...", a ukinuti "New MS Logon..." opciju. Također, pod "Configure MS Logon Groups" treba upisati naziv grupe (ili do tri grupe) koja ima prava pristupa. Normalno, treba upisati grupu "Administrators" i kliknuti mišem na "Local" u istom redu.
Na OpenVPN server-u treba instalirati spomenuti TermServer hack kako bi mogli pristupiti Remote Desktopom (s OpenVPN klijenta) kao drugi korisnik (tako da rad aktivnog korisnika nije prekinut).
Također, ako OpenVPN server nema fiksnu adresu, treba instalirati DynDNS Updater. Detaljnije vidi na stranici o dinamičkom DNS-u.
Izrada javnih i privatnih ključeva
U easy-rsa poddirektoriju nalazimo pripremljene *.bat datoteke koje olakšavaju posao. Potrebno je napraviti:
- "glavni" javni i privatni ključ (datoteke ca.cert i ca.key)
- Diffie-Helman datoteku s parametrima (dh2048.pem)
- javni i privatni ključ za VPN server
- javni i privatni ključ za svakog VPN klijenta
Sve ovo izrađuje se u "Command Prompt"-u (Start->All Programs->Accessories->Command Prompt ili nakon Start->Run upišite cmd<Enter>). Nakon otvaranja Command Prompt-a (nazivanog i DOS prozor), upišete:
cd "\Program Files\OpenVPN\easy-rsa"
init-config
edit vars.bat
Ovdje treba prilagoditi parametre ključeva našim potrebama (izmjenu možete napraviti i u nekom drugom editoru). Popis izmjena:
| Original | Nova vrijednost |
|---|---|
| set KEY_SIZE=1024 | set KEY_SIZE=2048 |
| set KEY_COUNTRY=US | set KEY_COUNTRY=HR |
| set KEY_PROVINCE=CA | set KEY_PROVINCE=HR |
| set KEY_CITY=SanFrancisco | set KEY_CITY=Grad |
| set KEY_ORG=FortFunston | set KEY_ORG=firma |
| set KEY_EMAIL=mail@host.domain | set KEY_EMAIL=email@firma.hr |
Naravno, u tablici treba promijeniti tekst "firma" s nazivom firme, a "email@firma.hr" s pravom e-mail adresom. Nijedan od parametara ne treba ostaviti praznim. "Naša slova" (ČĆĐŠŽčćđšž) zamijenite slovima bez "kvačica" (CCDSZccdsz), a razmake i specijalne znakove izbacite. Primjer: za grad "Novi Vinodolski" koristite "NoviVinodolski", a za firmu "Naš čovjek d.o.o" upišite "NasCovjek". Prema činjenicama poznatim 2005-te godine, ključ veličine 2048 bit-ova dovoljan je za sigurnu komunikaciju u slijedećih 10 godina. Ostali parametri koje ovdje upišete služe kao standardne ponuđene (engl. default) vrijednosti za slijedeće korake. Nakon snimanja vars.bat datoteke slijedi:
vars
build-ca
build-dh
build-key-server <naziv-servera>
build-ca komandom izrađujemo "glavni" javni i privatni ključ (CA). build-dh komanda može dugoooo trajati (ovisno o brzini stroja) i to je najsporiji korak u cijelom procesu. Srećom, ovo se radi jednom (za server). Za <naziv-servera> najbolje je upotrijebiti mala slova, eventualno znak minus ako postoji više riječi. Za svakog klijenta tada treba napraviti njegov par (javni,privatni) ključeva:
vars
build-key <naziv-klijenta>
Za <naziv-klijenta> vrijede ista pravila kao za <naziv-servera>.
Distribucija ključeva
Svakom klijent-stroju, za koji smo napravili ključeve u prethodnom koraku, potrebno je proslijediti datoteke:
- ca.crt
- <naziv-klijenta>.crt
- <naziv-klijenta>.key
- client.ovpn
Svaki klijent mora imati samo svoj par (<naziv-klijenta>.crt,<naziv-klijenta>.key) ključeva. Klijent će "master" certifikat-om (ca.crt) provjeriti da li se spojio na pravog servera, efektivno izbjegavajući ubacivanje trećih entiteta u komunikaciju (MITM napad).
Datoteke treba dostaviti na siguran način (npr. osobno disketom) i snimiti na klijent stroj u direktorij "\Program Files\OpenVPN\config".
Priprema konfiguracijskih datoteka
U direktoriju "\Program Files\OpenVPN\sample-config" nalazimo sample.opvn, server.opvn i client.opvn datoteke. Radi jednostavnosti, uzimamo server.opvn i client.opvn koje modificiramo prema svojim potrebama. U datoteci server.opvn mijenjamo:
| Original | Nova vrijednost |
|---|---|
| cert server.crt | cert <naziv-servera>.crt |
| key server.key | key <naziv-servera>.key |
| dh dh1024.pem | dh dh2048.pem |
Promijenjenu datoteku server.opvn snimimo u "\Program Files\OpenVPN\config" direktorij na serveru. U datoteci client.opvn mijenjamo:
| Original | Nova vrijednost |
|---|---|
| remote my-server-1 1194 | remote <DDNS-klijent> 1194 float |
| cert client.crt | cert <naziv-klijenta>.crt |
| key client.key | key <naziv-klijenta>.key |
| ;ns-cert-type server | ns-cert-type server |
Umjesto <DDNS-klijent> treba staviti DDNS naziv registriran kod DDNS pružaoca usluga (vidi dinamički DNS).
Promijenjena datoteka client.opvn snima se u "\Program Files\OpenVPN\config" na svakom klijentu (zajedno s njegovim ključevima i ca.crt).
Otvaranje prolaza na vatrozidu
Na vatrozidu moramo otvoriti UDP port 1194 (koji je naveden u konfiguracijskim datotekama). U tipičnoj konfiguraciji Windows-a XP SP2 (za Windows Firewall) postupak je:
- izaberemo Start->Control Panel
- pokrenemo Windows Firewall
- izaberemo stranicu (engl. tab) Exceptions
- u Program and Services, uz treba biti markirano Remote Desktop
- kliknemo mišem na Add Program i izaberemo s popisa "Ultra VNC Viewer"
- kliknemo mišem na Add Program, pa na Browse, pa pronađemo "c:\Program Files\OpenVPN\bin\openvpn.exe"
Otvaranje prolaza na NAT usmjerniku
Na tržištu NAT usmjernika i sličnih uređaja postoji velika konkurencija, a ne postoje standardizirana administrativna sučelja. Drugim riječima, definiranje prolaza (engl. port forward) razlikuje se među proizvođačima, a ponekad i među uređajima istog proizvođača. U pravilu, da bi port forward radio, potrebno je fiksirati adresu računala (unutar LAN-a) na koje se promet preusmjerava, a na NAT usmjerniku definirati port forward UDP port-a 1194 na tu fiksiranu adresu. Kako se definira port forward opisano je za mnoštvo uređaja na stranicama http://portforward.com.
Upotreba
Na serveru "OpenVPN Service" pregledava "\Program Files\OpenVPN\config" direktorij i za sve pronađene datoteke s opvn ekstenzijom otvara svoju stranu VPN tunela. Budući da OpenVPN i DynDNS rade kao servisi, nije potrebna prijava korisnika na sustav.
Na klijent računalu, VPN tunel otvaramo tako da u direktoriju "\Program Files\OpenVPN\config" desnim klikom s kontekstnog izbornika pokrenemo "Start OpenVPN on this config file". Otvara se DOS prozor u kojem možemo pratiti uspostavu VPN tunela. Na tipičnom ADSL-u to obično traje 7-8 sekundi, dok preko modemske veze (52kbps) može potrajati 10-20 sekundi (ovisi i o brzini servera). Poslije poruke "Initialization Sequence Completed" tunel je uspostavljen i možemo se spajati na server. Server ima adresu 10.8.0.1, a klijent 10.8.0.6. Dakle, u VNC viewer-u upišemo 10.8.0.1 u polje VNC server, a kod Remote Desktop Connection-a to je polje s labelom "Computer:".