Instalace phpMyAdmin a jeho zabezpečení (Install phpMyAdmin)

By | 14/09/2020

Last Updated on 17/06/2022 by administrator

Instalace phpMyAdmin a jeho zabezpečení (Install phpMyAdmin)

Motivace:

Nástroj phpMyAdmin je jeden z nejpopulárnějších nástrojů pro správu databáze umožňující jednoduchou správu obsahu databáze MySQL pomocí webového rozhraní. Dokáže vytvářet, upravovat, rušit tabulky, provádět SQL příkazy a spravovat klíče [1]. V tomto článku bude nainstalován (Install phpMyAdmin) a následně zabezpečen.

OS:

Implementace byla prováděna na Ubuntu 18.04 LTS.

Implementace [2]:

Prerekvizitou je mít nainstalovaný LAMP balíček. Tato instalace a konfigurace je uvedená v předchozím článku Instalace LAMP (Linux, Apache, MySQL, PHP) na Ubuntu.

Instalace LAMP (Linux, Apache, MySQL, PHP) na Ubuntu

1. Instalace phpMyAdmin:

Aktualizace seznamu balíčků z repozitářů:

sudo apt-get update

Instalace phpMyAdmin z výchozích repozitářů:

sudo apt-get install phpmyadmin php-mbstring php-gettext

Jako webový server vybrat apache2. Nejdříve jej vybrat mezerníkem (objeví se *), následně zmáčknout TAB, a pak Enter:

phpmyadmin apache2

Kliknout na YES, pro použití dbconfig-common databáze:

dbconfig-common

Vložit libovolné heslo k phpMyadmin. Pokud nebude vloženo žádné, bude automaticky vygenerované:

mysql password

Instalační proces přidá konfigurační soubor phpMyAdmin do lokace /etc/apache2/conf-enabled/. Pouze je nutné povolit PHP modul mbstring příkazem:

sudo phpenmod mbstring

Restartovat Apache:

sudo systemctl restart apache2

2. Vytvoření uživatele v MySQL pro přihlášení k phpMyAdmin

Přihlášení do MySQL pod rootem:

mysql -u root -p

Pozn. Pokud se není možné příkazem mysql -u root -p přihlásit do MySQL databáze, root není autentizován pomocí hesla. Nastavení popisuje druhý bod článku Instalace MySQL databáze článku Instalace LAMP (Linux, Apache, MySQL, PHP) na Ubuntu.

Vytvořit libovolného nového uživatele v MySQL databázi. Ten bude sloužit pro přihlášení k phpMyAdmin:

mysql> CREATE USER 'novyuzivatel'@'localhost' IDENTIFIED BY 'NejakeSilneHeslo';

Udělení všech práv pro nového uživatele novyuzivatel:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'novyuzivatel'@'localhost' WITH GRANT OPTION;

Všechno nastaveno, nyní je možné opustit MySQL shell příkazem:

mysql> exit

Nyní bude otestována funkčnost phpMyAdmin v prohlížeči. Předpokládejme, že phpMyAdmin běží na serveru s IP adresou 192.168.0.223. Přihlašovací obrazovka k phpMyAdmin se tak dosáhne přes odkaz http://192.168.0.223/phpmyadmin/:

Install phpMyAdminV MySQL databázi byl vytvořen uživatel novyuzivatel. Tento bude použitý k přihlášení k phpMyAdmin:

Install phpMyAdminPo úspěšném přihlášení se objeví rozhraní phpMyAdmin:

Instalace phpMyAdmin

3. Zabezpečení instance phpMyAdmin

Oblíbeným cílem útočníku je právě phpMyadmin, proto je fajn zabránit neoprávněnému přístupu a přidat další vrstvu zabezpečení. To se provede pomocí integrovaných funkcí autentizace a autorizace .htaccess v Apache.

Otevřít konfiguraci apache2:

sudo vim /etc/apache2/conf-available/phpmyadmin.conf

a vložit AllowOverride All pod sekcí <Directory /usr/share/phpmyadmin>, což bude vypadat takto:

<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All

Restartovat Apache:

sudo systemctl restart apache2

Příslušné zabezpečení bude implementováno v novém souboru .htaccess:

sudo vim /usr/share/phpmyadmin/.htaccess

do souboru .htaccess a vložit:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Legenda:

  • AuthType – typ autentizace (Basic znamená pomocí hesla, které bude umístěno v souboru)
  • AuthName – zobrazí text hlášky v autentizačním okně pro uživatele (zde se zobrazí uživateli “Restricted Files”)
  • AuthUserFile – definuje umístění souboru se jmény a hesly (ten bude vytvořen níže)
  • Require valid-user – definuje přistup pouze autentizovaným uživatelům

Nový uživatel se vytvoří pomocí příkazu níže:

sudo htpasswd -c /etc/phpmyadmin/.htpasswd uzivatel

Libovolně je možné vytvořit i dalšího uživatele podle potřeby, který se vytvoří obdobně, ale již bez přepínače -c:

sudo htpasswd /etc/phpmyadmin/.htpasswd dalsiuzivatel

Pozn. Všechna uživatelská jména a zašifrována hesla (funkcí hash) jsou uloženy v souboru /etc/phpmyadmin/.htpasswd.

Opět bude otestována funkčnost phpMyAdmin v prohlížeči. Jak již bylo zmiňováno výše, že phpMyAdmin běží na serveru s IP adresou 192.168.0.223. Přihlašovací obrazovka k phpMyAdmin se tak dosáhne přes odkaz http://192.168.0.223/phpmyadmin/. Nicméně předtím by mělo vyskočit i okno s autentizací, kde budou zadané autentizační údaje, které byly vytvořeny v souboru .htpasswd:

phpMyAdmin authentication window

Po přihlášení bude přesměrováno na běžnou přihlašovací stránku phpMyAdmin.

Zdroj:

[1] https://cs.wikipedia.org/wiki/PhpMyAdmin

[2] https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-on-ubuntu-18-04

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérský softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030 Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Leave a Reply

Your email address will not be published. Required fields are marked *