Како да инсталирате и да го обезбедите phpMyAdmin со Apache на сервер CentOS 7


Вовед

Системите за управување со релациона база на податоци како MySQL и MariaDB се потребни за значителен дел од веб-страниците и апликациите. Сепак, не сите корисници се чувствуваат удобно да ги администрираат своите податоци од командната линија.

За да се реши овој проблем, беше креиран проект наречен phpMyAdmin со цел да се понуди алтернатива во форма на веб-базиран интерфејс за управување. Во ова упатство, ќе покажеме како да инсталирате и обезбедите конфигурација phpMyAdmin на серверот CentOS 7. Ќе го изградиме ова поставување на врвот на веб-серверот Apache, најпопуларниот веб-сервер во светот.

Предуслови

Пред да започнеме, има неколку барања што треба да се решат.

За да се осигурате дека имате цврста основа за да го изградите овој систем, треба да поминете низ нашиот првичен водич за поставување сервер за CentOS 7. Меѓу другото, ова ќе ве води низ поставувањето корисник без корен со sudo пристап за административни команди.

Вториот предуслов што мора да се исполни за да започнете со овој водич е да инсталирате стек LAMP (Linux, Apache, MariaDB и PHP) на вашиот CentOS 7 сервер. Ова е платформата што ќе ја користиме за да го опслужиме нашиот интерфејс phpMyAdmin (MariaDB е исто така софтвер за управување со базата на податоци со кој сакаме да управуваме). Ако сè уште немате инсталација на LAMP на вашиот сервер, следете го нашето упатство за инсталирање на LAMP на CentOS 7.

Кога вашиот сервер е во исправна состојба откако ќе ги следите овие водичи, можете да продолжите со остатокот од оваа страница.

Чекор еден - Инсталирајте phpMyAdmin

Со нашата платформа LAMP веќе поставена, можеме веднаш да започнеме со инсталирање на софтверот phpMyAdmin. За жал, phpMyAdmin не е достапен во стандардното складиште на CentOS 7.

За да ги добиеме пакетите што ни се потребни, ќе треба да додадеме дополнително складиште во нашиот систем. Репото EPEL (Extra Packages за Enterprise Linux) содржи многу дополнителни пакети, вклучувајќи го и phpMyAdmin пакет што го бараме.

Складиштето EPEL може да му биде достапно на вашиот сервер со инсталирање на специјален пакет наречен epel-release. Ова ќе ја реконфигурира вашата листа на складиште и ќе ви даде пристап до EPEL пакетите.

За да инсталирате, само напишете:

sudo yum install epel-release

Сега кога EPEL repo е конфигуриран, можете да го инсталирате пакетот phpMyAdmin користејќи го системот за пакување yum со внесување:

sudo yum install phpmyadmin

Инсталирањето сега ќе заврши. Инсталацијата вклучуваше конфигурациска датотека Apache која веќе е ставена на место. Ќе треба малку да го измениме ова за да работи правилно за нашата инсталација.

Отворете ја датотеката во вашиот уредувач на текст сега за да можеме да направиме неколку промени:

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

Внатре, гледаме некои блокови на директориуми со одредена условна логика за да се објасни политиката за пристап за нашиот директориум. Постојат два различни директориуми кои се дефинирани, а во рамките на нив, конфигурации кои ќе важат и за Apache 2.2 и Apache 2.4 (кој го работиме).

Во моментов, ова поставување е конфигурирано да го оневозможи пристапот до која било врска што не е направена од самиот сервер. Бидејќи работиме на нашиот сервер од далечина, треба да измениме некои линии за да ја одредиме IP адресата на вашата врска дома.

Променете ги сите линии што гласат Потребна е IP 127.0.0.1 или Дозволете од 127.0.0.1 да се однесува на IP адресата на вашата домашна врска. Ако ви треба помош за наоѓање на IP адресата на вашата домашна врска, проверете го следниот дел. Треба да има четири локации во датотеката што мора да се променат:

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

Кога ќе завршите, рестартирајте го веб-серверот Apache за да ги имплементирате вашите модификации со пишување:

sudo systemctl restart httpd.service

Со тоа, нашата инсталација на phpMyAdmin сега е оперативна. За да пристапите до интерфејсот, одете до името на доменот на вашиот сервер или јавната IP адреса проследено со /phpMyAdmin, во вашиот веб-прелистувач:

