Linux: Crearea unui tunel securizat pentru MySQL (#15)

Bine ați revenit, dragii mei greenhorn hackers!

Cu siguranță ați observat efortul meu continuu de a vă ajuta să dobândiți abilități de bază în Linux, cu privire la hacking. De aceea, în acest tutorial vreau să vă arăt cum să construiți un ,,tunel” securizat în MySQL.

Bineînțeles, tehnicile pe care le folosesc aici ar putea fi folosite și pentru alte aplicații, dar din moment ce MySQL este o aplicație critică pentru cele mai multe distribuții Linux și din moment ce sesiunile necriptate de pe serverul ce conține baze de date MySQL, poate fi ușor de infectat, iar informațiile confidențiale expuse, vom folosi un astfel de server ca exemplu.



Acest lucru nu înseamnă că un tunel criptat este sigur și nu poate fi spart. Ca orice altceva, poate fi spart, dar îl face de multe ori mai dificil. Dacă lăsăm datele necriptate, orice copil cu un sniffer poate arunca o privire în baza noastră de date.

Vom folosi SSH sau Secure Shell pentru a cripta traficul. Fiecare distribuție Linux are un server SSH și un client încorporat, spre deosebire de Windows, unde va trebui să descărcați un client SSH, cum ar fi PuTTY. Kali are OpenSSH, deci nu trebuie să descărcați și să instalați nimic pentru a construi o conexiune sigură între clientul nostru și server.

La fel ca multe alte aplicații în Linux, SSH funcționează pe o arhitectură tip server / client. Pentru a vă conecta cu succes, trebuie să aveți atât serverul, cât și clientul pornit.

Pasul 1: Deschidem Kali și pornim MySQL

Mboon! Să trecem la treabă. Deschidem Kali (în cazul meu și Ubuntu, deoarece lucrez atât de pe laptop cât și de pe pc la acest ghid) și pornim MySQL.

MySQL are capacitatea de a utiliza SSH, dar trebuie să îl configurați și să îl compilați pentru a face acest lucru. Deoarece configurația implicită MySQL, cum este cea de pe Kali, nu are SSH încorporat, trebuie să găsim o soluție pentru a utiliza SSH-ul încorporat în sistemul de operare și apoi să ne conectăm la MySQL. Acest lucru va crea un ,,tunel” criptat în baza noastră de date, astfel încât hackerii să nu poată vedea transmisiile noastre.



În exemplul nostru, vom conecta între două instalații Linux. V-am arătat cum să porniți MySQL, în tutorialul cu numărul 14.

  • mysqld_safe start

Acum, ne asigurăm că a pornit, prin verificarea proceselor și grep pentru mysql.

  • ps aux | grep mysql

Pasul 2: Generarea cheilor

Pentru ca SSH să-și creeze tunelul criptat, trebuie să genereze mai întâi o pereche de chei, o cheie privată și o cheie publică. Aceste două chei vor fi folosite pentru criptarea și apoi decriptarea traficului pe tunel. Putem face acest lucru tastând:

  • sshkeygen t rsa

 

După cum putem vedea, SSH a generat o pereche de chei de la care va putea genera tunelul nostru securizat. Am creat un utilizator numit “root” pe acest server pe care îl vom folosi pentru a ne conecta la această mașină.



Pasul 3: Pornim SSH

De la mașina client, ne putem conecta acum la serverul SSH tastând:

  • ssh -L3316:127.0.0.1:3306 root@192.168.100.3

Haideți să vedem ce face comanda de mai sus:

  • ssh este comanda clientului
  • -L3316 ascultă portul 3316
  • 127.0.0.1 este locația daemon-ului client SSH pe mașina client
  • 3306 este portul implicit MySQL unde se va găsi tunelul pe mașina server
  • root este userul sistemului de operare de pe server
  • 192.168.100.3 este adresa IP a serverului MySQL

Când executam această comandă, obținem o conexiune la mașină de la distanță pe contul root.

Ceea ce am făcut aici este să ne conectăm la daemon-ul clientului SSH pe sistemul nostru client, care apoi se conectează prin portul 3331 la serverul SSH, ce se conectează apoi la portul 3306 pentru a se conecta la MySQL.

Pasul4: Conectare securizată la MySQL

Acum, că suntem conectați în siguranță la serverul care conține baza de date MySQL, ne putem conecta acum la baza de date prin acest tunel. Avem un utilizator MySQL numit “root” (nu utilizatorul OS – ne-am conectat prin intermediul unui utilizator OS și ne conectăm la MySQL prin intermediul unui utilizator MySQL) pe acea bază de date. Hai să ne conectăm acum la contul utilizatorului respectiv.

  • mysql -u root -p

După cum puteți vedea mai sus, ne-am conectat cu succes la MySQL peste acest tunel! Tot traficul dintre noi și serverul bazei de date la distanță este criptat.



Pentru a ne asigura că am fost conectați la serverul de la distanță și nu la baza de date locală, am creat o bază de date pe serverul de la distanță numită “root”.

Să vizualizăm bazele de date prin comanda de la MySQL prompt (show databases;).

 

După cum puteți vedea, ne-am conectat la serverul cu baza de date, de la distanță. Știm lucrul acesta deoarece are denumirea de “root”.

Sper să găsiți aceste tutoriale fundamentale pentru Linux, cât mai interesante, deoarece ajută la consolidarea cunoștințelor voastre în domeniul hacking-ului. De exemplu, în viitorul apropiat, vă voi arăta cum să distrugeți acest tunel criptat, așa că reveniți, dragii mei green horn hackers!

Până data viitoare, să ne citim cu bine! 🙂

0 0 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments