GNU/Linux >> Znalost Linux >  >> Cent OS

Nainstalujte a zabezpečte phpMyAdmin na CentOS 8

phpMyAdmin je bezplatný a open source nástroj pro správu serverů MySQL a MariaDB přes webové rozhraní. Pomocí phpMyAdmin můžete vytvářet a spravovat databáze a uživatele, spouštět příkazy SQL, importovat a exportovat data a provádět databázové činnosti, jako je vytváření, mazání, tabulky, sloupce, indexy, oprávnění a mnoho dalších. phpMyAdmin je jedním z nejoblíbenějších a nejpoužívanějších nástrojů pro správu, zejména pro webhostingové služby.

Funkce

  • Poskytuje jednoduché a uživatelsky přívětivé webové rozhraní.
  • Importujte data z CSV a SQL.
  • Podpora většiny funkcí MySQL, včetně vytváření, kopírování, rušení, přejmenování, rušení a úprav databází, tabulek, polí a indexů.
  • Umožňuje exportovat data do různých formátů, jako je PDF, CSV, SQL, XML a mnoho dalších.
  • Správa více serverů.
  • Vytváření složitých dotazů pomocí Query-by-example (QBE).

V tomto tutoriálu vám ukážeme, jak nainstalovat a zabezpečit phpMyAdmin na serveru CentOS 8.

Požadavky

  • Server se systémem CentOS 8.
  • Na serveru je nakonfigurováno heslo uživatele root.

Instalovat LAMP Server

Nejprve budete muset nainstalovat Apache, MariaDB, PHP a další PHP knihovny na váš server. Všechny je můžete nainstalovat pomocí následujícího příkazu:

dnf install httpd mariadb-server php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd php-json php-mbstring wget unzip

Jakmile jsou všechny balíčky nainstalovány, spusťte službu Apache a MariaDB a povolte jim spuštění po restartu systému pomocí následujícího příkazu:

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Nakonfigurujte MariaDB

Ve výchozím nastavení není MariaDB zabezpečena. Nejprve jej tedy musíte zajistit. Můžete to udělat spuštěním skriptu mysql_secure_installation:

mysql_secure_installation

Odpovězte na všechny otázky, jak je uvedeno níže:

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

Po dokončení byste měli vidět následující výstup:

 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

V tomto okamžiku je vaše instalace MariaDB zabezpečena.

Instalovat phpMyAdmin

Ve výchozím nastavení není phpMyAdmin k dispozici ve výchozím úložišti CentOS 8. Budete si tedy muset stáhnout nejnovější verzi phpMyAdmin z jejich oficiálních stránek. Můžete si jej stáhnout pomocí následujícího příkazu:

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.zip

Po stažení stažený soubor rozbalte pomocí následujícího příkazu:

unzip phpMyAdmin-4.9.2-all-languages.zip

Dále přesuňte extrahovaný obsah do adresáře /usr/share, jak je znázorněno níže:

mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadmin

Dále změňte adresář na /usr/share/phpmyadmin a přejmenujte soubor config.sample.inc.php:

cd /usr/share/phpmyadmin
mv config.sample.inc.php config.inc.php

Dále otevřete soubor pomocí svého oblíbeného textového editoru, jak je znázorněno níže:

nano config.inc.php

Změňte následující řádek:

$cfg['blowfish_secret'] = 'your-secret-password';

Po dokončení uložte a zavřete soubor. Poté importujte soubor create_tables.sql pomocí následujícího příkazu:

mysql < /usr/share/phpmyadmin/sql/create_tables.sql -u root -p

Po zobrazení výzvy k importu tabulky zadejte heslo uživatele root.

Dále vytvořte adresář tmp pro phpmyadmin a udělte mu správná oprávnění:

mkdir /usr/share/phpmyadmin/tmp
chown -R apache:apache /usr/share/phpmyadmin
chmod 777 /usr/share/phpmyadmin/tmp

Konfigurovat Apache pro phpMyAdmin

Dále budete muset vytvořit konfigurační soubor virtuálního hostitele Apache pro phpMyAdmin. Můžete jej vytvořit pomocí následujícího příkazu:

nano /etc/httpd/conf.d/phpmyadmin.conf

Přidejte následující řádky:

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/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 /usr/share/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>

Po dokončení uložte a zavřete soubor. Poté restartujte službu Apache pomocí následujícího příkazu:

systemctl restart httpd

Stav Apache můžete zkontrolovat pomocí následujícího příkazu:

systemctl status httpd

Měli byste vidět následující výstup:

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2019-12-18 01:07:52 EST; 6s ago
     Docs: man:httpd.service(8)
 Main PID: 5636 (httpd)
   Status: "Started, listening on: port 80"
    Tasks: 213 (limit: 25044)
   Memory: 28.7M
   CGroup: /system.slice/httpd.service
           ??5636 /usr/sbin/httpd -DFOREGROUND
           ??5639 /usr/sbin/httpd -DFOREGROUND
           ??5640 /usr/sbin/httpd -DFOREGROUND
           ??5641 /usr/sbin/httpd -DFOREGROUND
           ??5642 /usr/sbin/httpd -DFOREGROUND

