Introduzione
Mentre molti utenti hanno bisogno della funzionalità di un sistema di gestione di database come MySQL, potrebbero non sentirsi a proprio agio interagendo con il sistema esclusivamente dal prompt MySQL.
phpMyAdmin è stato creato in modo che gli utenti possano interagire con MySQL attraverso un’interfaccia web. In questa guida, discuteremo come installare e proteggere phpMyAdmin in modo da poterlo utilizzare in modo sicuro per gestire i database da un sistema Ubuntu 16.04.
Prerequisiti
Prima di iniziare con questa guida, è necessario avere alcuni passaggi di base completati.
In primo luogo, assumeremo che si sta utilizzando un utente non root con privilegi sudo, come descritto nei passaggi 1-4 nella configurazione iniziale del server di Ubuntu 16.04.
Assumeremo anche che tu abbia completato un’installazione LAMP (Linux, Apache, MySQL e PHP) sul tuo server Ubuntu 16.04. Se questo non è ancora completato, puoi seguire questa guida sull’installazione di uno stack LAMP su Ubuntu 16.04.
Infine, ci sono importanti le considerazioni di sicurezza quando si utilizza il software come phpMyAdmin, dato che:
- Comunica direttamente con la vostra installazione di MySQL
- Maniglie di autenticazione tramite credenziali di MySQL
- Esegue e restituisce i risultati per la query SQL
Per questi motivi, e perché è una diffusa applicazione PHP che viene spesso presa di mira per l’attacco, non si dovrebbe mai eseguire phpMyAdmin su sistemi remoti tramite una normale connessione HTTP. Se non si dispone di un dominio esistente configurato con un certificato SSL / TLS, è possibile seguire questa guida sulla protezione di Apache con Let’s Encrypt su Ubuntu 16.04.
Una volta che hai finito con questi passaggi, sei pronto per iniziare con questa guida.
Fase uno — Installare phpMyAdmin
Per iniziare, installeremo phpMyAdmin dai repository Ubuntu predefiniti.
Possiamo farlo aggiornando il nostro indice dei pacchetti locali e quindi utilizzando il sistema di pacchettizzazioneapt
per estrarre i file e installarli sul nostro sistema:
- sudo apt-get update
- sudo apt-get install phpmyadmin php-mbstring php-gettext
Questo ti farà alcune domande per configurare correttamente l’installazione.
Avviso: quando viene visualizzato il primo prompt, apache2 è evidenziato, ma non selezionato. Se non si preme lo spazio per selezionare Apache, il programma di installazione non sposterà i file necessari durante l’installazione. Premi Spazio, Scheda e quindi Invio per selezionare Apache.
- Per la selezione del server, scegliere apache2.
- Selezionare sì quando viene chiesto se utilizzare
dbconfig-common
per impostare il database - Si sarà chiesto il tuo database di password di amministratore
- Ti verrà chiesto di scegliere e confermare una password per l’
phpMyAdmin
applicazione
Il processo di installazione aggiunge effettivamente il phpMyAdmin file di configurazione di Apache nel /etc/apache2/conf-enabled/
directory, dove si viene letto automaticamente.
L’unica cosa che dobbiamo fare è abilitare esplicitamente il PHP mcrypt
e mbstring
estensioni, che si può fare con il comando:
- sudo phpenmod mcrypt
- sudo phpenmod mbstring
Successivamente, avrete bisogno di riavviare Apache per le modifiche devono essere riconosciuti:
- sudo systemctl restart apache2
ora È possibile accedere all’interfaccia web visitando il tuo nome di dominio del server o l’indirizzo IP pubblico seguito da /phpmyadmin
:
https://domain_name_or_IP/phpmyadmin
È ora possibile accedere all’interfaccia utilizzando il root
nome utente e la password amministrativa impostata durante l’installazione di MySQL.
Quando accedi, vedrai l’interfaccia utente, che sarà simile a questa:
Fase due — Proteggi la tua istanza phpMyAdmin
Siamo stati in grado di ottenere la nostra interfaccia phpMyAdmin installato e funzionante abbastanza facilmente. Tuttavia, non abbiamo ancora finito. A causa della sua ubiquità, phpMyAdmin è un bersaglio popolare per gli aggressori. Dovremmo prendere ulteriori misure per impedire l’accesso non autorizzato.
Uno dei modi più semplici per farlo è posizionare un gateway di fronte all’intera applicazione. Possiamo farlo usando le funzionalità di autenticazione e autorizzazione integrate di Apache .htaccess
.
Configura Apache per consentire .htaccess Sovrascrive
In primo luogo, dobbiamo abilitare l’uso di .htaccess
sovrascrive il file modificando il nostro file di configurazione di Apache.
Ci permetterà di modificare il file collegato che è stato inserito nella nostra configurazione di Apache directory:
- sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Abbiamo bisogno di aggiungere un AllowOverride All
direttiva all’interno del <Directory /usr/share/phpmyadmin>
sezione del file di configurazione come questa:
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All . . .
Dopo aver aggiunto questa riga, salvare e chiudere il file.
Per implementare le modifiche apportate, riavviare Apache:
- sudo systemctl restart apache2
Creare un .htaccess File
Ora che abbiamo abilitato .htaccess
utilizzare per la nostra applicazione, abbiamo bisogno di crearne uno per implementare effettivamente un po ‘ di sicurezza.
Affinché questo abbia successo, il file deve essere creato all’interno della directory dell’applicazione. Possiamo creare il file necessario e aprirlo nel nostro editor di testo con privilegi di root digitando:
- sudo nano /usr/share/phpmyadmin/.htaccess
All’interno di questo file, dobbiamo inserire le seguenti informazioni:
AuthType BasicAuthName "Restricted Files"AuthUserFile /etc/phpmyadmin/.htpasswdRequire valid-user
Andiamo oltre ciò che ciascuna di queste righe significano:
-
AuthType Basic
: Questa riga specifica il tipo di autenticazione che stiamo implementando. Questo tipo implementerà l’autenticazione della password utilizzando un file di password. -
AuthName
: Imposta il messaggio per la finestra di dialogo autenticazione. Dovresti mantenere questo generico in modo che gli utenti non autorizzati non ottengano alcuna informazione su ciò che viene protetto. -
AuthUserFile
: Imposta la posizione del file della password che verrà utilizzato per l’autenticazione. Questo dovrebbe essere al di fuori delle directory che vengono servite. Creeremo questo file a breve. -
Require valid-user
: Specifica che solo gli utenti autenticati devono avere accesso a questa risorsa. Questo è ciò che in realtà impedisce agli utenti non autorizzati di entrare.
Al termine, salvare e chiudere il file.
Creare il .file htpasswd per l’autenticazione
La posizione che abbiamo selezionato per il nostro file di password era “/etc/phpmyadmin/.htpasswd
”. Ora possiamo creare questo file e passarlo a un utente iniziale con l’utilitàhtpasswd
:
- sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
Verrà richiesto di selezionare e confermare una password per l’utente che si sta creando. Successivamente, il file viene creato con la password hash che hai inserito.
Se vuoi inserire un utente aggiuntivo, devi farlo senza il flag -c
, come questo:
- sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser
Ora, quando accedi alla tua sottodirectory phpMyAdmin, ti verrà richiesto il nome e la password dell’account aggiuntivo che hai appena configurato:
https://domain_name_or_IP/phpmyadmin
Dopo aver inserito l’autenticazione Apache, verrai indirizzato alla normale pagina di autenticazione phpMyAdmin per inserire le tue altre credenziali. Ciò aggiungerà un ulteriore livello di sicurezza poiché phpMyAdmin ha sofferto di vulnerabilità in passato.
Conclusione
Ora dovresti avere phpMyAdmin configurato e pronto per l’uso sul tuo server Ubuntu 16.04. Utilizzando questa interfaccia, è possibile creare facilmente database, utenti, tabelle, ecc., ed esegua le operazioni solite come cancellando e modificando strutture e dati.