GNU/Linux >> Linux Esercitazione >  >> Cent OS

Installa e proteggi phpMyAdmin su CentOS 8

phpMyAdmin è uno strumento gratuito e open source per gestire i server MySQL e MariaDB su un'interfaccia basata sul web. Con phpMyAdmin, puoi creare e gestire database e utenti, eseguire istruzioni SQL, importare ed esportare dati ed eseguire attività di database come creazione, eliminazione, tabelle, colonne, indici, autorizzazioni e molto altro. phpMyAdmin è uno degli strumenti di amministrazione più popolari e più utilizzati, in particolare per i servizi di web hosting.

Caratteristiche

  • Fornisce un'interfaccia web semplice e intuitiva.
  • Importa dati da CSV e SQL.
  • Supporta la maggior parte delle funzionalità di MySQL, tra cui creazione, copia, rilascio, rinomina, rilascio e modifica di database, tabelle, campi e indici.
  • Consente di esportare i dati in vari formati come PDF, CSV, SQL, XML e molti altri.
  • Gestione di più server.
  • Creazione di query complesse utilizzando Query-by-example (QBE).

In questo tutorial, ti mostreremo come installare e proteggere phpMyAdmin su un server CentOS 8.

Requisiti

  • Un server che esegue CentOS 8.
  • Sul server è configurata una password di root.

Installa il server LAMP

Innanzitutto, dovrai installare Apache, MariaDB, PHP e altre librerie PHP sul tuo server. Puoi installarli tutti con il seguente comando:

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

Una volta installati tutti i pacchetti, avvia il servizio Apache e MariaDB e abilita l'avvio dopo il riavvio del sistema con il seguente comando:

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

Una volta terminato, puoi procedere al passaggio successivo.

Configura MariaDB

Per impostazione predefinita, MariaDB non è protetta. Quindi dovrai prima proteggerlo. Puoi farlo eseguendo lo script mysql_secure_installation:

mysql_secure_installation

Rispondi a tutte le domande come mostrato di seguito:

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

Al termine, dovresti vedere il seguente output:

 ... 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!

A questo punto, l'installazione di MariaDB è sicura.

Installa phpMyAdmin

Per impostazione predefinita, phpMyAdmin non è disponibile nel repository predefinito di CentOS 8. Quindi, dovrai scaricare l'ultima versione di phpMyAdmin dal loro sito Web ufficiale. Puoi scaricarlo con il seguente comando:

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

Una volta scaricato, decomprimi il file scaricato con il seguente comando:

unzip phpMyAdmin-4.9.2-all-languages.zip

Quindi, sposta il contenuto estratto nella directory /usr/share come mostrato di seguito:

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

Quindi, cambia la directory in /usr/share/phpmyadmin e rinomina il file config.sample.inc.php:

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

Quindi, apri il file con il tuo editor di testo preferito come mostrato di seguito:

nano config.inc.php

Modifica la seguente riga:

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

Salva e chiudi il file quando hai finito. Quindi, importa create_tables.sql con il seguente comando:

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

Fornisci la tua password di root quando ti viene chiesto di importare la tabella.

Quindi, crea una directory tmp per phpmyadmin e dai i permessi appropriati:

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

Configura Apache per phpMyAdmin

Successivamente, dovrai creare un file di configurazione dell'host virtuale Apache per phpMyAdmin. Puoi crearlo con il seguente comando:

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

Aggiungi le seguenti righe:

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>

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio Apache con il seguente comando:

systemctl restart httpd

Puoi controllare lo stato dell'Apache con il seguente comando:

systemctl status httpd

Dovresti vedere il seguente output:

? 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.

Configura SELinux e Firewall

Per impostazione predefinita, SELinux è abilitato in CentOS 8. Quindi dovrai configurare SELinux affinché phpMyAdmin funzioni correttamente.

Innanzitutto, installa il pacchetto policycoreutils-python-utils per gestire un ambiente SELinux con il seguente comando:

dnf install policycoreutils-python-utils

Quindi, abilita l'accesso alla directory /usr/share/phpmyadmin con il seguente comando:

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(/.*)?"

Ora passa in rassegna tutti i file nella tua directory phpmyadmin eseguendo il seguente comando:

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

Successivamente, dovrai creare una regola firewall per consentire il servizio HTTP da reti esterne. Puoi consentirlo con il seguente comando:

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

phpMyAdmin è ora installato e configurato. Ora è il momento di verificare se funziona o meno.

Apri il tuo browser web e digita l'URL http://your-server-ip/phpmyadmin. Verrai reindirizzato alla seguente pagina:

Proteggi phpMyAdmin

A questo punto, l'istanza di phpMyAdmin funziona correttamente. Tuttavia, proteggere la tua istanza phpMyAdmin dal mondo esterno è un compito importante per te. In questa sezione, ti mostreremo come proteggere la tua istanza phpMyAdmin.

Consenti phpMyAdmin da IP specifico

Innanzitutto, dovrai configurare phpMyAdmin in modo che sia accessibile solo dall'indirizzo IP della tua connessione domestica.

Puoi configurarlo modificando il file /etc/httpd/conf.d/phpmyadmin.conf:

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

Trova le seguenti righe:

     <RequireAny>
       Require all granted
     </RequireAny>

E sostituiscili con i seguenti:

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

Salva e chiudi il file quando hai finito.

Configura livello aggiuntivo di autenticazione

È una buona idea proteggere con password la tua directory phpmyadmin impostando un'autenticazione di base.

Per farlo, crea un nuovo file di autenticazione usando lo strumento htpasswd come mostrato di seguito:

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

Ti verrà chiesto di fornire la tua password di amministratore come mostrato di seguito:

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

Successivamente, dovrai configurare Apache per utilizzare il file .htpasswd. Puoi farlo modificando il file /etc/httpd/conf.d/phpmyadmin.conf.

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

Aggiungi le seguenti righe sotto la riga "AddDefaultCharset UTF-8":

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

Salva il file e riavvia il servizio Apache per rendere effettive le modifiche:

systemctl restart httpd

Accedi a phpMyAdmin

Ora, la tua istanza phpMyAdmin è protetta con un ulteriore livello di sicurezza. Apri il tuo browser web e digita l'URL http://your-server-ip/phpmyadmin. Ti verrà chiesto di inserire le credenziali di accesso dell'utente precedentemente creato come mostrato di seguito:

Fornisci il nome utente e la password dell'amministratore, quindi fai clic sul pulsante OK. Verrai reindirizzato alla pagina di accesso di phpMyAdmin:

Ora, fornisci le credenziali di accesso dell'utente amministrativo MySQL e fai clic sul pulsante Vai. Dovresti vedere la seguente pagina:

Conclusione

Congratulazioni! hai installato e protetto correttamente phpMyAdmin sul server CentOS 8. Ora puoi creare database, utenti, tabelle e gestirli dall'interfaccia basata sul web. Sentiti libero di chiedermi se hai domande.


Cent OS
  1. Installa MariaDB 10.0 su CentOS 6

  2. Come installare e proteggere MariaDB su Debian 11

  3. Installa MariaDB su CentOS 6.4

  4. Installa Magento su CentOS 7, con Nginx, PHP-FPM e MariaDB

  5. Come installare e proteggere MongoDB 4 in CentOS 8

2 modi per installare MariaDB su CentOS 7

PhpMyAdmin Installa e configura con Nginx su CentOS 7

Come installare e configurare Cacti su CentOS 7

Come installare phpMyAdmin su CentOS 8

Come installare e proteggere phpMyAdmin su CentOS 8

Come installare e configurare MariaDB in CentOS / RHEL 7