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.
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/:
V MySQL databázi byl vytvořen uživatel novyuzivatel. Tento bude použitý k přihlášení k phpMyAdmin:
Po úspěšném přihlášení se objeví rozhraní 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:
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