Cum se instalează și se asigură phpMyAdmin cu Apache pe un server CentOS 7

Introducere

sistemele de gestionare a bazelor de date relaționale precum MySQL și MariaDB sunt necesare pentru o parte semnificativă a site-urilor web și a aplicațiilor. Cu toate acestea, nu toți utilizatorii se simt confortabil administrându-și datele din linia de comandă.

pentru a rezolva această problemă, a fost creat un proiect numit phpMyAdmin pentru a oferi o alternativă sub forma unei interfețe de management bazate pe web. În acest ghid, vom demonstra cum să instalați și să asigurați o configurație phpMyAdmin pe un server CentOS 7. Vom construi această configurare pe partea de sus a serverului web Apache, cel mai popular server web din lume.

cerințe preliminare

înainte de a începe, există câteva cerințe care trebuie rezolvate.

pentru a vă asigura că aveți o bază solidă pe care să construiți acest sistem, ar trebui să parcurgeți ghidul nostru inițial de configurare a serverului pentru CentOS 7. Printre altele, acest lucru vă va ajuta să configurați un utilizator non-root cu acces sudo pentru comenzi administrative.

a doua condiție care trebuie îndeplinită pentru a începe acest ghid este să instalați o stivă LAMP (Linux, Apache, MariaDB și PHP) pe serverul CentOS 7. Aceasta este platforma pe care o vom folosi pentru a servi interfața noastră phpMyAdmin (MariaDB este, de asemenea, software-ul de gestionare a bazelor de date pe care dorim să îl gestionăm). Dacă nu aveți încă o instalare LAMP pe serverul dvs., urmați tutorialul nostru despre instalarea LAMP pe CentOS 7.

când serverul dvs. funcționează corect după ce urmați aceste ghiduri, puteți continua cu restul acestei pagini.

pasul unu — instalați phpMyAdmin

cu platforma noastră LAMP deja în vigoare, putem începe imediat cu instalarea software-ului phpMyAdmin. Din păcate, phpMyAdmin nu este disponibil în depozitul implicit al CentOS 7.

pentru a obține pachetele de care avem nevoie, va trebui să adăugăm un repo suplimentar la sistemul nostru. EPEL repo (pachete suplimentare pentru Enterprise Linux) conține multe pachete suplimentare, inclusiv pachetul phpMyAdmin pe care îl căutăm.

depozitul EPEL poate fi pus la dispoziția serverului dvs. prin instalarea unui pachet special numit epel-release. Aceasta va reconfigura lista de depozite și vă va oferi acces la pachetele EPEL.

pentru a instala, trebuie doar să tastați:

sudo yum install epel-release

acum că EPEL repo este configurat, puteți instala pachetul phpMyAdmin utilizând sistemul de ambalare yum tastând:

sudo yum install phpmyadmin

instalarea se va finaliza acum. Instalarea a inclus un fișier de configurare Apache care a fost deja pus în aplicare. Va trebui să modificăm puțin acest lucru pentru ca acesta să funcționeze corect pentru instalarea noastră.

deschideți fișierul în editorul de text acum, astfel încât să putem face câteva modificări:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

în interior, vedem câteva blocuri de directoare cu o logică condiționată pentru a explica politica de acces pentru directorul nostru. Există două directoare distincte care sunt definite și, în cadrul acestora, configurații care vor fi valabile atât pentru Apache 2.2, cât și pentru Apache 2.4 (pe care îl rulăm).

în prezent, această configurare este configurată pentru a refuza accesul la orice conexiune care nu se face de la serverul însuși. Deoarece lucrăm la serverul nostru de la distanță, trebuie să modificăm câteva linii pentru a specifica adresa IP a conexiunii dvs. de acasă.

modificați toate liniile care citesc Require ip 127.0.0.1 sau Allow from 127.0.0.1 pentru a face referire la adresa IP a conexiunii dvs. de domiciliu. Dacă aveți nevoie de ajutor pentru a găsi adresa IP a conexiunii dvs. de acasă, consultați secțiunea următoare. Ar trebui să existe patru locații în fișier care trebuie modificate:

. . .Require ip your_workstation_IP_address. . .Allow from your_workstation_IP_address. . .Require ip your_workstation_IP_address. . .Allow from your_workstation_IP_address. . .

când ați terminat, reporniți serverul web Apache pentru a vă implementa modificările tastând:

sudo systemctl restart httpd.service

cu aceasta, instalarea noastră phpMyAdmin este acum operațională. Pentru a accesa interfața, accesați numele de domeniu sau adresa IP publică a serverului dvs. urmat de /phpMyAdmin, în browserul dvs. web:

