|
Problema:
Se doreste accesul la distanta la anumite aplicatii grafice X, dar fara compromiterea securitatii.
Solutie:
1. Se instaleaza serverul OpenSSH pe calculatorul ce gazduieste aplicatia la distanta. Se configureaza serverul OpenSSH astfel incat sa faca "forward" pentru conexiunile X. Pentru aceasta se va activa optiunea "ForwardX11 yes" in fisierul de configurare relevant, aflat de obicei in /etc/ssh/sshd_config .
2. Pentru un plus de securitate, in fisierul de configurare al serverului OpenSSH se vor dezactiva versiunile de protocol mai vechi de versiunea 2, utilizand optiunea "Protocol 2". De asemenea se recomanda dezactivarea posibilitatii superutilizatorului "root" de a se autentifica de la distanta prin SSH, utilizand optiunea "PermitRootLogin no".
3. In cazul in care respectivul calculator la distanta e protejat de un firewall, ne vom asigura ca se permit conexiunile initiate din exterior pe portul 22, rezervat in mod obisnuit protocolului SSH.
4. Se va instala un client OpenSSH pe calculatorul local. De regula orice distributie Linux / BSD vine cu un asemenea pachet instalat implicit. Evident, pentru a porni local aplicatii grafice de pe calculatorul la distanta e necesar un server X local pornit.
5. De asemenea se va activa optiunea "ForwardAgent yes" in fisierul de configurare global al clientilor OpenSSH, care este de regula /etc/ssh/ssh_config, sau in cel specific utilizatorului: ~/.ssh/config (alternativ se poate preciza in linie de comanda optiunea "-X").
6. Se va initia o conexiune SSH catre calculatorul la distanta prin comanda "ssh -l username hostname", unde "username" este numele contului pe care il detinem pe acel calculator, iar "hostname" este adresa sau ip-ul calculatorului la distanta (Alternativ se poate folosi sintaxa "ssh username@hostname"). Va fi ceruta parola respectivului cont, iar dupa o autentificare reusita vom ajunge la linia de comanda pe acel calculator. In cazul in care nu dispunem de o conexiune foarte buna (cum ar fi una intr-o retea locala) se poate imbunatati accesul la aplicatii grafice la distanta utilizand parametrul "-C" pentru a comprima datele transmise.
7. Odata efectuati toti pasii anteriori vom putea porni orice aplicatie grafica de pe calculatorul la distanta, iar interfata sa grafica va fi afisata local. Un exemplu de test ar putea fi aplicatia "xclock", iar comanda ar fi "xclock &", unde caracterul "&" din coada va face ca aplicatia sa se detaseze de terminalul curent, eliberandu-l pentru introducerea unor noi comenzi.
Observatii:
Accesul la distanta la aplicatii grafice X este posibil si intre sisteme de operare diferite, chiar si arhitecturi hardware diferite, singurele compatibilitati necesare sunt cele intre serverul SSH aflat pe calculatorul la distanta si clientul SSH local (in exemplu nostru versiunea 2 de protocol), precum si intre clientul X la distanta si serverul X local.
In cazul particular in care nu avem posibilitatea de a modifica setarile serverului OpenSSH pe calculatorul la distanta si acesta nu are activata optiunea "ForwardX11 Yes" conexiunea va fi directa si va trebui sa permitem calculatorului la distanta accesul pe portul 6000 al serverului local. De asemenea, intr-un terminal din serverul X local se va permite accesul unor clientilor X de pe calculatorul la distanta prin comanda "xhost +hostname", unde "hostname" este adresa sau ip-ul acelui calculator. In plus va fi nevoie sa se exporte dupa autentificarea la distanta variabila de mediu DISPLAY care va preciza locatia serverului X la care se vor conecta aplicatiile grafice client. Un exemplu ar putea fi:
export DISPLAY=hostname:0.0
|
unde "hostname" este adresa sau ip-ul calculatorului local pe care avem un server X pornit pe "display"-ul "0.0". Daca am initiat serverul X utilizand un alt "display", de exemplu cu comanda "xinit -- :1.0" se va exporta variabila "DISPLAY" relevanta.
|