phpMyAdmin je softwarový nástroj s otevřeným zdrojovým kódem používaný pro správu databází MySQL/MariaDB. Poskytuje snadný způsob interakce s MySQL prostřednictvím webového prohlížeče. phpMyAdmin je velmi užitečný pro uživatele, kteří nejsou spokojeni se správou svých dat z příkazového řádku, takže je nezbytné, aby každý správce systému zabezpečil phpMyAdmin před různými druhy útoků.
V tomto tutoriálu vám ukážeme, jak nainstalovat a zabezpečit phpMyAdmin na CentOS 8.
Předpoklady
- Nový CentOS 8 VPS na cloudové platformě Atlantic.net.
- Heslo uživatele root nakonfigurované na vašem serveru.
Krok 1 – Vytvořte cloudový server Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte CentOS 8 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte k serveru CentOS 8, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
dnf update -y
Krok 2 – Nainstalujte Apache, MariaDB a PHP
Před spuštěním nainstalujte Apache, MariaDB, PHP a další požadovaná rozšíření PHP pomocí následujícího příkazu:
dnf install httpd mariadb-server php php-cli php-json php-mbstring php-pdo php-pecl-zip php-mysqlnd -y
Po instalaci všech balíčků můžete přejít k dalšímu kroku.
Krok 3 – Nastavení hesla root MariaDB
Nejprve spusťte službu MariaDB a povolte její spuštění při spouštění pomocí následujícího příkazu:
systemctl start mariadb systemctl enable mariadb
Dále nastavte kořenové heslo MySQL pomocí následujícího skriptu:
mysql_secure_installation
Tento skript nastaví root heslo MySQL, odstraní anonymní uživatele, zakáže vzdálené přihlášení root a odstraní testovací databázi a přístup k ní, jak je uvedeno níže:
Zadejte aktuální heslo pro root (zadejte pro žádné):
Set root password? [Y/n] Y New password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Krok 4 – Instalace phpMyAdmin
Nejprve si stáhněte nejnovější verzi phpMyAdmin do kořenového adresáře webu Apache pomocí následujícího příkazu:
cd /var/www/html wget https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-all-languages.zip
Po stažení stažený soubor rozbalte pomocí následujícího příkazu:
unzip phpMyAdmin-4.9.4-all-languages.zip
Dále přejmenujte extrahovaný adresář na phpmyadmin, jak je znázorněno níže:
mv phpMyAdmin-4.9.4-all-languages phpmyadmin
Dále změňte vlastnictví adresáře phpmyadmin na uživatele apache:
chown -R apache:apache /var/www/html/phpmyadmin
Dále přejmenujte soubor config.sample.inc.php:
cd /var/www/html/phpmyadmin mv config.sample.inc.php config.inc.php
Dále soubor upravte a definujte své bezpečné heslo:
nano config.inc.php
Najděte řádek níže a aktualizujte jej pomocí svého zabezpečeného hesla, jak je uvedeno níže:
$cfg['blowfish_secret'] = 'your-secure-password';
Uložte a zavřete soubor. Poté importujte tabulky pro phpMyAdmin pomocí následujícího příkazu:
mysql < sql/create_tables.sql -u root -p
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Krok 5 – Konfigurace Apache pro phpMyAdmin
Dále vytvořte konfigurační soubor virtuálního hostitele Apache pro phpMyAdmin:
nano /etc/httpd/conf.d/phpmyadmin.conf
Přidejte následující řádky:
Alias /phpmyadmin /var/www/html/phpmyadmin <Directory /var/www/html/phpmyadmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require all granted </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> <Directory /var/www/html/phpmyadmin/setup/> <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require all granted </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory>
Uložte a zavřete soubor. Poté spusťte službu Apache a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start httpd systemctl enable httpd
Nyní otevřete webový prohlížeč a navštivte adresu URL http://ip-vaseho-serveru/phpmyadmin. Na následující obrazovce byste měli vidět webové rozhraní phpMyAdmin:
Přihlaste se pomocí svých přihlašovacích údajů MySQL vytvořených dříve.
Krok 6 – Zabezpečte phpMyAdmin
V této sekci si ukážeme různé způsoby, jak zabezpečit vaše webové rozhraní phpMyAdmin.
Změnit umístění přístupu phpMyAdmin
Je dobré změnit přístupovou URL vašeho rozhraní phpMyAdmin. Můžete to změnit úpravou souboru phpmyadmin.conf:
nano /etc/httpd/conf.d/phpmyadmin.conf
Najděte následující řádek:
Alias /phpmyadmin /var/www/html/phpmyadmin
Nahraďte jej následujícím řádkem:
Alias /securelocation /var/www/html/phpmyadmin
Uložte a zavřete soubor a poté restartujte službu Apache, aby se změny implementovaly:
systemctl restart httpd
Nyní můžete přistupovat k rozhraní phpMyAdmin pomocí adresy URL http://ip-ip-vašeho-serveru/securelocation.
Povolit phpMyAdmin z konkrétní IP adresy
Vždy je dobré povolit, aby byl phpMyAdmin přístupný pouze z konkrétní IP adresy.
Chcete-li tak učinit, otevřete soubor phpmyadmin.conf:
nano /etc/httpd/conf.d/phpmyadmin.conf
Najděte následující řádky:
<RequireAny> Require all granted </RequireAny>
Nahraďte jej následujícím:
<RequireAny> Require ip your-client-ip-address Require ip ::1 </RequireAny>
Uložte a zavřete soubor a poté restartujte službu Apache, aby se změny implementovaly:
systemctl restart httpd
Vaše rozhraní phpMyAdmin je nyní přístupné pouze ze zadané IP adresy.
Rozhraní phpMyAdmin s ochranou heslem
Můžete také přidat další vrstvu ochrany heslem na phpMyAdmin nastavením základního ověřování.
Nejprve vytvořte ověřovací soubor pomocí následujícího příkazu:
htpasswd -c /etc/httpd/.htpasswd phpadmin
Zadejte bezpečné heslo, jak je uvedeno níže:
New password: Re-type new password: Adding password for user phpadmin
Dále vytvořte soubor .htaccess v adresáři phpmyadmin:
nano /var/www/html/phpmyadmin/.htaccess
Přidejte následující řádky:
AuthType basic AuthName "Authentication Required" AuthUserFile /etc/httpd/.htpasswd Require valid-user
Po dokončení uložte a zavřete soubor.
Dále upravte soubor phpmyadmin.conf a nakonfigurujte Apache tak, aby používal soubor .htpasswd.
nano /etc/httpd/conf.d/phpmyadmin.conf
Přidejte následující řádky pod řádek „AddDefaultCharset UTF-8“:
AllowOverride All
Uložte soubor a poté restartujte službu Apache, abyste provedli změny:
systemctl restart httpd
Krok 7 – Otestujte phpMyAdmin
V tomto okamžiku je rozhraní phpMyAdmin zabezpečeno další vrstvou ochrany heslem. Chcete-li to otestovat, otevřete webový prohlížeč a zadejte adresu URL http://ip-vaseho-serveru/securelocation. Budete požádáni o zadání přihlašovacích údajů, které jsme vytvořili dříve:
Zadejte své uživatelské jméno a heslo a klikněte na OK knoflík. Budete přesměrováni na přihlašovací stránku phpMyAdmin:
Zadejte své uživatelské jméno a heslo pro MySQL a poté klikněte na Go knoflík. Na následující obrazovce byste měli vidět své webové rozhraní phpMyAdmin:
Závěr
Ve výše uvedené příručce jsme se naučili, jak nainstalovat a zabezpečit phpMyAdmin na CentOS 8. Vaše rozhraní phpMyAdmin je nyní zabezpečeno dodatečnou ochranou heslem. Tuto metodu můžete použít k zabezpečení serveru v rámci Atlantic.Net VPS Hosting Plan.
Zjistěte více o našich hostingových službách VPS a virtuálních privátních serverech.