http://server_domain_or_IP/phpMyAdmin

ecranul de conectare phpMyAdmin

pentru a vă conecta, utilizați o pereche de nume de utilizator/parolă a unui utilizator MariaDB valid. Utilizatorul root și parola administrativă MariaDB sunt o alegere bună pentru a începe. Apoi veți putea accesa interfața administrativă:

interfața de administrare phpMyAdmin

găsiți adresa IP

va trebui să cunoașteți adresa IP a computerului pe care îl utilizați pentru a accesa bazele de date pentru a finaliza pasul de mai sus. Aceasta este o măsură de precauție de securitate, astfel încât persoanele neautorizate să nu se poată conecta la serverul dvs.

Notă: Aceasta nu este adresa IP a VPS-ului dvs., este adresa IP a computerului de acasă sau de la serviciu.

puteți afla cum Web mai mare vede adresa IP vizitând unul dintre aceste site-uri în browser-ul web:

  • care este adresa mea IP?
  • care este IP-ul meu?
  • adresa mea IP

comparați câteva site-uri diferite și asigurați-vă că toate vă oferă aceeași valoare. Utilizați această valoare în fișierul de configurare de mai sus.

Pasul doi — asigurați-vă instanța phpMyAdmin

instanța phpMyAdmin instalată pe serverul nostru ar trebui să fie complet utilizabilă în acest moment. Cu toate acestea, prin instalarea unei interfețe web, ne-am expus sistemul MySQL la lumea exterioară.

chiar și cu ecranul de autentificare inclus, Aceasta este o problemă destul de mare. Datorită popularității phpMyAdmin combinate cu cantitatea mare de date la care oferă acces, instalații ca acestea sunt ținte comune pentru atacatori.

vom implementa două strategii simple pentru a diminua șansele ca instalarea noastră să fie vizată și compromisă. Vom schimba locația interfeței de la /phpMyAdmin la altceva pentru a evita unele dintre încercările automate de forță brută. De asemenea, vom crea un gateway suplimentar de autentificare la nivel de server web care trebuie trecut înainte de a ajunge chiar la ecranul de conectare phpMyAdmin.

Schimbarea locației de acces a aplicației

pentru ca serverul nostru web Apache să funcționeze cu phpMyAdmin, fișierul nostru de configurare Apache phpMyAdmin folosește un alias pentru a indica locația directorului fișierelor.

pentru a schimba adresa URL unde poate fi accesată interfața phpMyAdmin, trebuie doar să redenumim aliasul. Deschideți fișierul de configurare Apache phpMyAdmin acum:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

spre partea de sus a fișierului, veți vedea două linii care arată astfel:

Alias /phpMyAdmin /usr/share/phpMyAdminAlias /phpmyadmin /usr/share/phpMyAdmin

aceste două linii sunt pseudonimele noastre, ceea ce înseamnă că, dacă accesăm numele de domeniu sau adresa IP a site-ului nostru, urmate fie de /phpMyAdmin, fie de /phpmyadmin, vom primi conținutul la /usr/share/phpMyAdmin.

dorim să dezactivăm aceste pseudonime specifice, deoarece sunt puternic vizate de roboți și utilizatori rău intenționați. În schimb, ar trebui să decidem pe propriul nostru alias. Ar trebui să fie ușor de reținut, dar nu ușor de ghicit. Nu ar trebui să indice scopul locației URL. În cazul nostru, vom merge cu /nothingtosee.

pentru a aplica modificările intenționate, ar trebui să eliminăm sau să comentăm liniile existente și să adăugăm propriile noastre:

# Alias /phpMyAdmin /usr/share/phpMyAdmin# Alias /phpmyadmin /usr/share/phpMyAdminAlias /nothingtosee /usr/share/phpMyAdmin

când ați terminat, salvați și închideți fișierul.

pentru a implementa modificările, reporniți serviciul web:

sudo systemctl restart httpd.service

acum, dacă mergeți la locația anterioară a instalării phpMyAdmin, veți primi o eroare 404:

http://server_domain_or_IP/phpMyAdmin

phpMyAdmin 404 eroare

cu toate acestea, interfața dvs. phpMyAdmin va fi disponibilă în noua locație selectată:

http://server_domain_or_IP/nothingtosee

phpMyAdmin login screen

configurarea unei porți de autentificare a serverului Web

următoarea caracteristică pe care am dorit-o pentru instalarea noastră a fost o solicitare de autentificare pe care un utilizator ar trebui să o treacă înainte de a vedea vreodată ecranul de conectare phpMyAdmin.

