četvrtak, 26 decembra, 2024
Kako da...?

Kako proslediti Iks preko sigurne školjke?

Autor: Aleksandar Božinović

Osnovni pojmovi

U informatičkim tekstovima, neretko onim koji se tiču otvorenog softvera, koriste se akronimi – skraćenice koje nastaju sažimanjem više reči u jednu. Vremenom i ponavljanjem akronima nestala je potreba (nemarnost autora, prim.aut.) da se, makar u fusnoti, navede njegovo značenje. Školjka (eng. Shell) je naziv za program, odnosno interfejs za pristup uslugama računarskog sistema, poput pokretanja programa, kretanja kroz sistem datoteka i upotrebe usluga operativnog sistema1. Školjka kao spoljašnji omotač mekušaca opisuje jednu dodirnu površinu između korisnika i srži operativnog sistema. Školjka nam je poznata pod nazivom terminal. Dva računara preko sigurne školjke ostvaruju sigurnu vezu koja se označava terminom tunel. Iks je deo slenga i označava grafički prikaz svega na ekranu. Pun naziv je sistem prozora Iks (lat. X i X11) i to je protokol za prikaz sistema prozora na ekranima koji se baziraju na pikselima2. VNC (eng. Virtual Network Computing) je softver koji prenosi grafički prikaz udaljenog računara, koji se označava kao server, lokalnom računaru, koji se označava kao klijent. Istovremeno komande tastature i miša sa lokalnog računara prenosi udaljenom računaru. Ukratko, VNC se koristi za kontrolisanje udaljenog računara.3

Priprema

Zamislite sledeću situaciju – želite da kontrolišete udaljeni računar, ali ne želite da koristite vlasničke programe kakav je Timvjuver (eng. TeamViewer). Većina vlasničkih programa šalje aj-pi adresu (eng. IP) na server i sve se obavlja preko njega. Ovaj tekst ukratko opisuje relativno jednostavan način da se ostvari prikaz ispisa ekrana sa udaljenog računara na lokalni računar u stvarnom vremenu, kao i kako da se korisniku na lokalnom računaru omogući kontrola udaljenog računara. Za svrhu ovog teksta korišćena su dva računara na kojima je instaliran Ubuntu. Najpre je potrebno instalirati pakete openssh-server i x11vnc na udaljenom računaru:

sudo apt-get install openssh-server x11vnc

Na lokalni računar neophodno je instalirati VNC pregledač, na primer gtkvncviewer:

sudo apt-get install gtkvncviewer

Povezivanje

Da biste prosledili Iks, potrebno je da ukucate sledeće (takođe na udaljenom računaru):

x11vnc -rfbport 5900

Zatim je potrebno u VNC preglednik na lokalnom računaru uneti sledeće podatke:

server: ip_adresa_udaljenog_računara:5900 username: korisničko_ime_udaljenog_računara password: lozinka_udaljenog_računara

Tako ćete otvoriti prozor s prikazom ispisa udaljenog računara u kome možete koristiti miš da biste kontrolisali udaljeni računar. Imajte na umu da prekidom veze vi prouzrokujete prekid rada programa x11vnc na udaljenom računaru. Da bi on ostao aktivan i po prekidu veze, potrebno ga je pokrenuti s dodatkom argumenta forever.

x11vnc -rfbport 5900 --forever

Prosleđivanje porta

Kada se udaljeni računar nalazi u mreži koju reguliše ruter, portovi su sigurno „zatvoreni”. To se može rešiti ostvarivanjem tzv. reverznog tunela ili veze (eng. SSH reverse tunneling). To zapravo znači da udaljena mašina obezbeđuje lokalnoj mašini pristup svom portu. Neka port A bude port lokalne mašine, a port B port udaljene mašine. Kada se reverzni tunel uspostavi, preko porta A na lokalnoj mašini pristupa se portu B na udaljenoj mašini. Pritom se podrazumeva da su port lokalne mašine i ruter „ispred” lokalne mašine „otvoreni” (port 22). Port 22 je inače podrazumevani port za sigurnu školjku.

Reverzni tunel ostvaruje se sa udaljenog računara.

ssh -R 12345:localhost:5900 korisničko_ime_udaljenog_računara@ip_adresa_udaljenog_računara

U ovom primeru, 12345 je port lokalne mašine (A), a 5900 je port udaljene mašine (B).

Nakon toga, potrebno je pokrenuti x11vnc (takođe na udaljenom računaru):

x11vnc -rfbport 5900

Pokrenite VNC preglednik na lokalnom računaru i unesite sledeće podatke:

server: localhost:12345 username: korisničko_ime_udaljenog_računara password: lozinka_udaljenog_računara

1https://sr.wikipedia.org/wiki/%D0%89%D1%83%D1%81%D0%BA%D0%B0_%28%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%BE%29https://hr.wikipedia.org/wiki/Ljuska_%28ra%C4%8Dunarstvo%29

2https://sr.wikipedia.org/wiki/X_Window_System

3https://de.wikipedia.org/wiki/Virtual_Network_Computing