Si të instaloni dhe siguroni phpMyAdmin me Apache në një server CentOS 7


Prezantimi

Sistemet e menaxhimit të bazës së të dhënave relacionale si MySQL dhe MariaDB nevojiten për një pjesë të konsiderueshme të faqeve të internetit dhe aplikacioneve. Sidoqoftë, jo të gjithë përdoruesit ndihen rehat duke administruar të dhënat e tyre nga linja e komandës.

Për të zgjidhur këtë problem, u krijua një projekt i quajtur phpMyAdmin për të ofruar një alternativë në formën e një ndërfaqeje të menaxhimit të bazuar në ueb. Në këtë udhëzues, ne do të demonstrojmë se si të instalojmë dhe sigurojmë një konfigurim phpMyAdmin në një server CentOS 7. Ne do ta ndërtojmë këtë konfigurim në krye të serverit të internetit Apache, serveri më i popullarizuar i uebit në botë.

Parakushtet

Para se të fillojmë, ka disa kërkesa që duhet të zgjidhen.

Për t'u siguruar që keni një bazë solide për të ndërtuar këtë sistem, duhet të përdorni udhëzuesin tonë fillestar të konfigurimit të serverit për CentOS 7. Ndër të tjera, kjo do t'ju ndihmojë të konfiguroni një përdorues jo-root me sudo aksesi për komandat administrative.

Parakushti i dytë që duhet të plotësohet për të filluar në këtë udhëzues është të instaloni një stack LAMP (Linux, Apache, MariaDB dhe PHP) në serverin tuaj CentOS 7. Kjo është platforma që ne do të përdorim për të shërbyer ndërfaqen tonë phpMyAdmin (MariaDB është gjithashtu softueri i menaxhimit të bazës së të dhënave që ne dëshirojmë të menaxhojmë). Nëse nuk keni ende një instalim LAMP në serverin tuaj, ndiqni udhëzuesin tonë për instalimin e LAMP në CentOS 7.

Kur serveri juaj është në një gjendje që funksionon siç duhet pas ndjekjes së këtyre udhëzuesve, mund të vazhdoni me pjesën tjetër të kësaj faqeje.

Hapi i parë - Instaloni phpMyAdmin

Me platformën tonë LAMP tashmë të vendosur, ne mund të fillojmë menjëherë me instalimin e softuerit phpMyAdmin. Fatkeqësisht, phpMyAdmin nuk është i disponueshëm në depon e paracaktuar të CentOS 7.

Për të marrë paketat që na duhen, do të duhet të shtojmë një depo shtesë në sistemin tonë. Repo EPEL (Extra Packages për Enterprise Linux) përmban shumë paketa shtesë, duke përfshirë phpMyAdmin paketën që po kërkojmë.

Depoja EPEL mund të vihet në dispozicion të serverit tuaj duke instaluar një paketë të veçantë të quajtur epel-release. Kjo do të rikonfigurojë listën tuaj të depove dhe do t'ju japë akses në paketat EPEL.

Për të instaluar, thjesht shkruani:

sudo yum install epel-release

Tani që repoja EPEL është konfiguruar, mund të instaloni paketën phpMyAdmin duke përdorur sistemin e paketimit yum duke shtypur:

sudo yum install phpmyadmin

Instalimi tani do të përfundojë. Instalimi përfshinte një skedar konfigurimi Apache që tashmë është vendosur në vend. Do të na duhet ta modifikojmë pak këtë për ta bërë të funksionojë siç duhet për instalimin tonë.

Hapni skedarin në redaktuesin tuaj të tekstit tani në mënyrë që të mund të bëjmë disa ndryshime:

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

Brenda, ne shohim disa blloqe drejtorish me një logjikë të kushtëzuar për të shpjeguar politikën e aksesit për drejtorinë tonë. Ka dy drejtori të dallueshme që janë të përcaktuara, dhe brenda tyre, konfigurime që do të jenë të vlefshme si për Apache 2.2 ashtu edhe për Apache 2.4 (të cilin ne po ekzekutojmë).

Aktualisht, ky konfigurim është konfiguruar për të mohuar aksesin në çdo lidhje që nuk bëhet nga vetë serveri. Meqenëse po punojmë në serverin tonë nga distanca, duhet të modifikojmë disa rreshta për të specifikuar adresën IP të lidhjes suaj shtëpisë.

Ndrysho çdo rresht që lexon Kërkohet ip 127.0.0.1 ose Lejo që nga 127.0.0.1 t'i referohet adresës IP të lidhjes suaj të shtëpisë. Nëse keni nevojë për ndihmë për të gjetur adresën IP të lidhjes suaj të shtëpisë, shikoni seksionin tjetër. Duhet të ketë katër vendndodhje në skedar që duhet të ndryshohen:

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

Kur të keni mbaruar, rinisni serverin në internet Apache për të zbatuar modifikimet tuaja duke shtypur:

sudo systemctl restart httpd.service

Me këtë, instalimi ynë i phpMyAdmin është tani funksional. Për të hyrë në ndërfaqen, shkoni te emri i domenit të serverit tuaj ose adresa IP publike e ndjekur nga /phpMyAdmin, në shfletuesin tuaj të internetit:

http://server_domain_or_IP/phpMyAdmin

Për t'u identifikuar, përdorni një çift emër përdoruesi/fjalëkalim të një përdoruesi të vlefshëm MariaDB. Përdoruesi root dhe fjalëkalimi administrativ MariaDB është një zgjedhje e mirë për të filluar. Më pas do të keni mundësi të përdorni ndërfaqen administrative:

Gjeni adresën tuaj IP

Ju do të duhet të dini adresën IP të kompjuterit që po përdorni për të hyrë në bazat e të dhënave tuaja në mënyrë që të përfundoni hapin e mësipërm. Kjo është një masë paraprake sigurie në mënyrë që njerëzit e paautorizuar të mos mund të lidhen me serverin tuaj.

Shënim: Kjo nuk është adresa IP e VPS-së tuaj, është adresa IP e kompjuterit tuaj të shtëpisë ose të punës.

Mund të zbuloni se si ueb-i i madh e sheh adresën tuaj IP duke vizituar një nga këto sajte në shfletuesin tuaj të internetit:

  • Cila është adresa ime IP?
  • Çfarë është IP-ja ime?
  • Adresa ime IP

Krahasoni disa sajte të ndryshme dhe sigurohuni që të gjitha t'ju japin të njëjtën vlerë. Përdoreni këtë vlerë në skedarin e konfigurimit të mësipërm.

Hapi i dytë - Siguroni shembullin tuaj phpMyAdmin

Shembulli phpMyAdmin i instaluar në serverin tonë duhet të jetë plotësisht i përdorshëm në këtë pikë. Megjithatë, duke instaluar një ndërfaqe në internet, ne kemi ekspozuar sistemin tonë MySQL në botën e jashtme.

Edhe me ekranin e përfshirë të vërtetimit, ky është mjaft problem. Për shkak të popullaritetit të phpMyAdmin të kombinuar me sasinë e madhe të të dhënave që ofron akses, instalimet si këto janë objektiva të zakonshme për sulmuesit.

Ne do të zbatojmë dy strategji të thjeshta për të pakësuar shanset që instalimi ynë të jetë në shënjestër dhe të komprometohet. Ne do të ndryshojmë vendndodhjen e ndërfaqes nga /phpMyAdmin në diçka tjetër për të anashkaluar disa nga përpjekjet e automatizuara të bot-forcës brutale. Ne gjithashtu do të krijojmë një portë verifikimi shtesë, të nivelit të serverit në internet, e cila duhet të kalohet para se të shkojmë në ekranin e identifikimit të phpMyAdmin.

Ndryshimi i vendndodhjes së aksesit të aplikacionit

Në mënyrë që serveri ynë i uebit Apache të punojë me phpMyAdmin, skedari ynë i konfigurimit phpMyAdmin Apache përdor një pseudonim për të treguar vendndodhjen e drejtorisë së skedarëve.

Për të ndryshuar URL-në ku mund të aksesohet ndërfaqja jonë phpMyAdmin, thjesht duhet të riemërtojmë pseudonimin. Hapni skedarin e konfigurimit të phpMyAdmin Apache tani:

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

Në krye të skedarit, do të shihni dy rreshta që duken kështu:

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

Këto dy rreshta janë pseudonimet tona, që do të thotë se nëse aksesojmë emrin e domenit ose adresën IP të faqes sonë, të ndjekur nga /phpMyAdmin ose /phpmyadmin, do të na shërbehet përmbajtja në /usr/share/phpMyAdmin.

Ne duam t'i çaktivizojmë këto pseudonime specifike pasi ato janë shënjestruar shumë nga robotët dhe përdoruesit me qëllim të keq. Në vend të kësaj, ne duhet të vendosim për pseudonimin tonë. Duhet të jetë e lehtë për t'u mbajtur mend, por jo e lehtë për t'u marrë me mend. Nuk duhet të tregojë qëllimin e vendndodhjes së URL-së. Në rastin tonë, ne do të shkojmë me /nothingtosee.

Për të zbatuar ndryshimet tona të synuara, duhet të heqim ose komentojmë linjat ekzistuese dhe të shtojmë tona:

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

Kur të keni mbaruar, ruani dhe mbyllni skedarin.

Për të zbatuar ndryshimet, rinisni shërbimin në internet:

sudo systemctl restart httpd.service

Tani, nëse shkoni në vendndodhjen e mëparshme të instalimit të phpMyAdmin, do të merrni një gabim 404:

http://server_domain_or_IP/phpMyAdmin

Sidoqoftë, ndërfaqja juaj phpMyAdmin do të jetë e disponueshme në vendndodhjen e re që kemi zgjedhur:

http://server_domain_or_IP/nothingtosee

Vendosja e një porte vërtetimi të serverit në internet

Tipari tjetër që donim për instalimin tonë ishte një kërkesë vërtetimi që një përdoruesi do t'i kërkohej të kalonte përpara se të shihte ndonjëherë ekranin e hyrjes në phpMyAdmin.

Për fat të mirë, shumica e serverëve të uebit, përfshirë Apache, e ofrojnë këtë aftësi në mënyrë origjinale. Do të na duhet vetëm të modifikojmë skedarin tonë të konfigurimit Apache për të përdorur një skedar autorizimi.

Hapni përsëri skedarin e konfigurimit phpMyAdmin Apache në redaktorin tuaj të tekstit:

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

Brenda bllokut të drejtorisë /usr/share/phpMyAdmin, por jashtë cilitdo prej blloqeve brenda, ne duhet të shtojmë një direktivë anashkaluese. Do të duket kështu:

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

Kjo do të na lejojë të specifikojmë detaje shtesë të konfigurimit në një skedar të quajtur .htaccess që ndodhet brenda vetë drejtorisë phpMyAdmin. Ne do ta përdorim këtë skedar për të konfiguruar vërtetimin e fjalëkalimit tonë.

Ruani dhe mbyllni skedarin kur të keni mbaruar.

Rinisni shërbimin në internet për të zbatuar këtë ndryshim:

sudo systemctl restart httpd.service

Krijoni një Skedar .htaccess

Tani që kemi direktivën e mbivendosjes në konfigurimin tonë, Apache do të kërkojë një skedar të quajtur .htaccess brenda drejtorisë /usr/share/phpMyAdmin. Nëse gjen një të tillë, do të përdorë direktivat e përfshira brenda për të plotësuar të dhënat e mëparshme të konfigurimit.

Hapi ynë tjetër është të krijojmë skedarin .htaccess brenda atij drejtorie. Përdorni redaktorin tuaj të tekstit për ta bërë këtë tani:

sudo nano /usr/share/phpMyAdmin/.htaccess

Brenda këtij skedari, duhet të fusim informacionin e mëposhtëm:

AuthType Basic
AuthName "Admin Login"
AuthUserFile /etc/httpd/pma_pass
Require valid-user

Le të shohim se çfarë do të thotë secila prej këtyre rreshtave:

  • AuthType Basic: Kjo linjë specifikon llojin e vërtetimit që po zbatojmë. 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 njohuri për atë që mbrohet.
  • AuthUserFile: Kjo cakton vendndodhjen e skedarit aktual të fjalëkalimit që do të përdoret për vërtetim. Kjo duhet të jetë jashtë drejtorive që janë duke u shërbyer. Ne do ta krijojmë këtë skedar brenda një momenti.
  • 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 futjen e këtij informacioni, ruajeni dhe mbyllni skedarin.

Krijoni skedarin e fjalëkalimit për vërtetim

Tani që kemi specifikuar vendndodhjen për skedarin tonë të fjalëkalimit nëpërmjet përdorimit të direktivës AuthUserFile në skedarin tonë .htaccess, duhet të krijojmë dhe të plotësojmë skedarin e fjalëkalimit.

Kjo mund të arrihet përmes përdorimit të një mjeti Apache të quajtur htpasswd. Ne thërrasim komandën duke ia kaluar vendndodhjen ku do të donim të krijonim skedarin dhe emrin e përdoruesit për të cilin do të dëshironim të futnim detajet e vërtetimit:

sudo htpasswd -c /etc/httpd/pma_pass username

Flamuri -c tregon se kjo do të krijojë një skedar fillestar. Vendndodhja e drejtorisë është shtegu dhe emri i skedarit që do të përdoren për skedarin. Emri i përdoruesit është përdoruesi i parë që dëshirojmë të shtojmë. Do t'ju kërkohet të vendosni dhe konfirmoni një fjalëkalim për përdoruesin.

Nëse dëshironi të shtoni përdorues të tjerë për të vërtetuar, mund të telefononi sërish të njëjtën komandë pa flamurin -c dhe me një emër përdoruesi të ri:

sudo htpasswd /etc/httpd/pma_pass seconduser

Me skedarin tonë të fjalëkalimit të krijuar, një portë vërtetimi është zbatuar dhe tani duhet të shohim një kërkesë fjalëkalimi herën tjetër që të vizitojmë faqen tonë:

http://server_domain_or_IP/nothingtosee

Pasi të futni kredencialet tuaja, do të çoheni në faqen normale të hyrjes në phpMyAdmin. Kjo shtresë e shtuar e mbrojtjes do t'ju ndihmojë t'i mbani regjistrat tuaj të MySQL të pastër nga përpjekjet e vërtetimit, përveç përfitimit të shtuar të sigurisë.

konkluzioni

Tani mund të menaxhoni bazat e të dhënave tuaja MySQL nga një ndërfaqe uebi mjaft e sigurt. Ky UI ekspozon shumicën e funksionalitetit që është i disponueshëm nga komanda MySQL. Mund të shikoni bazat e të dhënave dhe skemat, të ekzekutoni pyetje dhe të krijoni grupe dhe struktura të reja të dhënash.