http://server_domain_or_IP/phpMyAdmin

За да се најавите, користете пар корисничко име/лозинка на валиден корисник на MariaDB. Корисникот root и административната лозинка на MariaDB е добар избор за почеток. Потоа ќе можете да пристапите до административниот интерфејс:

Најдете ја вашата IP адреса

Ќе треба да ја знаете IP адресата на компјутерот што го користите за пристап до вашите бази на податоци за да го завршите чекорот погоре. Ова е безбедносна мерка за да неовластени луѓе не можат да се поврзат со вашиот сервер.

Забелешка: ова не е IP адресата на вашиот VPS, тоа е IP адресата на вашиот домашен или работен компјутер.

Можете да дознаете како пошироката мрежа ја гледа вашата IP адреса со посета на една од овие страници во вашиот веб-прелистувач:

  • Која е мојата IP адреса?
  • Која е мојата IP адреса?
  • Моја IP адреса

Споредете неколку различни страници и уверете се дека сите ви даваат иста вредност. Користете ја оваа вредност во конфигурациската датотека погоре.

Чекор два - Обезбедете ја вашата phpMyAdmin пример

Инстанцата phpMyAdmin инсталирана на нашиот сервер треба да биде целосно употреблива во овој момент. Меѓутоа, со инсталирање на веб-интерфејс, го изложивме нашиот MySQL систем на надворешниот свет.

Дури и со вклучениот екран за автентикација, ова е доста проблем. Поради популарноста на phpMyAdmin во комбинација со големата количина на податоци до кои обезбедува пристап, инсталациите како овие се вообичаени цели за напаѓачите.

Ќе спроведеме две едноставни стратегии за да ги намалиме шансите нашата инсталација да биде насочена и компромитирана. Ќе ја смениме локацијата на интерфејсот од /phpMyAdmin на нешто друго за да се заобиколат некои од автоматизираните обиди за брутална сила на бот. Ние, исто така, ќе создадеме дополнителен портал за автентикација на ниво на веб-сервер кој мора да се помине пред дури и да стигнете до екранот за најавување на phpMyAdmin.

Промена на локацијата за пристап на апликацијата

За да може нашиот веб-сервер Apache да работи со phpMyAdmin, нашата конфигурациска датотека phpMyAdmin Apache користи псевдоним за да укаже на локацијата на директориумот на датотеките.

За да го промениме URL-то каде што може да се пристапи до нашиот интерфејс phpMyAdmin, едноставно треба да го преименуваме алијасот. Отворете ја конфигурациската датотека phpMyAdmin Apache сега:

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

Кон врвот на датотеката, ќе видите две линии кои изгледаат вака:

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

Овие две линии се наши псевдоними, што значи дека ако пристапиме до името на доменот или IP адресата на нашата страница, проследено со /phpMyAdmin или /phpmyadmin, ќе ни биде сервирана содржината на /usr/share/phpMyAdmin.

Сакаме да ги оневозможиме овие специфични псевдоними бидејќи тие се силно насочени од ботови и злонамерни корисници. Наместо тоа, ние треба да одлучуваме за нашиот псевдоним. Треба да биде лесно да се запомни, но не и лесно да се погоди. Не треба да ја означува целта на локацијата на URL-то. Во нашиот случај, ќе одиме со /nothingtosee.

За да ги примениме нашите планирани промени, треба да ги отстраниме или коментираме постоечките линии и да додадеме свои:

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

Кога ќе завршите, зачувајте ја и затворете ја датотеката.

За да ги имплементирате промените, рестартирајте ја веб-услугата:

sudo systemctl restart httpd.service

Сега, ако одите на претходната локација на вашата инсталација phpMyAdmin, ќе добиете грешка 404:

http://server_domain_or_IP/phpMyAdmin

Сепак, вашиот phpMyAdmin интерфејс ќе биде достапен на новата локација што ја избравме:

http://server_domain_or_IP/nothingtosee

Поставување порта за автентикација на веб-сервер

Следната карактеристика што ја сакавме за нашата инсталација беше барањето за автентикација што ќе се бара од корисникот да го помине пред да го види екранот за најавување phpMyAdmin.

