Si të instaloni dhe siguroni phpMyAdmin me Nginx në një server Ubuntu 14.04
Prezantimi
Sistemet e menaxhimit të bazës së të dhënave relacionale si MySQL 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 Ubuntu 14.04. Ne do ta ndërtojmë këtë konfigurim në krye të serverit të internetit Nginx, i cili ka një profil të mirë të performancës dhe mund të përballojë ngarkesa të rënda më mirë se disa serverë të tjerë në internet.
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 Ubuntu 14.04. Ndër të tjera, kjo do t'ju ndihmojë të konfiguroni një përdorues jo-root me qasje sudo
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 LEMP (Linux, Nginx, MySQL dhe PHP) në serverin tuaj Ubuntu 14.04. Kjo është platforma që ne do të përdorim për të shërbyer ndërfaqen tonë phpMyAdmin (MySQL ë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 LEMP në serverin tuaj, ndiqni udhëzuesin tonë për instalimin e LEMP në Ubuntu 14.04.
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ë LEMP tashmë të vendosur, ne mund të fillojmë menjëherë me instalimin e softuerit phpMyAdmin. Kjo është e disponueshme brenda depove të paracaktuara të Ubuntu, kështu që procesi i instalimit është i thjeshtë.
Së pari, përditësoni indeksin lokal të paketës së serverit për t'u siguruar që ai ka një grup të ri referencash për paketat e disponueshme. Më pas, ne mund të përdorim mjetet e paketimit apt
për të hequr softuerin nga depot dhe për ta instaluar atë në sistemin tonë:
sudo apt-get update
sudo apt-get install phpmyadmin
Gjatë instalimit, do t'ju kërkohet disa informacione. Do t'ju pyesë se cilin server ueb dëshironi të konfiguroni automatikisht softuerin. Meqenëse Nginx, serveri në internet që ne përdorim, nuk është një nga opsionet e disponueshme, thjesht mund të shtypni TAB për të anashkaluar këtë kërkesë.
Prompti tjetër do t'ju pyesë nëse dëshironi që dbconfig-common
të konfigurojë një bazë të dhënash për t'u përdorur nga phpmyadmin. Zgjidhni \Po për të vazhduar.
Ju do të duhet të vendosni fjalëkalimin administrativ të bazës së të dhënave që keni konfiguruar gjatë instalimit të MySQL për të lejuar këto ndryshime. Më pas, do t'ju kërkohet të zgjidhni dhe konfirmoni një fjalëkalim për një bazë të dhënash të re që do të mbajë të dhënat e vetë phpMyAdmin.
Instalimi tani do të përfundojë. Që serveri i uebit Nginx të gjejë dhe të shërbejë saktë skedarët phpMyAdmin, thjesht duhet të krijojmë një lidhje simbolike nga skedarët e instalimit në direktorinë tonë rrënjësore të dokumentit Nginx duke shtypur këtë:
sudo ln -s /usr/share/phpmyadmin /usr/share/nginx/html
Një artikull i fundit që duhet të adresojmë është aktivizimi i modulit PHP mcrypt
, tek i cili mbështetet phpMyAdmin. Kjo u instalua me phpMyAdmin, kështu që ne vetëm duhet ta aktivizojmë dhe rinisim procesorin tonë PHP:
sudo php5enmod mcrypt
sudo service php5-fpm restart
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 MySQL. Përdoruesi root
dhe fjalëkalimi administrativ MySQL është një zgjedhje e mirë për të filluar. Më pas do të keni mundësi të përdorni ndërfaqen administrative:
Klikoni përreth për t'u njohur me ndërfaqen. Në seksionin tjetër, ne do të ndërmarrim hapa për të siguruar ndërfaqen tonë të re.
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 internetit Nginx të gjejë dhe të shërbejë skedarët tanë phpMyAdmin, ne krijuam një lidhje simbolike nga direktoria phpMyAdmin në rrënjën e dokumentit tonë në një hap të mëparshëm.
Për të ndryshuar URL-në ku mund të aksesohet ndërfaqja jonë phpMyAdmin, thjesht duhet të riemërtoni lidhjen simbolike. Kaloni në direktorinë rrënjë të dokumentit Nginx për të marrë një ide më të mirë të asaj që po bëjmë:
cd /usr/share/nginx/html
ls -l
total 8
-rw-r--r-- 1 root root 537 Mar 4 06:46 50x.html
-rw-r--r-- 1 root root 612 Mar 4 06:46 index.html
lrwxrwxrwx 1 root root 21 Aug 6 10:50 phpmyadmin -> /usr/share/phpmyadmin
Siç mund ta shihni, ne kemi një lidhje simbolike të quajtur phpmyadmin
në këtë direktori. Ne mund ta ndryshojmë këtë emër lidhjeje në çfarëdo që dëshirojmë. Kjo do të ndryshojë vendndodhjen ku phpMyAdmin mund të aksesohet nga një shfletues, gjë që mund të ndihmojë në fshehjen e pikës së hyrjes nga bots me kod të fortë.
Zgjidhni një emër që nuk tregon qëllimin e vendndodhjes. Në këtë udhëzues, ne do të emërtojmë vendndodhjen tonë të aksesit /nothingtosee
. Për ta arritur këtë, ne thjesht do të riemërtojmë lidhjen:
sudo mv phpmyadmin nothingtosee
ls -l
total 8
-rw-r--r-- 1 root root 537 Mar 4 06:46 50x.html
-rw-r--r-- 1 root root 612 Mar 4 06:46 index.html
lrwxrwxrwx 1 root root 21 Aug 6 10:50 nothingtosee -> /usr/share/phpmyadmin
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ë Nginx, e ofrojnë këtë aftësi në mënyrë origjinale. Do të na duhet vetëm të modifikojmë skedarin tonë të konfigurimit Nginx me detajet.
Përpara se ta bëjmë këtë, ne do të krijojmë një skedar fjalëkalimi që do të ruajë kredencialet tona të vërtetimit. Nginx kërkon që fjalëkalimet të kodohen duke përdorur funksionin crypt()
. Paketa OpenSSL, e cila duhet të instalohet tashmë në serverin tuaj, përfshin këtë funksionalitet.
Për të krijuar një fjalëkalim të koduar, shkruani:
openssl passwd
Do t'ju kërkohet të vendosni dhe konfirmoni fjalëkalimin që dëshironi të përdorni. Shërbimi më pas do të shfaqë një version të koduar të fjalëkalimit që do të duket diçka si kjo:
O5az.RSPzd.HE
Kopjojeni këtë vlerë, pasi do t'ju duhet ta ngjisni në skedarin e vërtetimit që do të krijojmë.
Tani, krijoni një skedar vërtetimi. Ne do ta quajmë këtë skedar pma_pass
dhe do ta vendosim në drejtorinë e konfigurimit Nginx:
sudo nano /etc/nginx/pma_pass
Brenda këtij skedari, thjesht duhet të specifikoni emrin e përdoruesit që dëshironi të përdorni, e ndjekur nga një dy pika (:), e ndjekur nga versioni i koduar i fjalëkalimit tuaj që keni marrë nga programi openssl passwd
.
Ne do të emërtojmë përdoruesin tonë demon
, por ju duhet të zgjidhni një emër përdoruesi tjetër. Skedari për këtë udhëzues duket si ky:
demo:O5az.RSPzd.HE
Ruani dhe mbyllni skedarin kur të keni mbaruar.
Tani, ne jemi gati të modifikojmë skedarin tonë të konfigurimit Nginx. Hapeni këtë skedar në redaktuesin tuaj të tekstit për të filluar:
sudo nano /etc/nginx/sites-available/default
Brenda këtij skedari, ne duhet të shtojmë një seksion të ri të vendndodhjes. Kjo do të synojë vendndodhjen që kemi zgjedhur për ndërfaqen tonë phpMyAdmin (ne kemi zgjedhur /nothingtosee
në këtë udhëzues).
Krijo këtë seksion brenda bllokut server
, por jashtë çdo blloku tjetër. Ne do të vendosim bllokun tonë të ri të vendndodhjes poshtë bllokut location /
në shembullin tonë:
server {
. . .
location / {
try_files $uri $uri/ =404;
}
location /nothingtosee {
}
. . .
}
Brenda këtij blloku, ne duhet të vendosim vlerën e një direktive të quajtur auth_basic
në një mesazh vërtetimi që kërkesa jonë do t'ua shfaqë përdoruesve. Ne nuk duam t'u tregojmë përdoruesve të paautentikuar atë që po mbrojmë, prandaj mos jepni detaje specifike. Ne thjesht do të përdorim \Admin Login në shembullin tonë.
Më pas, ne duhet të përdorim një direktivë të quajtur auth_basic_user_file
për të drejtuar serverin tonë të internetit te skedari i vërtetimit që kemi krijuar. Nginx do t'i kërkojë përdoruesit detajet e vërtetimit dhe do të kontrollojë që vlerat e dhëna përputhen me atë që gjen në skedarin e specifikuar.
Pasi të kemi përfunduar, skedari duhet të duket si ky:
server {
. . .
location / {
try_files $uri $uri/ =404;
}
location /nothingtosee {
auth_basic "Admin Login";
auth_basic_user_file /etc/nginx/pma_pass;
}
. . .
}
Ruani dhe mbyllni skedarin kur të keni mbaruar.
Për të zbatuar portën tonë të re të vërtetimit, duhet të rifillojmë serverin në internet:
sudo service nginx restart
Tani, nëse vizitojmë vendndodhjen tonë phpMyAdmin në shfletuesin tonë të internetit (mund t'ju duhet të pastroni cache-in tuaj ose të përdorni një sesion tjetër të shfletuesit nëse tashmë keni përdorur phpMyAdmin), duhet t'ju kërkohet emri i përdoruesit dhe fjalëkalimi që keni shtuar në pma_pass
:
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.