6° Sécurisation phpMyAdmin

Rappelons d'abord que phpMyAdmin est une application web et une interface qui permet de gérer les bases de données MySQL et MariaDB,

Comme nous l'avons vu et testé précédemment, phpMyAdmin est accessible via l'adresse IP du serveur et sans https, ce qui n'est pas forcement très bien en terme de sécurité.

L'idée est d'utiliser un sous-domaine en https afin de le sécuriser.

Voilà les manipulations à faire pour changer cela :

1°/ Désactiver l’accès via l’adresse par défaut.

sudo nano /etc/phpmyadmin/apache.conf

Commenter la ligne :

Alias /phpmyadmin /usr/share/phpmyadmin

=>

#Alias /phpmyadmin /usr/share/phpmyadmin

Sauvegarder le fichier.

Dans le répertoire /etc/apache2/sites-available/

créer un fichier .conf pour un nouveau site :

sudo nano mysqladmin.monsite.com.conf

<VirtualHost *:80>
        ServerName mysqladmin.monsite.com
        ServerAlias mysqladmin.monsite.com
        DocumentRoot /usr/share/phpmyadmin
        <Directory "/usr/share/phpmyadmin">
        </Directory>
</VirtualHost>

sudo a2ensite mysqladmin.monsite.com

sudo systemctl restart apache2

Maintenant vous devriez pouvoir accéder à phpMyAdmin par :

http://mysqladmin.monsite.com

Maintenant il faut ajouter le https :

sudo certbot --apache

puis choisir le numéro de mysql.monsite.com dans la liste.

Maintenant l'accès s'effectue par :

https://mysqladmin.monsite.com


Vous pouvez ajouter une protection supplémentaire par mot de passe.

Pour cela modifier le fichier .conf avec la directive "AllowOverride All" comme ci-dessous :

<VirtualHost *:80>
        ServerName mysqladmin.monsite.com
        ServerAlias mysqladmin.monsite.com
        DocumentRoot /usr/share/phpmyadmin
        <Directory "/usr/share/phpmyadmin">
        AllowOverride All
        </Directory>
</VirtualHost>

Puis dans le répertoire de phpmyadmin :

sudo nano /usr/share/phpmyadmin/.htaccess

puis :

AuthUserFile /usr/share/phpmyadmin/.htpasswd
AuthName "Password Protected Area"
AuthType Basic
<limit GET POST>
require valid-user
</limit>

et enfin créer le mot de passe avec la commande :

sudo htpasswd -c /usr/share/phpmyadmin/.htpasswd username

puis redémarrer Apache afin de prendre en compte la modification :

sudo service apache2 restart