din fericire, majoritatea serverelor web, inclusiv Apache, oferă această capacitate nativ. Va trebui doar să modificăm fișierul nostru de configurare Apache pentru a utiliza un fișier de autorizare.

deschideți din nou fișierul de configurare Apache phpMyAdmin în editorul de text:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

în blocul de directoare /usr/share/phpMyAdmin, dar în afara oricărui bloc din interior, trebuie să adăugăm o directivă de suprascriere. Va arăta astfel:

. . .<Directory /usr/share/phpMyAdmin/> AllowOverride All <IfModule mod_authz_core.c> . . .</Directory>. . .

acest lucru ne va permite să specificăm detalii suplimentare de configurare într-un fișier numit .htaccess situat în directorul phpMyAdmin în sine. Vom folosi acest fișier pentru a configura autentificarea parolei noastre.

Salvați și închideți fișierul când ați terminat.

reporniți serviciul web pentru a implementa această modificare:

sudo systemctl restart httpd.service

creați un .fișier htaccess

acum că avem Directiva de suprascriere în configurația noastră, Apache va căuta un fișier numit .htaccess în directorul /usr/share/phpMyAdmin. Dacă găsește unul, va folosi directivele conținute pentru a-și completa datele de configurare anterioare.

următorul nostru pas este să creăm fișierul .htaccess în acel director. Utilizați editorul de text pentru a face acest lucru acum:

sudo nano /usr/share/phpMyAdmin/.htaccess

în acest fișier, trebuie să introducem următoarele informații:

AuthType BasicAuthName "Admin Login"AuthUserFile /etc/httpd/pma_passRequire valid-user

să trecem peste ce înseamnă fiecare dintre aceste linii:

  • AuthType Basic: Această linie specifică tipul de autentificare pe care îl implementăm. Acest tip va implementa autentificarea parolei folosind un fișier de parolă.
  • AuthName: aceasta setează mesajul pentru caseta de dialog autentificare. Ar trebui să păstrați acest generic, astfel încât utilizatorii neautorizați să nu obțină cunoștințe despre ceea ce este protejat.
  • AuthUserFile: aceasta setează locația fișierului de parolă real care va fi utilizat pentru autentificare. Acest lucru ar trebui să fie în afara directoarelor care sunt servite. Vom crea acest fișier într-un moment.
  • necesită utilizator valid: Aceasta specifică faptul că numai utilizatorii autentificați ar trebui să aibă acces la această resursă. Aceasta este ceea ce oprește de fapt intrarea utilizatorilor neautorizați.

când ați terminat de introdus aceste informații, salvați și închideți fișierul.

creați fișierul de parolă pentru autentificare

acum că am specificat locația fișierului nostru de parolă prin utilizarea Directivei AuthUserFile în fișierul nostru .htaccess, trebuie să creăm și să populăm fișierul de parolă.

acest lucru poate fi realizat prin utilizarea unui utilitar Apache numit htpasswd. Invocăm comanda trecând-o locația în care am dori să creăm fișierul și numele de utilizator pentru care am dori să introducem detalii de autentificare:

sudo htpasswd -c /etc/httpd/pma_pass username

steagul -c indică faptul că acest lucru va crea un fișier inițial. Locația directorului este calea și numele fișierului care vor fi utilizate pentru fișier. Numele de utilizator este primul utilizator pe care am dori să îl adăugăm. Vi se va solicita să introduceți și să confirmați o parolă pentru utilizator.

dacă doriți să adăugați utilizatori suplimentari pentru a vă autentifica, puteți apela din nou aceeași comandă fără steagul -c și cu un nume de utilizator nou:

sudo htpasswd /etc/httpd/pma_pass seconduser

cu fișierul nostru de parolă creat, a fost implementat un gateway de autentificare și ar trebui să vedem acum o solicitare de parolă data viitoare când vizităm site-ul nostru:

http://server_domain_or_IP/nothingtosee

pagina de autentificare Apache

după ce introduceți acreditările, veți fi dus la pagina normală de conectare phpMyAdmin. Acest strat suplimentar de protecție vă va ajuta să păstrați jurnalele MySQL curate de încercările de autentificare, pe lângă beneficiul suplimentar de securitate.

concluzie

acum Puteți gestiona bazele de date MySQL dintr-o interfață web rezonabil sigură. Acest UI expune cea mai mare parte a funcționalității disponibile din promptul de comandă MySQL. Puteți vizualiza baze de date și schema, executa interogări, și de a crea noi seturi de date și structuri.

You might also like

Lasă un răspuns

Adresa ta de email nu va fi publicată.