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

By | 14/09/2020

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:

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

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

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

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *