Si të instaloni dhe siguroni phpMyAdmin në Ubuntu 18.04
Prezantimi
Ndërsa shumë përdorues kanë nevojë për funksionalitetin e një sistemi të menaxhimit të bazës së të dhënave si MySQL, ata mund të mos ndihen rehat duke bashkëvepruar me sistemin vetëm nga klienti i linjës së komandës MySQL.
phpMyAdmin u krijua në mënyrë që përdoruesit të mund të ndërveprojnë me MySQL përmes një ndërfaqe në internet. Në këtë udhëzues, ne do të diskutojmë se si të instaloni dhe siguroni phpMyAdmin në mënyrë që ta përdorni me siguri për të menaxhuar bazat e të dhënave tuaja në një sistem Ubuntu 18.04.
Parakushtet
Për të përfunduar këtë tutorial, do t'ju duhet sa më poshtë:
- Një server që ekzekuton Ubuntu 18.04. Ky server duhet të ketë një përdorues jo-root administrativ me privilegje
sudo
, si dhe një mur zjarri të konfiguruar me UFW. Për ta konfiguruar këtë, ndiqni udhëzuesin tonë fillestar të konfigurimit të serverit për Ubuntu 18.04. - Një pirg LAMP i instaluar në serverin tuaj. Ju mund të ndiqni këtë udhëzues për instalimin e një rafte LAMP në Ubuntu 18.04 për ta konfiguruar këtë.
Së fundi, ka konsiderata të rëndësishme të sigurisë kur përdorni softuer si phpMyAdmin, pasi ai:
- Komunikon drejtpërdrejt me instalimin tuaj MySQL
- Trajton vërtetimin duke përdorur kredencialet MySQL
- Ekzekuton dhe kthen rezultate për pyetje arbitrare SQL
Për këto arsye, dhe për shkak se është një aplikacion PHP i përhapur gjerësisht i cili shpesh synohet për sulm, nuk duhet të ekzekutoni kurrë phpMyAdmin në sisteme të largëta përmes një lidhjeje të thjeshtë HTTP. Nëse nuk keni një domen ekzistues të konfiguruar me një certifikatë SSL/TLS, mund të ndiqni këtë udhëzues për konfigurimin e një hosti virtual Apache.
Pasi të keni mbaruar me këto hapa, jeni gati të filloni me këtë udhëzues.
Hapi 1 - Instalimi i phpMyAdmin
Për të filluar, ne do të instalojmë phpMyAdmin nga depot e paracaktuara të Ubuntu.
Së pari, përditësoni indeksin e paketës së serverit tuaj:
- sudo apt update
Më pas përdorni apt
për të tërhequr skedarët dhe për t'i instaluar ato në sistemin tuaj:
- sudo apt install phpmyadmin php-mbstring php-gettext
Kjo do t'ju bëjë disa pyetje në mënyrë që të konfiguroni saktë instalimin tuaj.
Paralajmërim: Kur të shfaqet kërkesa, \apache2 theksohet, por jo zgjidhet. Për të zgjedhur Apache, shtypni SPACE
, TAB
, më pas ENTER
.
Nëse nuk shtypni SPACE
për të zgjedhur Apache, instaluesi nuk do t'i lëvizë skedarët e nevojshëm gjatë instalimit.
- Për zgjedhjen e serverit, zgjidhni
apache2
- Zgjidh
Po
kur pyetet nëse do të përdoretdbconfig-common
për të konfiguruar bazën e të dhënave - Më pas do t'ju kërkohet të zgjidhni dhe konfirmoni një fjalëkalim të aplikacionit MySQL për phpMyAdmin
Procesi i instalimit shton skedarin e konfigurimit phpMyAdmin Apache në drejtorinë /etc/apache2/conf-enabled/
, ku lexohet automatikisht. E vetmja gjë që duhet të bëni është të aktivizoni në mënyrë eksplicite shtesën PHP mbstring
, të cilën mund ta bëni duke shtypur:
- sudo phpenmod mbstring
Më pas, rinisni Apache që ndryshimet tuaja të njihen:
- sudo systemctl restart apache2
phpMyAdmin tani është instaluar dhe konfiguruar. Megjithatë, përpara se të mund të identifikoheni dhe të filloni të ndërveproni me bazat e të dhënave tuaja MySQL, do t'ju duhet të siguroheni që përdoruesit tuaj të MySQL të kenë privilegjet e kërkuara për të bashkëvepruar me programin.
Hapi 2 - Rregullimi i vërtetimit dhe privilegjeve të përdoruesit
Kur keni instaluar phpMyAdmin në serverin tuaj, ai krijoi automatikisht një përdorues të bazës së të dhënave të quajtur phpmyadmin
i cili kryen disa procese themelore për programin. Në vend që të identifikoheni si ky përdorues me fjalëkalimin administrativ që keni vendosur gjatë instalimit, rekomandohet që të identifikoheni ose si përdoruesi juaj root MySQL ose si përdorues i dedikuar për menaxhimin e bazave të të dhënave përmes ndërfaqes phpMyAdmin.
Konfigurimi i aksesit të fjalëkalimit për llogarinë rrënjësore MySQL
Në sistemet Ubuntu që ekzekutojnë MySQL 5.7 (dhe versionet e mëvonshme), përdoruesi root MySQL është caktuar të vërtetojë duke përdorur shtojcën auth_socket
si parazgjedhje dhe jo me një fjalëkalim. Kjo lejon një siguri dhe përdorshmëri më të madhe në shumë raste, por gjithashtu mund t'i komplikojë gjërat kur ju duhet të lejoni një program të jashtëm - si phpMyAdmin - të hyjë te përdoruesi.
Në mënyrë që të identifikoheni në phpMyAdmin si përdoruesi juaj root MySQL, do t'ju duhet të ndërroni metodën e tij të vërtetimit nga auth_socket
në mysql_native_password
nëse nuk e keni' nuk e kam bërë tashmë. Për ta bërë këtë, hapni kërkesën MySQL nga terminali juaj:
- sudo mysql
Më pas, kontrolloni se cilën metodë vërtetimi përdor secila prej llogarive tuaja të përdoruesve MySQL me komandën e mëposhtme:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
Output+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | mysql_native_password | localhost |
| phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)
Në këtë shembull, përdoruesi root në fakt vërteton duke përdorur shtojcën auth_socket
. Për të konfiguruar llogarinë root për të vërtetuar me një fjalëkalim, ekzekutoni komandën e mëposhtme ALTER USER
. Sigurohuni që të ndryshoni fjalëkalimin
në një fjalëkalim të fortë sipas zgjedhjes suaj:
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Më pas, ekzekutoni FLUSH PRIVILEGES
që i thotë serverit të ringarkojë tabelat e granteve dhe të vërë në fuqi ndryshimet tuaja të reja:
- FLUSH PRIVILEGES;
Kontrolloni përsëri metodat e vërtetimit të përdorura nga secili prej përdoruesve tuaj për të konfirmuar që root nuk vërtetohet më duke përdorur shtesën auth_socket
:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
Output+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | mysql_native_password | localhost |
| phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)
Ky dalje tregon se përdoruesi root do të vërtetojë duke përdorur një fjalëkalim. Tani mund të identifikoheni në ndërfaqen phpMyAdmin si përdoruesi juaj root me fjalëkalimin që i keni vendosur këtu.
Konfigurimi i aksesit të fjalëkalimit për një përdorues të dedikuar MySQL
Përndryshe, disa mund të zbulojnë se i përshtatet më mirë rrjedhës së tyre të punës të lidhen me phpMyAdmin me një përdorues të dedikuar. Për ta bërë këtë, hapni edhe një herë guaskën MySQL:
- sudo mysql
Shënim: Nëse keni të aktivizuar vërtetimin e fjalëkalimit, siç përshkruhet në seksionin e mëparshëm, do t'ju duhet të përdorni një komandë tjetër për të hyrë në guaskën MySQL. Më poshtë do të ekzekutojë klientin tuaj MySQL me privilegje të rregullta përdoruesi dhe ju do të fitoni privilegje administratori brenda bazës së të dhënave vetëm duke vërtetuar:
- mysql -u root -p
Nga atje, krijoni një përdorues të ri dhe jepini atij një fjalëkalim të fortë:
- CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
Pastaj, jepni përdoruesit tuaj të ri privilegjet e duhura. Për shembull, ju mund t'i jepni privilegjet e përdoruesit për të gjitha tabelat brenda bazës së të dhënave, si dhe fuqinë për të shtuar, ndryshuar dhe hequr privilegjet e përdoruesit, me këtë komandë:
- GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;
Pas kësaj, dilni nga guaska MySQL:
- exit
Tani mund të hyni në ndërfaqen e uebit duke vizituar emrin e domenit të serverit tuaj ose adresën IP publike të ndjekur nga /phpmyadmin
:
http://your_domain_or_IP/phpmyadmin
Hyni në ndërfaqe, ose si root ose me emrin e ri të përdoruesit dhe fjalëkalimin që sapo keni konfiguruar.
Kur të identifikoheni, do të çoheni te ndërfaqja e përdoruesit phpMyAdmin:
Tani që jeni në gjendje të lidheni dhe të ndërveproni me phpMyAdmin, gjithçka që mbetet për të bërë është të forconi sigurinë e sistemit tuaj për ta mbrojtur atë nga sulmuesit.
Hapi 3 - Sigurimi i shembullit tuaj phpMyAdmin
Për shkak të përhapjes së tij, phpMyAdmin është një objektiv popullor për sulmuesit, dhe ju duhet të bëni kujdes të shtuar për të parandaluar aksesin e paautorizuar. Një nga mënyrat më të lehta për ta bërë këtë është të vendosni një portë përpara të gjithë aplikacionit duke përdorur funksionet e autentifikimit dhe autorizimit të integruar .htaccess
të Apache.
Për ta bërë këtë, fillimisht duhet të aktivizoni përdorimin e zëvendësimeve të skedarit .htaccess
duke redaktuar skedarin tuaj të konfigurimit Apache.
Përdorni redaktuesin tuaj të preferuar të tekstit për të redaktuar skedarin e lidhur që është vendosur në drejtorinë tuaj të konfigurimit Apache. Ky shembull përdor nano
:
- sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Shtoni një direktivë AllowOverride All
brenda seksionit
të skedarit të konfigurimit, si kjo:
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .
Kur të keni shtuar këtë rresht, ruajeni dhe mbyllni skedarin. Nëse keni përdorur nano
për të redaktuar skedarin, bëjeni këtë duke shtypur CTRL + X
, Y
dhe më pas ENTER
.
Për të zbatuar ndryshimet që keni bërë, rinisni Apache:
- sudo systemctl restart apache2
Tani që keni aktivizuar përdorimin e .htaccess
për aplikacionin tuaj, ju duhet të krijoni një skedar .htaccess
për të zbatuar njëfarë sigurie.
Në mënyrë që kjo të jetë e suksesshme, skedari duhet të krijohet brenda drejtorisë së aplikacionit. Ju mund të krijoni skedarin e nevojshëm dhe ta hapni atë në redaktuesin tuaj të tekstit me privilegje rrënjësore duke shtypur:
- sudo nano /usr/share/phpmyadmin/.htaccess
Brenda këtij skedari, shkruani informacionin e mëposhtëm:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Ja çfarë kuptimi ka secila prej këtyre rreshtave:
AuthType Basic
: Kjo linjë specifikon llojin e vërtetimit që po zbatoni. Ky lloj do të zbatojë vërtetimin e fjalëkalimit duke përdorur një skedar fjalëkalimi.AuthName
: Kjo vendos mesazhin për kutinë e dialogut të vërtetimit. Ju duhet ta mbani këtë të përgjithshme në mënyrë që përdoruesit e paautorizuar të mos marrin asnjë informacion rreth asaj që mbrohet.AuthUserFile
: Kjo cakton vendndodhjen e skedarit të fjalëkalimit që do të përdoret për vërtetim. Kjo duhet të jetë jashtë drejtorive që janë duke u shërbyer. Do ta krijojmë këtë skedar së shpejti.Kërkoni përdorues të vlefshëm
: Kjo specifikon që vetëm përdoruesit e vërtetuar duhet të kenë akses në këtë burim. Kjo është ajo që në fakt ndalon përdoruesit e paautorizuar të hyjnë.
Kur të keni mbaruar, ruani dhe mbyllni skedarin.
Vendndodhja që zgjodhët për skedarin tuaj të fjalëkalimit ishte /etc/phpmyadmin/.htpasswd
. Tani mund ta krijoni këtë skedar dhe ta kaloni atë një përdorues fillestar me mjetin htpasswd
:
- sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
Do t'ju kërkohet të zgjidhni dhe konfirmoni një fjalëkalim për përdoruesin që po krijoni. Më pas, skedari krijohet me fjalëkalimin e hashuar që keni futur.
Nëse dëshironi të futni një përdorues shtesë, duhet ta bëni këtë pa flamurin -c
, si kjo:
- sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser
Tani, kur të hyni në nëndrejtorinë tuaj phpMyAdmin, do t'ju kërkohet për emrin dhe fjalëkalimin shtesë të llogarisë që sapo keni konfiguruar:
https://domain_name_or_IP/phpmyadmin
Pasi të keni hyrë në vërtetimin e Apache, do të çoheni në faqen e rregullt të vërtetimit të phpMyAdmin për të futur kredencialet tuaja MySQL. Ky konfigurim shton një shtresë shtesë sigurie, e cila është e dëshirueshme pasi phpMyAdmin ka vuajtur nga dobësi në të kaluarën.
konkluzioni
Tani duhet ta keni phpMyAdmin të konfiguruar dhe gati për t'u përdorur në serverin tuaj Ubuntu 18.04. Duke përdorur këtë ndërfaqe, ju mund të krijoni lehtësisht baza të të dhënave, përdorues, tabela, etj., dhe të kryeni operacionet e zakonshme si fshirja dhe modifikimi i strukturave dhe të dhënave.