17. Configuration d’un serveur de bases de données sécurisé sur Ubuntu : MySQL contre MariaDB

Configurer un serveur de bases de données sécurisé sur Ubuntu est un fondement essentiel pour créer des applications évolutives et fiables. Que vous déployiez des applications web dynamiques ou gériez des charges de travail d’entreprise complexes, choisir la bonne solution de base de données est essentiel. MySQL et MariaDB sont deux des systèmes de bases de données open source les plus populaires, connus pour leurs performances, leur flexibilité et leur fiabilité.

Dans ce guide, nous vous guiderons pas à pas dans l’installation, la configuration et la sécurisation de MySQL et MariaDB sur un serveur Ubuntu. Nous comparerons également leurs fonctionnalités pour vous aider à déterminer la meilleure option pour votre cas d’usage. Grâce à cette approche pas à pas, vous serez en mesure de mettre en place un environnement de base de données sécurisé et robuste pour vos applications.


Articles précédents :

01. Introduction à Ubuntu Server – SysOSX: AI & Cloud

02. Comment configurer votre premier serveur Ubuntu : guide du débutant – SysOSX: AI & Cloud

03. Maîtriser la ligne de commande Linux pour Ubuntu Server – SysOSX: AI & Cloud

04. Gestion des utilisateurs et des autorisations sur Ubuntu Server : guide complet – SysOSX: AI & Cloud

05. Bases du réseau pour Ubuntu Server : guide complet – SysOSX: AI & Cloud

06. Installation et gestion des logiciels sur Ubuntu Server : guide complet – SysOSX: AI & Cloud

07.Application de correctifs et mise à jour d’Ubuntu Server : guide complet – SysOSX: AI & Cloud

08. Sécuriser votre serveur Ubuntu : étapes pratiques de durcissement et de protection – SysOSX: AI & Cloud

09. Audit et journalisation du serveur Ubuntu

10. Outils de surveillance système pour Ubuntu Server : guide complet – SysOSX: AI & Cloud

11. Journalisation centralisée pour le serveur Ubuntu : un guide incontournable – SysOSX: AI & Cloud

12. Audit et conformité pour Ubuntu Server : meilleures pratiques – SysOSX: AI & Cloud

13. Configuration de votre serveur Ubuntu pour l’hébergement et les applications web : guide ultime – SysOSX: AI & Cloud

14. Héberger plusieurs sites web sur un seul serveur Ubuntu : conseils utiles – SysOSX: AI & Cloud

15. Gestion du stockage et des disques sur Ubuntu Server : guide simple – SysOSX: AI & Cloud

16. Configuration des services de partage de fichiers sur Ubuntu Server : guide complet – SysOSX: AI & Cloud



Prérequis

Avant de commencer, assurez-vous des éléments suivants :

  • Ubuntu Server : Une instance d’Ubuntu en cours d’exécution (la version 20.04 ou ultérieure est recommandée).
  • Accès administrateur : Vous aurez besoin de privilèges sudo pour installer et configurer le serveur de bases de données.
  • Connexion internet : Nécessaire pour télécharger les paquets et les mises à jour.

MySQL contre MariaDB : principales différences

Bien que MySQL et MariaDB partagent les mêmes racines, ils ont divergé ces dernières années pour offrir des fonctionnalités distinctes. Cette comparaison vous aidera à choisir le serveur de bases de données adapté à vos besoins :

FonctionnalitéMySQLMariaDB
LicenceDouble licence (GPL et propriétaire)Open source (GPL)
PerformancesOptimisé pour les charges de travail à dominante de lecturePerformances améliorées pour les charges de travail de lecture et d’écriture
Moteur de stockage par défautInnoDBAria (alternative à InnoDB)
FonctionnalitésFonctionnalités d’entreprise disponibles dans les versions payantesDe nombreuses fonctionnalités (par exemple, pool de threads, fonctions JSON) sont open source
CompatibilitéLargement utilisé et pris en charge par les principales plateformesCompatible avec MySQL, mais peut ne pas prendre en charge certaines fonctionnalités propriétaires de MySQL
RéplicationRéplication traditionnelleRéplication améliorée avec prise en charge de Galera Cluster
Soutien de la communautéGrande communauté et options de support d’entrepriseFort soutien de la communauté open source

Recommandation:

  • Choisissez MySQL si vous avez besoin de fonctionnalités de niveau entreprise et d’une compatibilité avec les outils propriétaires.
  • Optez pour MariaDB si vous préférez un logiciel open source aux fonctionnalités et aux performances améliorées.

Installation de MySQL ou MariaDB

Étape 1 : Mettre à jour le dépôt de paquets

Mettez à jour votre système pour vous assurer de travailler avec les versions les plus récentes des paquets :

sudo apt update && sudo apt upgrade

Étape 2 : Installer MySQL ou MariaDB

Vous pouvez installer MySQL ou MariaDB selon votre préférence.

Installation de MySQL :

sudo apt install mysql-server

Installation de MariaDB :

sudo apt install mariadb-server

Étape 3 : Vérifier l’installation

Après l’installation, assurez-vous que le serveur de bases de données est en cours d’exécution :

Pour MySQL :

sudo systemctl status mysql

Pour MariaDB :

sudo systemctl status mariadb


Configuration du serveur de bases de données

Étape 1 : Configuration de base

Modifiez le fichier de configuration pour optimiser les performances et la sécurité.

Pour MySQL :

sudo nano /etc/mysql/my.cnf

Pour MariaDB :

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Paramètres clés à ajuster :

  • bind-address : Définissez-le sur 0.0.0.0 si vous souhaitez un accès à distance.
  • max_connections : Augmentez cette valeur pour les applications à fort trafic.

Après avoir apporté les modifications, redémarrez le service :

sudo systemctl restart mysql   # For MySQL
sudo systemctl restart mariadb # For MariaDB

Étape 2 : Tester le serveur de bases de données

Connectez-vous au serveur de bases de données pour vous assurer qu’il fonctionne :

mysql -u root -p


Sécurisation de votre serveur de bases de données

Étape 1 : Exécuter le script de sécurité

Utilisez le script de sécurité intégré pour durcir votre serveur de bases de données.

sudo mysql_secure_installation

Suivez les invites pour :

  • Définir un mot de passe root robuste.
  • Supprimer les utilisateurs anonymes.
  • Désactiver la connexion root à distance.
  • Supprimer les bases de données de test.

Étape 2 : Configurer les règles du pare-feu

Restreignez l’accès au serveur de bases de données avec ufw:

sudo ufw allow from <your-ip-address> to any port 3306

Remplacez <your-ip-address> par l’adresse IP qui nécessite l’accès.

Étape 3 : Activer SSL/TLS

Pour une sécurité renforcée, activez les connexions SSL/TLS. Consultez documentation MySQL ou documentation MariaDB pour les instructions de configuration.

(Exemple pour MySQL)

  1. Générez les certificats :
sudo mysql_ssl_rsa_setup --uid=mysql  
  1. Activez dans la configuration :
[mysqld]  
ssl-ca = /var/lib/mysql/ca.pem  
ssl-cert = /var/lib/mysql/server-cert.pem  
ssl-key = /var/lib/mysql/server-key.pem  

Étape 4 : Installer Fail2Ban (facultatif)

sudo apt install fail2ban  

Configurez les règles de jail pour MySQL/MariaDB dans /etc/fail2ban/jail.local.


Gestion de votre serveur de bases de données

Étape 1 : Créer une base de données

Créez une base de données pour votre application :

CREATE DATABASE my_application_db;

Étape 2 : Créer un utilisateur et accorder des privilèges

Créez un utilisateur et attribuez des privilèges :

CREATE USER 'app_user'@'%' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON my_application_db.* TO 'app_user'@'%';
FLUSH PRIVILEGES;

Étape 3 : Surveiller les performances

# Analyze slow queries  
sudo mysqldumpslow -s t /var/log/mysql/mysql-slow.log  

# Use MySQLTuner  
wget https://mysqltuner.pl -O mysqltuner.pl  
perl mysqltuner.pl  

Étape 4 : Sauvegarde et restauration

Des sauvegardes régulières sont essentielles pour la sécurité des données.

Sauvegarde :

mysqldump -u root -p my_application_db > my_application_db.sql

Restauration :

mysql -u root -p my_application_db < my_application_db.sql

Sauvegardes automatisées (tâche cron)

# Daily backup at 2 AM  
0 2 * * * /usr/bin/mysqldump -u root -p PASSWORD app_db > /backups/app_db_$(date +\%F).sql  

Conclusion

MySQL et MariaDB sont tous deux d’excellents choix pour mettre en place un serveur de bases de données sur Ubuntu. Alors que MySQL est connu pour ses fonctionnalités de niveau entreprise, MariaDB se distingue par son approche open source et ses améliorations de performances. En suivant ce guide, vous pourrez installer, configurer, sécuriser et gérer efficacement votre serveur de bases de données.

À venir:
Dans notre prochain guide, « Maîtriser LVM sur Ubuntu : un stockage flexible pour les serveurs de bases de données », vous apprendrez à :

  • Créer et gérer des volumes logiques pour un stockage de base de données dynamique.
  • Redimensionner les disques sans temps d’arrêt.
  • Mettre en œuvre des instantanés pour des sauvegardes cohérentes.

Ne le manquez pas : suivez notre blog pour rester informé !

Laisser un commentaire