GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Installa phpMyAdmin con LEMP Stack su Ubuntu 20.04 LTS

Sappiamo già come installare phpMyAdmin con lo stack LAMP su Ubuntu 20.04 . Oggi vediamo come installare phpMyAdmin con lo stack LEMP su Ubuntu 20.04 LTS edition. E poi discuteremo anche di alcune pratiche di sicurezza che aiuteranno a proteggere phpmyadmin dalle minacce comuni. Innanzitutto, assicurati di aver impostato lo stack LEMP su Ubuntu 20.04 come descritto nel seguente link.

  • Installa Nginx, MySQL, PHP (stack LEMP) su Ubuntu 20.04 LTS

Dopo aver installato lo stack LEMP, installa e proteggi phpMyAdmin come descritto nelle sezioni seguenti.

Installa phpMyAdmin con lo stack LEMP su Ubuntu 20.04 LTS

Esegui il seguente comando per installare phpMyAdmin dal Terminale:

$ sudo apt install phpmyadmin

Nella finestra successiva, ti verrà chiesto di selezionare il server web che dovrebbe essere configurato automaticamente per eseguire phpMyAdmin. Come puoi vedere nello screenshot qui sotto, Nginx non è disponibile nell'elenco dei server web. Apache e lighthttpd sono elencati solo qui. Quindi non selezionare qualsiasi server web e lascialo vuoto. Scegli OK e premi INVIO per continuare:

PhpMyAdmin richiede un database installato e configurato prima di poter essere utilizzato. Puoi farlo con dbconfig-command.

Scegli per configurare il database per phpmyadmin con dbconfig-common:

Devi fornire una password per phpmyadmin per registrarsi con il server di database MySQL. Se la password non viene fornita, verrà generata una password casuale.

Inserisci una password complessa e premi INVIO per continuare:

Reinserire la password:

Al momento della stesura di questa guida, quando ho provato a impostare la password per phpmyadmin, viene generato il seguente errore:

 An error occurred while installing the database:
mysql said: ERROR 1819 (HY000) at line 1: Your password does not satisfy
 the current policy requirements . Your options are:                                  
* abort - Causes the operation to fail; you will need to downgrade,             
reinstall, reconfigure this package, or otherwise manually intervene          
to continue using it. This will usually also impact your ability to           
install other packages until the installation failure is resolved.            
* retry - Prompts once more with all the configuration questions                
(including ones you may have missed due to the debconf priority               
setting) and makes another attempt at performing the operation.               
* retry (skip questions) - Immediately attempts the operation again,            
skipping all questions. This is normally useful only if you have 
solved the underlying problem since the time the error occurred.              
* ignore - Continues the operation ignoring dbconfig-common errors.             
This will usually leave this package without a functional database.

Questo errore si verifica perché abbiamo abilitato la VALIDATE PASSWORD componente come descritto nella sezione intitolata "2.2 Modifica del metodo di autenticazione per l'utente root MySQL" nella guida all'installazione dello stack LEMP allegata sopra.

Per risolvere questo problema, devi disabilitare temporaneamente il componente Convalida password e riattivarlo dopo aver impostato la password per phymyadmin. Fai clic su OK per chiudere il messaggio di errore sopra riportato e scegli "abort" per annullare l'installazione di phpmyadmin.

Ora accedi al prompt di Mysql eseguendo il seguente comando:

$ mysql -u root -p

Dal prompt di mysql, sintonizza il seguente comando per disabilitare il plug-in Convalida password:

mysql> UNINSTALL COMPONENT "file://component_validate_password";

Tieni presente che il comando sopra disabiliterà solo il plug-in, ma non lo rimuoverà. Puoi abilitarlo in seguito. Quindi digita "exit" per uscire dal prompt di MySQL.

mysql> exit

Ora prova a installare di nuovo phpmyadmin usando il comando:

$ sudo apt install phpmyadmin

Scegli "Sì" e premi INVIO per configurare il database per phpmyadmin con dbconfig-common. Questa volta l'installazione di phpmyadmin funzionerà senza problemi.

Una volta installato phpmyadmin, riattiva il plug-in Convalida password. Per farlo, accedi al tuo prompt di MySQL:

$ mysql -u root -p

Dal prompt di mysql, sintonizza il seguente comando per disabilitare il plug-in Convalida password:

mysql> INSTALL COMPONENT "file://component_validate_password";

Digita exit per uscire dal prompt di mysql.

mysql> exit

Ora crea un collegamento simbolico per configurare il server web Nginx per eseguire phpmyadmin usando il comando:

$ sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin

Questo comando creerà un collegamento simbolico chiamato "phpmyadmin" nella directory principale di Nginx. Questo collegamento simbolico in realtà punta alla directory /usr/share/phpmyadmin, dove sono archiviati i file effettivi.

Fatto! Abbiamo installato con successo PhpMyAdmin con lo stack LEMP.

Accedi alla dashboard di phpMyAdmin

Apri il tuo browser web e vai a "http://IP-Address/phpmyadmin" dalla barra degli indirizzi.

Dovresti vedere la pagina di accesso di phpmyadmin. Immettere l'utente del database e la relativa password:

Sarai soddisfatto della dashboard di phpMyAdmin.

Da qui puoi creare, eliminare e gestire database.

Crea un utente dedicato per accedere alla dashboard di phpMyAdmin

Una volta installato phpMyAdmin, un utente del database chiamato 'phpmyadmin' verrà creato automaticamente con la password amministrativa impostata durante l'installazione. Puoi accedere alla dashboard di phpmyAdmin utilizzando l'utente 'phpmyadmin' o mysql root utente come mostrato sopra. Tuttavia, si consiglia di creare un utente dedicato per gestire i database tramite l'interfaccia web di phpMyAdmin.

Per farlo, accedi alla shell di mysql usando il comando:

$ mysql -u root -p

Inserisci la tua password di root MySQL. Ora sarai nella shell di MySQL.

Immettere il comando seguente per creare un nuovo utente dedicato per phpmyadmin:

mysql> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'Password123#@!';

Qui, phpmyadmin è il nuovo utente per l'accesso alla dashboard di phpmyadmin. La password per phpmyadminuser è Password123#@! . Sostituisci questi valori con i tuoi.

Quindi dai i privilegi appropriati a 'phpmyadminuser' usando il comando:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;

Finalmente esci dalla shell di MySQL:

mysql> exit

Abbiamo ora creato un utente dedicato per la gestione dei database tramite l'interfaccia web di phpmyadmin. Andiamo avanti e accediamo alla dashboard di phpmyadmin.

Apri il browser web e vai a "http://IP-Address/phpayadmin. Inserisci l'utente del database appena creato e la sua password. Congratulazioni! Hai effettuato l'accesso con un utente dedicato alla dashboard web di phpMyAdmin.

Proteggi phpMyAdmin

Questa sezione fornisce alcuni suggerimenti per proteggere l'installazione di PhpMyAdmin. Tieni presente che i seguenti passaggi da soli non potrebbero proteggere phpMyAdmin al 100% sicuro. Tuttavia, rallenteranno almeno qualsiasi tentativo di un perpetratore di entrare nella dashboard di phpmyadmin.

Disabilita l'accesso root MySQL alla dashboard di phpmyadmin

Consentire all'utente root mysql di accedere al dashboard di phpMyAdmin non è sicuro, specialmente quando si gestiscono database in rete. Per questo abbiamo creato un utente dedicato nella sezione precedente. Dal momento che abbiamo già un utente dedicato, possiamo disabilitare in sicurezza il login root mysql per accedere alla dashboard di phpmyadmin per ridurre al minimo gli attacchi.

Generalmente, phpmyadmin è installato in /usr/share/phpmyadmin/ directory e i suoi file di configurazione sono archiviati in /etc/phpmyadmin directory.

Modifica il file di configurazione di phpmyadmin:

$ sudo nano /etc/phpmyadmin/config.inc.php

Aggiungi/modifica i seguenti parametri:

[...]
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowRoot'] = FALSE;
[...]

Salva e chiudi il file.

Riavvia il server web Nginx usando il comando:

$ sudo systemctl restart nginx

Ora prova ad accedere a phpmyadmin come utente root. Riceverai l'Accesso negato messaggio di errore:

Modifica l'URL dell'interfaccia web di phpmyadmin

Questa è la tattica più comune seguita dai robot per accedere a phpmyadmin. Puoi impedirlo cambiando l'URL in qualcosa di difficile da indovinare. La modifica dell'URL di phpmyadmin eviterà che i bot o gli script automatici eseguano la scansione degli URL e gli attacchi di forza bruta.

Ricordi che abbiamo creato un collegamento simbolico chiamato "phpmyadmin" nella directory principale di Nginx?

$ ls -l /var/www/html/
total 8
-rw-r--r-- 1 root root 612 Jun  2 07:15 index.nginx-debian.html
-rw-r--r-- 1 root root  20 Jun  2 07:35 info.php
lrwxrwxrwx 1 root root  22 Jun  2 08:14 phpmyadmin -> /usr/share/phpmyadmin/

