Installare e rendere sicuro phpMyAdmin su Ubuntu 16.04

phpMyAdmin su Ubuntu 16.04

21 aprile 2016 Applicazioni MySQL PHP Apache Ubuntu 16.04

Introduzione

Anche se mloti utenti hanno bisogno della funzionalità di un DBMS come MySQL, non tutti potrebbero sentirsi a proprio agio interagendo con il sistema solo tramite il prompt di MySQL.

phpMyAdmin è stato creato in modo che gli utenti possono interagire con MySQL attraverso un’interfaccia web. In questa guida vedremo come installare e rendere  sicuro phpMyAdmin in modo che lo si possa utilizzare senza rischi al fine di gestire i database di un sistema Ubuntu 16.04.

Prerequisiti

Prima di iniziare con questa guida è necessario che completiate alcuni passaggi di base.

In primo luogo supponiamo che si stia utilizzando un utente non root con privilegi sudo, come descritto nei passaggi 1-4 della configurazione iniziale del server Ubuntu 16.04.

Stiamo anche supponendo che si abbia completato un’installazione LAMP (Linux, Apache, MySQL e PHP) sul server Ubuntu 16.04. Se questa non è ancora stata completata, è possibile seguire questa guida sulla installazione di uno stack LAMP su Ubuntu 16.04.

Infine, vi sono importanti considerazioni di sicurezza da fare quando si usa un software come phpMyAdmin, dal momento che:

  • Comunica direttamente con il MySQL che avete installato
  • Gestisce l’autenticazione utilizzando le credenziali di MySQL
  • Esegue e restituisce i risultati di query SQL arbitrarie

Per questi motivi e poiché si tratta di un’applicazione PHP così ampiamente diffusa che spesso viene destinata ad essere posta sotto attacco, non si dovrebbe mai eseguire phpMyAdmin su sistemi remoti tramite una semplice connessione HTTP. Se non si dispone di un dominio configurato con un certificato SSL/TLS, è possibile seguire questa guida su come configurare Apache con Let’s Encrypt su Ubuntu 16.04.

Una volta terminato con questi passaggi si è pronti per iniziare a seguire questa guida.

Fase uno – Installare phpMyAdmin

Per iniziare possiamo semplicemente installare phpMyAdmin dai repository di default di Ubuntu.

Possiamo farlo aggiornando l’elenco locale dei pacchetti e quindi usando il sistema di pacchettizzazione apt per scaricare i file ed installarli sul nostro sistema:

$ sudo apt-get update
$ sudo apt-get install phpmyadmin php-mbstring php-gettext

Al fine di configurare correttamente l’installazione vi verrà posta qualche domanda.

Attenzione: Quando appare la prima domanda, viene evidenziato apache2 ma non selezionatelo. Se non si preme la barra spaziatrice per selezionare Apache, il programma di installazione non sposterà gli opportuni file durante l’installazione. Premete Spazio, Tab e quindi Invio per selezionare Apache.

  • Per la selezione del server scegliete apache2.
  • Selezionate yes quando vi viene chiesto se va usato dbconfig-common per impostare il database
  • Vi verrà richiesta la password di amministratore del database
  • Vi verrà chiesto di scegliere e confermare una password per l’applicazione phpMyAdmin stessa

Il processo di installazione in realtà aggiunge il file di configurazione di phpMyAdmin per Apache nella directory /etc/apache2/conf-enabled/, che verrà letto in modo automatico.

L’unica cosa che dobbiamo fare è abilitare esplicitamente le estensioni PHP mcrypt e mbstring, cosa che si può fare digitando:

$ sudo phpenmod mcrypt
$ sudo phpenmod mbstring

In seguito sarà necessario riavviare Apache per far riconoscere le modifiche:

$ sudo systemctl restart apache2

A questo punto è possibile accedere all’interfaccia Web visitando il nome a dominio del server, o l’indirizzo IP pubblico, seguito da /phpmyadmin :

https://domain_name_or_IP/phpmyadmin

phpMyAdmin su Ubuntu 16.04

Ora è possibile accedere all’interfaccia utilizzando l’utente root e la password di amministrazione impostata durante l’installazione di MySQL.

Quando entrerete vedrete l’interfaccia utente che sarà simile a questa:

phpMyAdmin su Ubuntu 16.04

Fase due – Rendere sicuro phpMyAdmin

Siamo stati in grado di rendere funzionante l’nterfaccia del nostro phpMyAdmin abbastanza facilmente. Tuttavia, non abbiamo ancora finito. A causa della sua onnipresenza, phpMyAdmin è un popolare bersaglio per i malintenzionati. Dovremmo prendere misure supplementari per prevenire gli accessi non autorizzati.