Dec 18 01:07:52 centos8 systemd[1]: Stopped The Apache HTTP Server.
Dec 18 01:07:52 centos8 systemd[1]: Starting The Apache HTTP Server...
Dec 18 01:07:52 centos8 httpd[5636]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::200:d0>
Dec 18 01:07:52 centos8 httpd[5636]: Server configured, listening on: port 80
Dec 18 01:07:52 centos8 systemd[1]: Started The Apache HTTP Server.

Konfigurovat SELinux a bránu firewall

Ve výchozím nastavení je SELinux povolen v CentOS 8. Takže budete muset nakonfigurovat SELinux pro phpMyAdmin, aby fungoval správně.

Nejprve nainstalujte balíček policycoreutils-python-utils pro správu prostředí SELinux pomocí následujícího příkazu:

dnf install policycoreutils-python-utils

Dále povolte přístup do adresáře /usr/share/phpmyadmin pomocí následujícího příkazu:

semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/phpmyadmin/'
semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"

Nyní projděte všechny soubory v adresáři phpmyadmin spuštěním následujícího příkazu:

restorecon -Rv '/usr/share/phpmyadmin/'

Dále budete muset vytvořit pravidlo brány firewall pro povolení služby HTTP z externích sítí. Můžete to povolit pomocí následujícího příkazu:

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

phpMyAdmin je nyní nainstalován a nakonfigurován. Nyní je čas zkontrolovat, zda funguje nebo ne.

Otevřete webový prohlížeč a zadejte adresu URL http://ip-vaseho-serveru/phpmyadmin. Budete přesměrováni na následující stránku:

Bezpečný phpMyAdmin

V tomto okamžiku instance phpMyAdmin funguje správně. Zabezpečení vaší instance phpMyAdmin před vnějším světem je však pro vás důležitým úkolem. V této sekci vám ukážeme, jak zabezpečit instanci phpMyAdmin.

Povolit phpMyAdmin z konkrétní IP adresy

Nejprve budete muset nakonfigurovat svůj phpMyAdmin tak, aby byl přístupný pouze z IP adresy vašeho domácího připojení.

Můžete jej nakonfigurovat úpravou souboru /etc/httpd/conf.d/phpmyadmin.conf:

nano /etc/httpd/conf.d/phpmyadmin.conf

Najděte následující řádky:

     <RequireAny>
       Require all granted
     </RequireAny>

A nahraďte je následujícím:

<RequireAny>
    Require ip your-home--connection-ip-address
    Require ip ::1
</RequireAny>

Po dokončení uložte a zavřete soubor.

Konfigurovat další vrstvu ověřování

Je dobré chránit váš adresář phpmyadmin heslem nastavením základního ověřování.

Chcete-li tak učinit, vytvořte nový ověřovací soubor pomocí nástroje htpasswd, jak je uvedeno níže:

mkdir /etc/phpmyadmin
htpasswd -c /etc/phpmyadmin/.htpasswd admin

Budete požádáni o zadání hesla správce, jak je uvedeno níže:

New password: 
Re-type new password: 
Adding password for user admin

Dále budete muset nakonfigurovat Apache tak, aby používal soubor .htpasswd. Můžete to udělat úpravou souboru /etc/httpd/conf.d/phpmyadmin.conf.

nano /etc/httpd/conf.d/phpmyadmin.conf

Přidejte následující řádky pod řádek "AddDefaultCharset UTF-8":

    Options  +FollowSymLinks +Multiviews +Indexes
    AllowOverride None
    AuthType basic
    AuthName "Authentication Required"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

Uložte soubor a restartujte službu Apache, aby se změny projevily:

systemctl restart httpd

Přístup k phpMyAdmin

Nyní je vaše instance phpMyAdmin zabezpečena další vrstvou zabezpečení. Otevřete webový prohlížeč a zadejte adresu URL http://ip-vaseho-serveru/phpmyadmin. Budete požádáni o zadání přihlašovacích údajů uživatele, kterého jste dříve vytvořili, jak je znázorněno níže:

Zadejte své uživatelské jméno a heslo správce a poté klikněte na tlačítko OK. Budete přesměrováni na přihlašovací stránku phpMyAdmin:

Nyní zadejte své přihlašovací údaje pro administrátora MySQL a klikněte na tlačítko Přejít. Měli byste vidět následující stránku:

Závěr

Gratulujeme! úspěšně jste nainstalovali a zabezpečili phpMyAdmin na serveru CentOS 8. Nyní můžete vytvářet databáze, uživatele, tabulky a spravovat je z webového rozhraní. Neváhejte se mě zeptat, pokud máte nějaké otázky.


Cent OS
  1. Nainstalujte MariaDB 10.0 na CentOS 6

  2. Jak nainstalovat a zabezpečit MariaDB na Debian 11

  3. Nainstalujte MariaDB na CentOS 6.4

  1. Jak nainstalovat a zabezpečit phpMyAdmin na Debian 9

  2. Nainstalujte Magento na CentOS 7 s Nginx, PHP-FPM a MariaDB

  3. Jak nainstalovat a zabezpečit MongoDB 4 v CentOS 8

  1. Jak nainstalovat a zabezpečit phpMyAdmin na Ubuntu

  2. Nainstalujte MariaDB na CentOS 7

  3. Jak nainstalovat a zabezpečit phpMyAdmin s Apache na CentOS 7