За среќа, повеќето веб-сервери, вклучително и Apache, ја обезбедуваат оваа можност природно. Ќе треба само да ја измениме нашата конфигурациска датотека Apache за да користиме датотека за авторизација.

Повторно отворете ја конфигурациската датотека phpMyAdmin Apache во вашиот уредувач на текст:

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

Во рамките на блокот директориум /usr/share/phpMyAdmin, но надвор од кој било од блоковите внатре, треба да додадеме директива за надминување. Ќе изгледа вака:

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

Ова ќе ни овозможи да одредиме дополнителни детали за конфигурацијата во датотека наречена .htaccess која се наоѓа во самиот директориум phpMyAdmin. Ќе ја користиме оваа датотека за да ја поставиме нашата автентикација на лозинка.

Зачувајте ја и затворете ја датотеката кога ќе завршите.

Рестартирајте ја веб-услугата за да ја имплементирате оваа промена:

sudo systemctl restart httpd.service

Креирајте датотека .htaccess

Сега кога ја имаме директивата за надминување во нашата конфигурација, Apache ќе бара датотека наречена .htaccess во директориумот /usr/share/phpMyAdmin. Ако најде еден, ќе ги користи директивите содржани во него за да ги дополни претходните податоци за конфигурација.

Нашиот следен чекор е да ја креираме датотеката .htaccess во тој директориум. Користете го вашиот уредувач на текст за да го направите тоа сега:

sudo nano /usr/share/phpMyAdmin/.htaccess

Во оваа датотека, треба да ги внесеме следниве информации:

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

Ајде да погледнеме што значи секоја од овие редови:

  • Основен AuthType: оваа линија го одредува типот на автентикација што го спроведуваме. Овој тип ќе имплементира автентикација на лозинка со помош на датотека со лозинка.
  • AuthName: Ова ја поставува пораката за дијалог прозорецот за автентикација. Треба да го задржите ова генеричко за неовластените корисници да не добијат знаење за тоа што е заштитено.
  • AuthUserFile: Ова ја поставува локацијата на вистинската датотека со лозинка што ќе се користи за автентикација. Ова треба да биде надвор од директориумите што се опслужуваат. Ќе ја создадеме оваа датотека за момент.
  • Бара валиден корисник: Ова одредува дека само автентицираните корисници треба да имаат пристап до овој ресурс. Ова е она што всушност ги спречува неовластените корисници да влезат.

Кога ќе завршите со внесување на оваа информација, зачувајте ја и затворете ја датотеката.

Направете датотека со лозинка за автентикација

Сега кога ја наведовме локацијата за датотеката со лозинка преку употреба на директивата AuthUserFile во нашата датотека .htaccess, треба да ја креираме и наполниме датотеката со лозинка.

Ова може да се постигне преку употреба на алатката Apache наречена htpasswd. Ја повикуваме командата со предавање на локацијата каде што сакаме да ја креираме датотеката и корисничкото име за кое сакаме да внесеме детали за автентикација:

sudo htpasswd -c /etc/httpd/pma_pass username

Знамето -c покажува дека ова ќе создаде почетна датотека. Локацијата на директориумот е патеката и името на датотеката што ќе се користат за датотеката. Корисничкото име е првиот корисник што би сакале да го додадеме. Ќе ви биде побарано да внесете и потврдите лозинка за корисникот.

Ако сакате да додадете дополнителни корисници за автентикација, можете повторно да ја повикате истата команда без знамето -c и со ново корисничко име:

sudo htpasswd /etc/httpd/pma_pass seconduser

Со креирана датотека со лозинка, имплементирана е порта за автентикација и сега треба да видиме барање за лозинка следниот пат кога ќе ја посетиме нашата страница:

http://server_domain_or_IP/nothingtosee

Откако ќе ги внесете вашите ингеренции, ќе бидете префрлени на нормалната страница за најавување phpMyAdmin. Овој додаден слој на заштита ќе ви помогне да ги задржите вашите логови на MySQL чисти од обиди за автентикација, покрај дополнителната безбедносна придобивка.

Заклучок

Сега можете да управувате со вашите MySQL бази на податоци од разумно безбеден веб-интерфејс. Овој интерфејс го изложува најголемиот дел од функционалноста што е достапна од командната линија MySQL. Можете да гледате бази на податоци и шеми, да извршувате прашања и да креирате нови збирки на податоци и структури.