PhpMyAdmin je GUI (Graphic User Interface) neboli grafické uživatelské rozhraní, které umožňuje vytvářet, ukládat a upravovat databáze vytvořené pomocí MySQL.
V tomto návodu vám ukážeme, jak nainstalovat a zabezpečit phpMyAdmin v systému Linux Ubuntu 18.04.
Nejdříve se připojte ke svému serveru pomocí SSH. Pokud ještě nemáte SSH připojení k dispozici, doporučujeme návod na bezpečné připojení pomocí SSH protokolu. Pokud se jedná o lokální server, pokračujte k dalšímu kroku a otevřete terminál serveru.
Instalace phpMyAdmin
phpMyAdmin naleznete standardně v úložišti Ubuntu.
Pro aktualizaci úložiště a zahájení instalace použijte příkazy:
$ sudo apt update
$ sudo apt install phpmyadmin php-mbstring php-gettext
Pro potvrzení stiskněte klávesy Y a Enter.
Zobrazí se následující obrazovka:
Z nabídky vyberte možnost apache2. Pro výběr možnosti stiskněte mezerník a poté Enter. Pokud budete pokračovat bez stisku mezerníku, nedojde ke konfiguraci webového serveru.
Po stisknutí Enter se zobrazí následující obrazovka:
Zvolte <Yes> a stiskněte Enter.
Nyní jste vyzváni k zadání hesla administrátora databáze. Zadejte nové heslo, pomocí Tab vyberte možnost <Ok> a stiskněte Enter.
Nyní zadejte heslo pro aplikaci.
Stejně jako v předchozím kroku pomocí Tab vyberte možnost <Ok> a stiskněte Enter.
Potvrďte heslo.
Po dokončení instalace bude konfigurační soubor phpMyAdmin vytvořen zde:
/etc/apache2/conf-enabled/phpmyadmin.conf The
Nyní je potřeba aktivovat rozšíření PHP mbsting. Zadejte příkaz:
$ sudo phpenmod mbstring
Pro provedení všech změn restartujte Apache zadáním:
$ sudo systemctl restart apache2
Správa přístupových práv
Pro správu phpMyAdmin se nepřihlašujte jako uživatel automaticky vytvořený během instalace. Přihlaste se jako MySQL root nebo jako správce databází pomocí rozhraní phpMyAdmin.
Máte možnost nakonfigurovat pouze jednoho z těchto dvou uživatelů nebo oba.
KONFIGURACE HESLA PRO MYSQL ROOT
K přístupu jako MySQL root je vyžadováno použití auth_socket místo hesla. Chcete-li se do phpMyAdmin přihlásit jako MySQL root, změňte metodu autentizace.
Zadejte příkaz:
$ sudo mysql
Zkontrolujte metodu autentizace pro jednotlivé uživatele zadáním:
SELECT user, authentication_string, plugin, host FROM mysql.user;
Nyní se zobrazí seznam uživatelů MySQL společně s jejich metodou autentizace. Zde můžete vidět, že uživatel root má nastavený typ autentizace auth_socket.
+
| user | authentication_string | plugin | host |
+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | mysql_native_password | localhost |
| phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | mysql_native_password | localhost |
+
5 rows in set (0.00 sec)
Pro změnu metody autentizace z auth_socket na mysql_native_password zadejte:
ALTER USER 'root' @ 'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Namísto heslo zadejte vámi zvolené heslo.
Potvrďte provedené změny zadáním:
FLUSH PRIVILEGES;
Tím bude server upozorněn, že metoda autentizace pro uživatele root byla aktualizována.
Zkontrolujte, zda jsou změny uloženy tak, že zadáte:
SELECT user, authentication_string, plugin, host FROM mysql.user;
Pokud bylo vše provedeno správně, způsob autentizace pro uživatele root je změněn.
+
| user | authentication_string | plugin | host |
+
| root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | mysql_native_password | localhost |
| phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | mysql_native_password | localhost |
+
5 rows in set (0.00 sec)
Nyní můžete zvolené heslo použít k přihlášení jako uživatel root v rozhraní phpMyAdmin.
KONFIGURACE HESLA PRO DEDIKOVANÉHO MYSQL UŽIVATELE
Chcete-li přistupovat k phpMyAdmin nikoliv jako uživatel root, ale jako uživatel vytvořený speciálně pro tento účet, je nutné uživatele nejprve vytvořit.
Otevřete MySQL prompt.
V případě již nakonfigurovaného ověřování na základě hesla pro uživatele root zadejte:
$ mysql -u root -p
Pokud jste se rozhodli uživatele root nepoužívat, zadejte:
$ sudo mysql
Nyní vytvořte nového uživatele zadáním:
$ CREATE USER 'username' @ 'localhost' IDENTIFIED BY 'password';
Nahraďte 'jmeno' a 'heslo' vámi zvolenými hodnotami.
Chcete-li novému uživateli poskytnout všechna potřebná oprávnění, zadejte:
$ GRANT ALL PRIVILEGES ON *. * TO 'username' @ 'localhost' WITH GRANT OPTION;
Nyní MySQL prompt ukončete:
$ exit
První spuštění phpMyAdmin
Pro připojení k serveru použijte následující URL obsahující IP vašeho serveru: http://IP-SERVERU/phpmyadmin
Pokud jste adresu zadali správně, zobrazí se obrazovka, kde budete vyzváni k zadání uživatelského jména a hesla.
Můžete využívat uživatele root, nebo nově vytvořeného uživatele.
Pokud bylo vše provedeno správně, zobrazí se phpMyAdmin dashboard.
Ochrana před vnějšími útoky
Databáze jsou častým terčem útoků a takto nakonfigurovaný phpMyAdmin je vysoce zranitelný právě útoky zvenčí.
Nejjednodušším způsobem, jak těmto útokům zabránit, je přidat pro celou aplikaci přístupový port pomocí integrované funkce Apache.
Tato funkce se nazývá .htaccess. Pro konfiguraci této funkce otevřete soubor .conf v adresáři apache.
Zadejte:
$ sudo nano /etc/apache2/conf-available/phpmyadmin.conf
V souboru .conf vyhledejte:
<Directory / usr / share / phpmyadmin>
A přidejte:
AllowOverride All
Po přidání AllowOverride All, uložte a zavřete .conf soubor a restartujte Apache pro propsání změn. Zadejte:
$ sudo systemctl restart apache2
Když je .htaccess povolen, vytvořte nový.
Soubor je ve složce aplikace.
Zadejte:
$ sudo nano /usr/share/phpmyadmin/.htaccess
Do souboru vepište:
AuthType Basic
AuthName "Reserved files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Tento soubor vytvoří dialogové okno pro autentizaci.
Název dialogového okna je v našem případě "Reserved files". Toto jméno můžete libovolně změnit. Doporučujeme však nezadávat názvy, které by případného narušitele upozornili, že se jedná o ochranu, kterou je potřeba obejít.
Soubor uložte a zavřete.
Nyní vytvořte soubor s heslem.
Zadejte:
$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
Nahraďte "username" jménem dle vašeho výběru.
Budete vyzváni k zadání a potvrzení hesla. Poté bude v umístění /etc/phpmyadmin/.htpasswd vytvořen soubor s heslem.
Odteď bude před přístupem k phpMyAdmin vyžadováno další uživatelské jméno a heslo.
Po zadání uživatelského jména a hesla budou zobrazeno standardní přihlašovací okno phpMyAdmin, kam zadáte své MySQL přihlašovací údaje.