Introducere
În timp ce mulți utilizatori au nevoie de funcționalitatea unui sistem de management al bazelor de date cum este MySQL, ei ar putea să nu se simtă comod interacționând doar cu MySQL.
phpMyAdmin a fost creat pentru ca utilizatorii să interacționeze cu MySQL prin intermediul unei interfețe web. În acest articol vom discuta despre cum putem instala și securiza phpMyAdmin pentru a-l putea folosi în siguranță să vă gestionați bazele de date de pe sistemul Ubuntu 16.04.
Condiție prealabilă
Înainte de a începe cu acest ghid, trebuie să aveți câțiva pași de bază finalizați.
Pentru început vom presupune că folosiți un utilizator non-root cu drepturi sudo, așa cum este descris în pașii 1-4 din ghidul setarea inițială a server-ului pentru Ubuntu 16.04.
De asemenea, vom presupune că ați finalizat instalarea LAMP (Linux, Apache, MySQL și PHP) pe server-ul cu Ubuntu 16.04. Dacă aceasta nu este finalizată încă, puteți urma ghidul de instalare a grupului LAMP pe Ubuntu 16.04.
În cele din urmă, există considerații importante de securitate atunci când se utilizează software-ul ca phpMyAdmin, deoarece:
- Comunică direct cu instalarea MySQL
- Se ocupă de autentificare folosind acreditări MySQL
- Execută și returnează rezultate pentru interogări arbitrare SQL
Din aceste motive, dar și pentru că aplicația PHP este folosită la scară largă fiind în mod frecvent ținta atacurilor, așa că nu ar trebui să rulați phpMyAdmin de la distanță printr-o conexiune HTTP simplă.
Din momentul în care ați finalizat acești pași, sunteți pregătiți să începeți acest ghid.
Pasul Unu – Instalarea phpMyAdmin
Pentru a începe, puteți instala phpMyAdmin din arhiva implicită a Ubuntu.
Putem face acest lucru actualizând indexul pachetului local și apoi folosind sistemul apt pentru a trage fișierele și a le instala pe sistemul nostru:
sudo apt-get update
sudo apt-get install phpmyadmin php-mbstring php-gettext
Acesta vă va pune câteva întrebări pentru a putea configura instalarea corect.
Atenție: Când apar primele semne, apache2 este subliniat dar nu este selectat. Dacă nu apăsați tasta Space pentru a selecta Apache, nu se vor muta fișierele necesare în timpul instalării.
Apăsați Space, Tab și apoi Enter pentru a selecta Apache.
- Pentru a selecta server-ul, alegeți apache2.
- Selectați yes când sunteți întrebați dacă folosiți dbconfig-common pentru a configura baza de date.
- Vi se va cere parola administratorului pentru baza de date.
- Vi se va cere să alegeți și să confirmați o parolă pentru aplicația phpMyAdmin.
Procesul de instalare adaugă fișierele de configurare Apache phpMyAdmin în directorul /etc/apache2/conf-enabled/, unde este citit în mod automat.
Singurul lucru pe care trebuie să îl faceți este să activați extensiile PHP mcrypt și mbstring, lucru care se poate face tastând:
sudo phpenmod mcrypt
sudo phpenmod mbstring
După aceea, va trebui să reporniți Apache pentru ca modificările să fie recunoscute:
sudo systemctl restart apache2
Puteți accesa interfața web vizitând numele domeniului sau adresa IP publică urmată de /phpmyadmin:
https://domain_name_or_IP/phpmyadmin
Vă puteți loga în interfață folosind numele de utilizator root și parola administrativă pe care ați setat-o în timpul instalării MySQL.
Când vă logați, o să vedeți interfața utilizatorului care va arăta ceva de genul:
Pasul Doi – Securizarea phpMyAdmin
O să fiți capabili să aveți interfața phpMyAdmin funcțională foarte ușor. În orice caz, încă nu am terminat.
Datorită răspândirii sale, phpMyAdmin este o țintă frecventă a atacatorilor. Va trebui să parcurgem câțiva pași în plus pentru a preveni accesul neautorizat.
Una dintre cele mai ușoare modalități de a face acest lucru este să plasăm o poartă de acces în fața întregii aplicații. Putem face acest lucru folosind utilitățile de autentificare și autorizare Apache built-in .htaccess.
Configurarea Apache pentru a permite suprascrierea .htaccess
În primul rând, trebuie să permiteți utilizarea fișierului .htaccess prin editarea fișierului de configurare Apache.
O să edităm link-ul fișierului care a fost poziționat în directorul de configurare Apache:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Va trebui să adăugăm instrucțiunea AllowOverride All în cadrul <Directory /usr/share/phpmyadmin> secțiunea fișierului de configurare, ca acesta:
/etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .
Când ați adăugat această linie salvați și închideți fișierul.
Pentru a implementa schimbările făcute, reporniți Apache:
sudo systemctl restart apache2
Crearea unui fișier .htaccess
Acum că ați activat utilizarea .htaccess pentru aplicația dumneavoastră, va trebui să creați unul pentru implementarea securității.
Pentru ca acest lucru să aibă succes, fișierul trebuie să fie creat în directorul aplicației. Puteți crea fișierul necesar și îl puteți deschide în editorul nostru de text cu drepturi root, tastând:
sudo nano /usr/share/phpmyadmin/.htaccess
În acest fișier trebuie să introduceți următoarele informații:
/usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName „Restricted Files”
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Haideți să vedem ce înseamnă fiecare linie:
- AuthType Basic: Această linie specifică tipul de autentificare pe care îl aplicăm. Acest tip va implementa autentificarea cu parolă folosind un fișier parolă.
- AuthName: Aceasta stabilește mesajul care se regăsește în caseta de dialog în momentul autentificării. Trebuie să păstrați un mesaj generic astfel încât utilizatorii neautorizați să nu obțină informații despre ceea ce este protejat.
- AuthUserFile: Acesta setează locația fișierului parolă care va fi folosit pentru autentificare. Acesta va fi în afara directoarelor care sunt servite. Vom crea acest fișier în scurt timp.
- Require valid-user: Acesta specifică că doar utilizatorii autentificați vor avea acces la această resursă. Acesta practic oprește pătrunderea utilizatorilor neautorizați.
Când ați terminat, salvați și închideți.
Crearea fișierului .htpasswd pentru autentificare
Acum că ne-am specificat o locație pentru fișierul parolă prin utilizarea directivei AuthUserFile din fișierul .htaccess, avem nevoie să creăm acest fișier.
Avem nevoie de un pachet adițional pentru a finaliza acest proces. Îl putem instala din arhiva noastră implicită:
sudo apt-get install apache2-utils
După aceea vom avea serviciul htpasswd disponibil.
Locația pe care am selectat-o pentru fișierul parolă a fost „/etc/phpmyadmin/.htpasswd”. Să creăm acest fișier și să îi alocăm un utilizator inițial tastând:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
Vi se va solicita să selectați și să confirmați parola pentru utilizatorul pe care l-ați creat. După aceea, fișierul este creat cu parola hash pe care ați introdus-o.
Dacă doriți să adăugați încă un utilizator, puteți face acest lucru fără nota -c, în felul următor:
sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser
Acum când accesați subdirectorul phpMyAdmin, vi se va solicita numele contului suplimentar și parola pe care tocmai le-ați configurat:
https://domain_name_or_IP/phpmyadmin
După introducerea autentificării Apache, veți fi direcționat către pagina phpMyAdmin pentru a introduce și celelalte acreditări. Acesta va adăuga și alte măsuri de securitate, deoarece phpMyAdmin a avut vulnerabilități în trecut.
Concluzii
Acum aveți phpMyAdmin configurat și gata de utilizare pe server-ul dvs. Ubuntu 16.04. Folosind această interfață, puteți crea cu ușurință baze de date, utilizatori, tabele și să efectuați operații obișnuite ca ștergerea și modificarea structurii și a datelor.