Uno dei modi più semplice per farlo è quello di mettere un gateway di fronte all’intera applicazione. Possiamo farlo utilizzando le funzionalità .htaccess, integrate in Apache, per l’autenticazione e l’autorizzazione.

Configurare Apache per consentire gli ovverride di .htaccess

In primo luogo abbiamo bisogno di abilitare l’uso dell’ovverride dei file di .htaccess  modificando il nostro file di configurazione di Apache.

Modificheremo il file linkato che è stato inserito nella nostra directory di configurazione di Apache:

$ sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Dobbiamo aggiungere una direttiva AllowOverride All nella sezione <Directory /usr/share/phpmyadmin> del file di configurazione, in questo modo:

/etc/apache2/conf-available/phpmyadmin.conf

<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All
    . . .

Dopo aver aggiunto questa linea salvate e chiudete il file.

Per implementare le modifiche apportate, riavviate Apache:

$ sudo systemctl restart apache2

Creare un file .htaccess

Ora che abbiamo abilitato l’uso di .htaccess per la nostra applicazione, abbiamo bisogno di crearne uno per implementare per davvero un minimo di sicurezza.

Affinché ciò avvenga il file deve essere creato all’interno della directory dell’applicazione. Siamo in grado di creare il file necessario ed aprirlo tramite l’editor di testo con i privilegi di root digitando:

$ sudo nano /usr/share/phpmyadmin/.htaccess

All’interno di questo file è necessario inserire le seguenti informazioni:

/usr/share/phpmyadmin/.htaccess

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Esaminiamo il significato di ognuna di queste linee:

  • AuthType Basic : Questa riga specifica il tipo di autenticazione che stiamo attuando. Che sarà quello di implementare l’autenticazione via password utilizzando un file delle password.
  • AuthName : Imposta il messaggio per la finestra di dialogo dell’autenticazione. Dovreste lasciarlo generico di modo che gli utenti non autorizzati non ottengano alcuna informazione su ciò che si sta proteggendo.
  • AuthUserFile : Imposta la posizione del file delle password che verrà utilizzato per l’autenticazione. Questo file dovrebbe essere al di fuori delle directory a cui il server web può accedere. Creeremo questo file a breve.
  • Require valid-user : Specifica che solo gli utenti autenticati dovranno avere accesso a questa risorsa. Questo è ciò che effettivamente impedisce l’accesso agli utenti non autorizzati.

Una volta terminato salvate e chiudete il file.

Creare il file .htpasswd per l’autenticazione

Ora che abbiamo specificato una posizione per il nostro file delle password attraverso l’uso della direttiva AuthUserFile all’interno del nostro file.htaccess, abbiamo bisogno di creare questo file.

Per completare questo processo abbiamo bisogno di un pacchetto aggiuntivo. Siamo in grado di installarlo dai nostri repository di default:

$ sudo apt-get install apache2-utils

Dopodiché avremo a disposizione l’utility htpasswd.

La posizione che abbiamo selezionato per il file delle password era “/etc/phpmyadmin/.htpasswd “. Creiamo questo file e passiamogli un utente di partenza, digitando:

sudo htpasswd -c /etc/phpmyadmin/.htpasswd username

Vi verrà richiesto di selezionare e confermare una password per l’utente che si sta creando. In seguito il file viene creato con l’hash della password che avete inserito.

Se si desidera immettere un altro utente è necessario farlo senza il flag -c, in questo modo:

sudo htpasswd /etc/phpmyadmin/.htpasswd ulterioreusername

Ora, quando si accede alla directory phpMyAdmin, vi verrano richiesti il nome dell’account aggiuntivo e la password che avete appena configurato:

https://domain_name_or_IP/phpmyadmin

phpMyAdmin su Ubuntu 16.04

Dopo aver inserito l’autenticazione di Apache sarete mandati alla solita pagina di autenticazione di phpMyAdmin per inserire le altre credenziali. Questo aggiungerà un ulteriore livello di sicurezza visto che phpMyAdmin, in passato, ha sofferto di problemi di vulnerabilità.

Conclusioni

Ora dovreste avere phpMyAdmin configurato e pronto per l’uso sul vostro server Ubuntu 16.04. Utilizzando questa interfaccia è possibile creare facilmente database, utenti, tabelle, ecc, ed eseguire le solite operazioni come l’eliminazione e la modifica di strutture e di dati.

 






Home | Chi siamo | Chat | Contattaci | Whois

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *