Accesarea unor servicii din Campus (rețeaua privată a Departamentului de Informatică) folosind SSH tunneling

Folosind un mecanism numit SSH tunneling este posibila accesarea unor servicii, procese server, aplicatii web, etc. de oriunde din Internet si gazduite pe adrese IP private (false) din cadrul retelei Departamentului de Informatica (Campus, cladirea FSEGA). Mecanismul de SSH tunneling se bazeaza pe faptul ca un utilizator odata autentificat si conectat prin SSH la o infrastructura Entreprise (in cazul de fata reteaua Departamentului de Informatica), el are acces de pe masina (serverul) pe care s-a autentificat la aceasta retea.

Prezentul tutorial foloseste pentru exemplificare serviciile Jenkins si Testlink instalate pe masina 172.30.0.8 (IP privat) si accesibile (fizic doar conectati la reteaua Departamentului din Campus) la URL-urile:

http://172.30.0.8:8080
http://172.30.0.8/testlink

Mecanismul SSH tunneling functioneaza in mod similar pentru orice serviciu sau server gazduit pe o masina cu adresa IP privata din cadrul retelei departamentului. Pasii necesari pentru accesarea celor doua servicii de oriunde din Internet, prin SSH tunneling sunt:

Pas 1. Conectare si autentificare

Folosind clientul SSH putty salvat pe calculatorul dumneavoastra intr-un folder, rulati intr-un cmd din folderul respectiv urmatoarele doua comenzi, autentificandu-va cu numele de utilizator si parola dumneavoastra de pe www.cs.ubbcluj.ro (valabil pentru cadrele didactice, pentru studentii comenzile de conectare si autentificare sunt disponibile mai tarziu in acest tutorial):

Comenzile de mai sus, determina clientul de SSH (putty in acest caz) sa asculte local (pe localhost=calculatorul dumneavoastra) pe porturile 8080 si 80 si tot ce primeste pe aceste porturi sa trimita mai departe dupa conectare la adresa IP 172.30.0.8 pe porturile 8080, respectiv 80.

Observatii:

  • Recomandabil ca folderul unde este localizat executabilul putty sa fie pus in variabila de mediu PATH pentru a putea fi rulat usor de oriunde;
  • Comenzile de mai sus functioneaza (cu mici ajustari la parametrii) cu orice client de SSH, nu numai cu putty, indiferent de sistemul de operare al utilizatorului.

Pas 2. Accesarea propriu-zisă a serviciilor

Dupa conectarea si autentificarea cu succes de la pasul 1, pastrand conexiunile putty deschise, cele doua servicii sunt disponibile in browserul dumneavoastra la adresele:

http://localhost:8080
http://localhost/testlink
Observatii:

  • Daca se doreste doar folosirea individuala a Jenkins sau Testlink, se poate rula individual doar una dintre comenziile putty de la pasul 1;
  • E posibil ca porturile 80 sau 8080 pe calculatorul dumneavoastra local sa fie ocupate de alte procese (alte servere Web, diversi antivirusi, Skype, etc), se pot alege alte porturi, nu e obligatoriu ca portul local sa fie acelasi cu portul pe care ruleaza serviciul pe masina care doreste a fi accesata.

Studentii la pasul 1 trebuie sa se autentifice pe serverul www.scs.ubbcluj.ro, SSH-ul din exterior fiind deschis pentru studenti pe portul 8937. Pentru studenti, cele doua comenzi putty arata in modul urmator:

La pasul 2, URL-urile de conectare pentru studenti sunt identice (daca nu este necesara modificarea portului local).

Va rog sa-mi semnalati orice eroare, inexactitate sau posibila imbunatatire a acestui material prin e-mail la adresa darius.bufnea[at]ubbcluj.ro.

Darius Bufnea