Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Daca sunteti genul de om care isi ia laptopul in spate si ii place sa calatoreasca sau sa se plimbe prin oras sa stea la o cafea intr-un local si sa isi faca treaba remote cu siguranta v-ati pus cel putin o data intrebari legate de securitatea datelor care le transmiteti catre Internet si confidentialitatea informatiilor care le transmiteti pe porturi nesecurizate. Adevarul e ca in locurile publice orice om care detine cunostinte despre retele peste nivel mediu se poate descurca sa instaleze un sniffer pe un gateway sau o schema de routare prin care sa preia pachetele care se plimba prin retea.

Ca sa dau cateva exemple, toate mailurile care le trimiteti din Outlook sau alt client de mail sunt transmise pe portul 25, port nesecurizat, si implicit cineva cu un sniffer poate citi in clar textul transmis. La fel in cazul in care receptionati mesaje prin POP3, portul 110, totul se transmite in text clar care in cateva minute poate fi curatat de comenzile care tin de protocol iar rezultatul e mesajul acela confidential care nu ar fi trebuit sa il citeasca nimeni. La fel in cazul site-urilor web care comunica pe portul 80 care este, din nou, nesecurizat. Oare de cate ori v-ati conectat la contul de mail dintr-o retea publica? Sau de cate ori v-ati conectat intr-un cont de utilizator fara ca siteul sa ofere o conexiune securizata? Sunt convins ca s-a intamplat de foarte multe ori.

Situatiile de acest gen nu sunt discutate foarte des pentru ca in general serverele sunt securizate iar firmele de hosting nu se implica mai mult pentru ca nu e treaba lor. Mesajele sunt interceptate cel mai des la client, deci problema este a clientului. Oricum, indiferent de situatie sau aria de responsabilitate, cert e ca zilnic suntem expusi pericolului interceptarii mesajelor.

Cea mai simpla solutie care poate fi pusa in practica de orice persoana care foloseste Linux/UN*X ca sistem de operare pentru desktop/notebook este utilizarea comenzii „ssh” si un cont SSH pe un server Linux securizat. Folosind un cont SSH putem crea o conexiune securizata intre sistemul local si serverul SSH care apoi va transmite mai departe pachetele catre serverul final.

Ca sa luam un exemplu practic, sa zicem ca trebuie sa intram pe un server IRC pentru a discuta cu cineva. Serverul la care trebuie sa se conecteze clientul IRC este irc.ubuntu.com iar portul 8001. Daca ne conectam direct la server se va crea o conexiune nesecurizata in care datele sunt transmise in clar. Pentru a transmite datele intr-un mod securizat dincolo de reteaua in care suntem, folosim contul SSH care il avem pe serverul exemplu.ro executand urmatoarea comanda:

[root@localhost ~]# ssh -f -L 1337:irc.ubuntu.com:8001 -N [email protected]

Comanda de mai sus va deschide local portul 1337 care va fi un punct de legatura pentru comunicarea securizata intre sistemul local si serverul SSH de pe hostul exemplu.ro. Parametrul „-f” ii spune comenzii ca portul trebuie deschis iar apoi comanda va rula in background. Mai departe va trebui sa configuram clientul IRC sa se conecteze la serverul 127.0.0.1 (adresa locala) pe portul 1337. Cererea de conexiune va fi transmisa serverului irc.ubuntu.com catre portul 8001 cu diferenta ca serverul exemplu.ro va fi folosit pe post de intermediar si va cripta intreaga informatie care o vom transmite din reteaua locala.

Aceeasi solutie poate fi aplicata si in cazul in care dorim sa trimitem un mesaj email. Va trebui sa cream un nou tunel de comunicare, tunel care va prelua pachetele de pe un port local, le va trimite securizat catre serverul SSH care le va transmite mai departe serverului SMTP care il folosim in mod normal. Pentru o astfel de conexiune vom folosi urmatoarea comanda:

[root@localhost ~]# ssh -f -L 2525:mail.exemplu.ro:25 -N [email protected]

Acum mai trebuie sa configuram clientul de mail sa foloseasca ca serverul SMTP adresa 127.0.0.1 iar ca port 2525, portul care l-am folosit pentru tunel.

Astfel, folosind un cont SSH de pe un server securizat si Linux ca sistem de operare ne putem asigura ca oriunde am fi si oricat ar fi de urmarit traficul din reteaua in care suntem vom putea comunica in siguranta fara a ne face griji ca informatia ar putea fi interceptata de persoanele curioase.

Un inconvenient al acestei metode este ca nu poate functiona ca un proxy la nivel de protocol sau aplicatie ci doar la nivel de conexiune. De exemplu, putem face ca orice conexiune pe hostul local pe portul 1234 sa fie transmisa catre un anumit IP pe portul 25, SMTP, dar nu putem face ca toate cererile pentru porturi SMTP sa fie transmise prima data in mod securizat serverului SSH pentru ca apoi sa fie transmise la destinate. Totusi, cu putina organizare se poate face o lista de tunele pentru aplicatiile importante care le folosim in fiecare zi.

Linux

2 Responses so far.

  1. AlexJ says:

    E ok ca o soluție quick and simple… but why not user a VPN? Overheadul este comparabil dar cu un VPN nu ai nevoie neapărat de Linux pe client și este și mai usor de folosit.

  2. admin says:

    Da. Se poate si cu VPN. Eu folosesc tunele cand e cazul pentru ca sunt pus prea rar in situatii de genul asta, deci nu are sens sa fac un VPN care sa stea in stand by pana cand am nevoie de el. Oricum, pentru cineva care se plimba des prin retele nesigure VPN-ul e intr-adevar o solutie buna.