Qui, phpmyadmin è il collegamento simbolico che punta alla directory /usr/share/phpmyadmin.

Cambieremo il nome del collegamento simbolico usando il comando:

$ sudo mv /var/www/html/phpmyadmin /var/www/html/ostechnix

Assicurati che il nome contenga caratteri casuali e sia molto difficile da indovinare.

D'ora in poi, ogni volta che qualcuno tenta di accedere alla pagina phpmyadmin navigando su http://IP-Address/phpmyadmin URL, riceverà il seguente messaggio di errore:

Perché abbiamo cambiato l'URL. Il nuovo URL di phpmyadmin è http://indirizzo-IP/otechnix.

Pagina di accesso phpMyAdmin protetta da password

Possiamo aggiungere un ulteriore livello di sicurezza limitando l'accesso alla pagina di accesso di phpmyadmin con il metodo di autenticazione HTTP di base. Significato:abilitiamo la protezione con password per la pagina di accesso di phpmyadmin, quindi gli utenti dovranno inserire un nome utente/password aggiuntivo prima di accedere alla pagina di accesso effettiva di phpMyAdmin.

Innanzitutto, dobbiamo generare un file di password utilizzando htpasswd utilità. L'utilità htpasswd fa parte di apache2-utils pacchetto. Quindi installiamolo usando il comando:

$ sudo apt install apache2-utils

Ora crea un file di password crittografato con il comando:

$ sudo htpasswd -c /etc/nginx/.htpasswd ostechnix

Sostituisci "otechnix" con un nome utente a tua scelta. Immettere una password complessa due volte per generare il file della password.

Per visualizzare il contenuto del file appena generato, fai causa al comando "cat" come di seguito:

$ cat /etc/nginx/.htpasswd

Vedrai un output come di seguito:

ostechnix:$apr1$Us9YABHL$CMPDIuHaOB2lK/DVIzA2C/

Successivamente, dobbiamo menzionare il percorso del file di password sopra nel nostro file di configurazione predefinito Nginx. Se hai seguito il nostro tutorial di installazione LEMP allegato sopra, la configurazione Nginx predefinita dovrebbe essere /etc/nginx/sites-available/default .

Modifica il file di configurazione Nginx predefinito:

$ sudo nano /etc/nginx/sites-available/default

Aggiungi le seguenti righe, sotto la "posizione" blocco:

[...]
location /ostechnix {
                auth_basic "Restricted Zone";
                auth_basic_user_file /etc/nginx/.htpasswd;
        }
[...]

Ricordi che abbiamo cambiato l'URL di phpMyAdmin (http://IP-Address/otechnix) nel passaggio precedente? Ecco perché ho menzionato il nome del blocco come "otechnix" nel blocco sopra. Sostituiscilo con il tuo. Salva e chiudi il file.

Controlla il file di configurazione di Nginx per eventuali errori di sintassi usando il comando:

$ sudo nginx -t

Risultato di esempio:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Se non vedi alcun errore, riavvia il servizio nginx per rendere effettive le modifiche.

$ sudo systemctl restart nginx

Ora prova ad accedere al tuo URL phpMyAdmin dal tuo browser. Ti verrà chiesto di inserire un nome utente e una password:

Immettere il nome utente e la password corretti che verranno creati in precedenza utilizzando l'utilità "htpasword". Ora verrai reindirizzato alla vera e propria pagina di accesso di phpMyAdmin, dove puoi inserire l'utente del database e la sua password per accedere alla dashboard web di phpMyAdmin.


Ubuntu
  1. Come installare Nginx con PHP e MySQL (LEMP Stack) su Ubuntu 20.04 LTS

  2. Installa WordPress con LEMP Stack su Ubuntu 20.04

  3. Installa phpMyAdmin su Ubuntu 14.10

  4. Come installare lo stack LEMP su Ubuntu 16.04

  5. Installa phpMyAdmin con lo stack LAMP su Ubuntu 18.04 LTS

Come installare phpMyAdmin con Apache su Ubuntu 22.04 LTS

Come installare l'ultimo phpMyAdmin con LEMP su Ubuntu 20.04

Come installare phpMyAdmin su Ubuntu 18.04 LTS

Come installare phpMyAdmin con Nginx su Ubuntu 18.04 LTS

Come installare phpMyAdmin con Nginx su Ubuntu 20.04 LTS

Come installare lo stack LEMP con PhpMyAdmin in Ubuntu 20.04