петак, 19 априла, 2024
Како да...?

Како проследити Икс преко сигурне шкољке?

Аутор: Александар Божиновић

Основни појмови

У информатичким текстовима, неретко оним који се тичу отвореног софтвера, користе се акроними – скраћенице које настају сажимањем више речи у једну. Временом и понављањем акронима нестала је потреба (немарност аутора, прим.аут.) да се, макар у фусноти, наведе његово значење. Шкољка (енг. Shell) је назив за програм, односно интерфејс за приступ услугама рачунарског система, попут покретања програма, кретања кроз систем датотека и употребе услуга оперативног система1. Шкољка као спољашњи омотач мекушаца описује једну додирну површину између корисника и сржи оперативног система. Шкољка нам је позната под називом терминал. Два рачунара преко сигурне шкољке остварују сигурну везу која се означава термином тунел. Икс је део сленга и означава графички приказ свега на екрану. Пун назив је систем прозора Икс (лат. X и X11) и то је протокол за приказ система прозора на екранима који се базирају на пикселима2. ВНЦ (енг. Virtual Network Computing) је софтвер који преноси графички приказ удаљеног рачунара, који се означава као сервер, локалном рачунару, који се означава као клијент. Истовремено команде тастатуре и миша са локалног рачунара преноси удаљеном рачунару. Укратко, ВНЦ се користи за контролисање удаљеног рачунара.3

Припрема

Замислите следећу ситуацију – желите да контролишете удаљени рачунар, али не желите да користите власничке програме какав је Тимвјувер (енг. TeamViewer). Већина власничких програма шаље aј-пи адресу (енг. IP) на сервер и све се обавља преко њега. Овај текст укратко описује релативно једноставан начин да се оствари приказ исписа екрана са удаљеног рачунара на локални рачунар у стварном времену, као и како да се кориснику на локалном рачунару омогући контрола удаљеног рачунара. За сврху овог текста коришћена су два рачунара на којима је инсталиран Убунту. Најпре је потребно инсталирати пакете openssh-server и x11vnc на удаљеном рачунару:

sudo apt-get install openssh-server x11vnc

На локални рачунар неопходно је инсталирати ВНЦ прегледач, на пример gtkvncviewer:

sudo apt-get install gtkvncviewer

Повезивање

Да бисте проследили Икс, потребно је да укуцате следеће (такође на удаљеном рачунару):

x11vnc -rfbport 5900

Затим је потребно у ВНЦ прегледник на локалном рачунару унети следеће податке:

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

Тако ћете отворити прозор с приказом исписа удаљеног рачунара у коме можете користити миш да бисте контролисали удаљени рачунар. Имајте на уму да прекидом везе ви проузрокујете прекид рада програма x11vnc на удаљеном рачунару. Да би он остао активан и по прекиду везе, потребно га је покренути с додатком аргумента forever.

x11vnc -rfbport 5900 --forever

Прослеђивање порта

Када се удаљени рачунар налази у мрежи коју регулише рутер, портови су сигурно „затворени”. То се може решити остваривањем тзв. реверзног тунела или везе (енг. SSH reverse tunneling). То заправо значи да удаљена машина обезбеђује локалној машини приступ свом порту. Нека порт А буде порт локалне машине, а порт Б порт удаљене машине. Када се реверзни тунел успостави, преко порта А на локалној машини приступа се порту Б на удаљеној машини. Притом се подразумева да су порт локалне машине и рутер „испред” локалне машине „отворени” (порт 22). Порт 22 је иначе подразумевани порт за сигурну шкољку.

Реверзни тунел остварује се са удаљеног рачунара.

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

У овом примеру, 12345 је порт локалне машине (А), а 5900 је порт удаљене машине (Б).

Након тога, потребно је покренути x11vnc (такође на удаљеном рачунару):

x11vnc -rfbport 5900

Покрените ВНЦ прегледник на локалном рачунару и унесите следеће податке:

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

1 https://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%29 https://hr.wikipedia.org/wiki/Ljuska_%28ra%C4%8Dunarstvo%29

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

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