phpMyAdmin è uno strumento software open source utilizzato per la gestione di database MySQL/MariaDB. Fornisce un modo semplice per interagire con MySQL tramite un browser web. phpMyAdmin è molto utile per gli utenti che non si sentono a proprio agio nell'amministrare i propri dati dalla riga di comando, quindi è essenziale per qualsiasi amministratore di sistema proteggere phpMyAdmin da diversi tipi di attacchi.
In questo tutorial, ti mostreremo come installare e proteggere phpMyAdmin su CentOS 8.
Prerequisiti
- Un nuovo VPS CentOS 8 sulla piattaforma Atlantic.net Cloud.
- Una password di root configurata sul tuo server.
Fase 1:crea un server cloud Atlantic.Net
Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo CentOS 8 come sistema operativo con almeno 1 GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Dopo aver effettuato l'accesso al server CentOS 8, esegui il comando seguente per aggiornare il sistema di base con gli ultimi pacchetti disponibili.
dnf update -y
Fase 2 – Installa Apache, MariaDB e PHP
Prima di iniziare, installa Apache, MariaDB, PHP e altre estensioni PHP richieste con il seguente comando:
dnf install httpd mariadb-server php php-cli php-json php-mbstring php-pdo php-pecl-zip php-mysqlnd -y
Dopo aver installato tutti i pacchetti, puoi procedere al passaggio successivo.
Fase 3:imposta la password principale di MariaDB
Innanzitutto, avvia il servizio MariaDB e abilitalo all'avvio all'avvio con il seguente comando:
systemctl start mariadb systemctl enable mariadb
Quindi, imposta la password di root di MySQL utilizzando il seguente script:
mysql_secure_installation
Questo script imposterà la password di root MySQL, rimuoverà gli utenti anonimi, non consentirà l'accesso come root in remoto e rimuoverà il database di test e accederà ad esso, come mostrato di seguito:
Inserisci la password corrente per root (inserisci per nessuno):
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
Fase 4 – Installa phpMyAdmin
Per prima cosa, scarica l'ultima versione di phpMyAdmin nella directory principale web di Apache usando il seguente comando:
cd /var/www/html wget https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-all-languages.zip
Una volta scaricato, decomprimi il file scaricato con il seguente comando:
unzip phpMyAdmin-4.9.4-all-languages.zip
Quindi, rinomina la directory estratta in phpmyadmin come mostrato di seguito:
mv phpMyAdmin-4.9.4-all-languages phpmyadmin
Quindi, cambia la proprietà della directory phpmyadmin con l'utente apache:
chown -R apache:apache /var/www/html/phpmyadmin
Quindi, rinomina il file config.sample.inc.php:
cd /var/www/html/phpmyadmin mv config.sample.inc.php config.inc.php
Quindi, modifica il file e definisci la tua password sicura:
nano config.inc.php
Trova la riga sottostante e aggiorna con la tua password sicura, come mostrato di seguito:
$cfg['blowfish_secret'] = 'your-secure-password';
Salva e chiudi il file. Quindi, importa le tabelle per phpMyAdmin con il seguente comando:
mysql < sql/create_tables.sql -u root -p
Una volta terminato, puoi procedere al passaggio successivo.
Fase 5 – Configura Apache per phpMyAdmin
Quindi, crea un file di configurazione dell'host virtuale Apache per phpMyAdmin:
nano /etc/httpd/conf.d/phpmyadmin.conf
Aggiungi le seguenti righe:
Alias /phpmyadmin /var/www/html/phpmyadmin <Directory /var/www/html/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 /var/www/html/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. Quindi, avvia il servizio Apache e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:
systemctl start httpd systemctl enable httpd
Ora apri il tuo browser web e visita l'URL http://your-server-ip/phpmyadmin. Dovresti vedere l'interfaccia web di phpMyAdmin nella schermata seguente:
Accedi con le tue credenziali MySQL create in precedenza.
Fase 6 – Proteggi phpMyAdmin
In questa sezione, mostreremo diversi modi per proteggere la tua interfaccia web phpMyAdmin.
Cambia posizione di accesso a phpMyAdmin
È una buona idea cambiare l'URL di accesso della tua interfaccia phpMyAdmin. Puoi cambiarlo modificando il file phpmyadmin.conf:
nano /etc/httpd/conf.d/phpmyadmin.conf
Trova la seguente riga:
Alias /phpmyadmin /var/www/html/phpmyadmin
Sostituiscilo con la seguente riga:
Alias /securelocation /var/www/html/phpmyadmin
Salva e chiudi il file, quindi riavvia il servizio Apache per implementare le modifiche:
systemctl restart httpd
Ora puoi accedere all'interfaccia di phpMyAdmin utilizzando l'URL http://your-server-ip/securelocation.
Consenti phpMyAdmin da IP specifico
È sempre una buona idea consentire a phpMyAdmin di essere accessibile solo da un indirizzo IP specifico.
Per farlo, apri il file phpmyadmin.conf:
nano /etc/httpd/conf.d/phpmyadmin.conf
Trova le seguenti righe:
<RequireAny> Require all granted </RequireAny>
Sostituiscilo con il seguente:
<RequireAny> Require ip your-client-ip-address Require ip ::1 </RequireAny>
Salva e chiudi il file, quindi riavvia il servizio Apache per implementare le modifiche:
systemctl restart httpd
La tua interfaccia phpMyAdmin ora è accessibile solo da un indirizzo IP specificato.
Interfaccia phpMyAdmin di protezione con password
Puoi anche aggiungere un ulteriore livello di protezione con password su phpMyAdmin impostando l'autenticazione di base.
Innanzitutto, crea un file di autenticazione utilizzando il seguente comando:
htpasswd -c /etc/httpd/.htpasswd phpadmin
Fornisci una password sicura come mostrato di seguito:
New password: Re-type new password: Adding password for user phpadmin
Quindi, crea il file .htaccess all'interno della directory phpmyadmin:
nano /var/www/html/phpmyadmin/.htaccess
Aggiungi le seguenti righe:
AuthType basic AuthName "Authentication Required" AuthUserFile /etc/httpd/.htpasswd Require valid-user
Salva e chiudi il file quando hai finito.
Quindi, modifica il file phpmyadmin.conf e configura Apache per utilizzare il file .htpasswd.
nano /etc/httpd/conf.d/phpmyadmin.conf
Aggiungi le seguenti righe sotto la riga "AddDefaultCharset UTF-8":
AllowOverride All
Salva il file, quindi riavvia il servizio Apache per implementare le modifiche:
systemctl restart httpd
Fase 7:prova phpMyAdmin
A questo punto, l'interfaccia di phpMyAdmin è protetta con un ulteriore livello di protezione tramite password. Per testarlo, apri il tuo browser web e digita l'URL http://your-server-ip/securelocation. Ti verrà chiesto di fornire le credenziali di accesso che abbiamo creato in precedenza:
Digita il tuo nome utente e password e fai clic su OK pulsante. Verrai reindirizzato alla pagina di accesso di phpMyAdmin:
Fornisci il tuo nome utente e password MySQL, quindi fai clic su Vai pulsante. Dovresti vedere la tua interfaccia web phpMyAdmin nella schermata seguente:
Conclusione
Nella guida sopra, abbiamo imparato come installare e proteggere phpMyAdmin su CentOS 8. La tua interfaccia phpMyAdmin è ora protetta con una protezione aggiuntiva con password. Puoi utilizzare questo metodo per proteggere un server con un piano di hosting VPS Atlantic.Net.
Scopri di più sui nostri servizi di hosting VPS e sui server privati virtuali.