Meilleurs conseils pour la sécurité MySQL et MariaDB

Publié: 2022-01-08

La sécurité est une préoccupation majeure pour de nombreuses personnes. Cet article vous donnera dix conseils sur la façon d'atteindre la sécurité MySQL et MariaDB afin de protéger vos bases de données contre les pirates. Ces conseils incluent : la sauvegarde des données, l'utilisation de mots de passe forts et la limitation des privilèges d'accès.


Meilleurs conseils pour la sécurité MySQL et MariaDB

Voici les meilleurs conseils pour assurer la sécurité de MySQL et MariaDB :


Supprimer des utilisateurs sans mot de passe

Si vous avez des utilisateurs dans votre base de données sans mot de passe, il est préférable de les supprimer. Cela aidera à réduire les chances que quelqu'un puisse pirater votre base de données. Vous pouvez utiliser la requête suivante pour supprimer ces utilisateurs :

Que les utilisateurs aient ou non accès uniquement à partir de l'hôte local, ils doivent être supprimés pour empêcher l'exécution de toute commande négative. De plus, les mots de passe faibles constituent un risque de sécurité en eux-mêmes.

Vous devez toujours utiliser des mots de passe forts lors de la création d'utilisateurs dans vos bases de données. Les mots de passe faibles sont plus faciles à déchiffrer par les pirates, ce qui pourrait les amener à accéder à votre base de données et à y faire des ravages s'ils y parviennent. L'utilisation d'un générateur de mots de passe automatisé vous aidera à créer des mots de passe plus forts et plus difficiles à déchiffrer.

Vous devriez également envisager d'utiliser l'authentification à deux facteurs pour vos utilisateurs. Cela nécessitera un code supplémentaire, généralement envoyé sur leur téléphone, afin de se connecter à la base de données. Il est donc beaucoup plus difficile pour quelqu'un d'accéder s'il ne dispose que de votre nom d'utilisateur et de votre mot de passe.


Limiter l'accès à distance

Si vous n'avez pas besoin de donner un accès à distance à votre base de données, il est préférable de le limiter. Cela aidera à réduire les chances que quelqu'un puisse pirater votre base de données à distance.

Heureusement, les dernières versions de MySQL et MariaDB limitent automatiquement l'accès à distance à la base de données, sauf indication contraire. Cependant, vous devez toujours vérifier vos paramètres de sécurité pour vous assurer que c'est le cas.

C'est aussi une bonne idée de s'assurer que tous les utilisateurs se connectent à MySQL uniquement par les hôtes exacts que vous désirez. Par exemple, cela peut être fait en utilisant ([email protected]).


Supprimer la base de données de test

Lorsque vous installez MySQL ou MariaDB, une base de données de test est automatiquement créée. Cette base de données contient des données qui peuvent être utilisées pour pirater vos vraies bases de données si elles tombent entre de mauvaises mains. Il est préférable de supprimer cette base de données afin qu'elle ne puisse pas être utilisée à des fins malveillantes.

Cette base de données de test provoque également une charge inutile sur le serveur de base de données. Il n'est utilisé que par les testeurs de bases de données pour tester les requêtes, il peut donc être supprimé sans affecter la fonctionnalité de vos bases de données.


Obfusquer l'accès à MySQL

Si vous ne voulez pas que les gens sachent que votre base de données existe, vous pouvez masquer son accès. Cela rendra plus difficile pour quelqu'un de trouver votre base de données et de la pirater.

L'obscurcissement de l'accès rend également plus difficile pour quiconque surveille votre trafic de déterminer quels ports sont utilisés par MySQL ou MariaDB.

Il est bien connu que MySQL s'exécute sur le port 3306, tandis que 'root' est le nom du superutilisateur. Vous pouvez résoudre ce problème en modifiant my.cnf et en modifiant la variable 'port'.


Sécurisez vos fichiers de configuration

Comme pour toute application, il est important de sécuriser vos fichiers de configuration pour MySQL ou MariaDB. Ces fichiers contiennent des informations sensibles, telles que des mots de passe et des données utilisateur. La sécurisation de ces fichiers aidera à empêcher quiconque d'accéder à ces informations s'ils accèdent à vos serveurs.


Sécurité Internet

Il est également important de sécuriser votre réseau, ainsi que les serveurs eux-mêmes. Cela aidera à réduire les risques que quelqu'un pirate votre base de données à partir d'un emplacement distant et y exécute des commandes néfastes.

La première chose que vous devez vous assurer est que MySQL n'est accessible que via une connexion locale, et non via le réseau. Vous pouvez le faire via un socket Unix. Entrez 'skip-networking' dans my.cnf. pour arrêter toutes les communications TCP/IP.

Vous pouvez également utiliser votre pare-feu pour bloquer l'accès à MySQL à partir de certaines adresses ou plages IP. Cela aidera à réduire les risques que quelqu'un pirate votre base de données à partir d'un emplacement distant.


Utiliser les plugins d'audit

Vous pouvez également utiliser des plugins d'audit pour suivre ce qui se passe dans votre base de données. Ceux-ci vous aideront à déterminer si quelqu'un a piraté votre base de données ou s'il se passe quelque chose de suspect qui pourrait le suggérer.

Il existe de nombreuses options gratuites et payantes pour ces plugins disponibles en ligne aujourd'hui. MySQL Enterprise Audit est une bonne option si MySQL Enterprise est déjà utilisé dans votre organisation. MariaDB possède également son propre plugin d'audit.

Ces plugins font tous un excellent travail pour surveiller votre base de données à la recherche d'activités suspectes. Ils peuvent même vous envoyer des alertes si quelque chose d'inhabituel est détecté afin que vous n'ayez pas à vérifier les journaux manuellement à chaque fois.


Désactiver LOAD DATA LOCAL INFILE

Une autre façon d'empêcher quelqu'un d'accéder à votre base de données consiste à désactiver la fonctionnalité LOCAL dans MySQL et MariaDB. Cette commande vous permet de charger des fichiers de données à partir d'un fichier local, mais elle présente également un risque de sécurité, surtout s'ils ne sont pas chiffrés. Pour désactiver cette fonction, définissez local-infile=0 dans my.cnf.


Privilèges de fichier

Il est également important de définir les privilèges de fichier corrects pour vos fichiers MySQL et MariaDB. Cela garantira que seuls les utilisateurs autorisés peuvent y accéder. Vous pouvez le faire en définissant les autorisations appropriées sur ces fichiers.

Par exemple, vous pouvez définir le propriétaire de tous vos fichiers MySQL sur "mysql" et le groupe sur "mysql", l'accès étant refusé à tous les autres utilisateurs. Cela garantira que seuls les utilisateurs disposant des autorisations appropriées pourront accéder à vos fichiers MySQL.


SSL et chiffrement des données en transit

Si vous utilisez MySQL ou MariaDB avec SSL activé, il est important que les certificats nécessaires soient installés sur votre serveur. Si cela n'est pas fait, n'importe qui peut intercepter les informations envoyées entre votre base de données et ses clients.

Vous devez également chiffrer toutes les données en transit pour une protection accrue de toutes les données sensibles transmises via les réseaux publics à l'aide de SSH.

Vous pouvez également chiffrer les données transmises entre votre serveur de base de données et d'autres appareils. Cela garantira que toute personne surveillant le trafic sur votre réseau ne pourra accéder à aucune des données qu'elle transmet ou reçoit, même si elle a réussi à pirater l'un de ces systèmes.

SSL serait un excellent moyen d'y parvenir pour les utilisateurs de MySQL, car il est déjà intégré au protocole. Les utilisateurs de MariaDB peuvent utiliser stunnel pour obtenir un effet similaire.


Chiffrement des données au repos

Enfin, vous devriez également envisager de chiffrer vos données au repos. Cela signifie que les données sont cryptées même lorsqu'elles ne sont pas transmises.

Cela peut être fait en utilisant un outil tel que MySQL Enterprise Encryption ou MariaDB Column Encryption.

Ces deux outils offrent un excellent moyen de protéger vos données contre l'accès si quelqu'un parvient à pirater votre serveur de base de données. Ils sont également très faciles à utiliser, vous n'avez donc pas besoin d'être un expert en cryptage pour profiter de ces outils.


Conclusion

Toutes les options mentionnées ici vous aideront à atteindre la sécurité MySQL et MariaDB, mais elles ne sont pas toutes parfaites pour toutes les situations. Vous devez tenir compte de vos besoins spécifiques lorsque vous les examinez afin de pouvoir choisir le meilleur possible. Cependant, ces conseils devraient vous donner une bonne idée de la façon de choisir une option qui fonctionnera bien pour vous.

J'espère que cet article vous a donné quelques bonnes idées sur la façon d'assurer la sécurité de MySQL et MariaDB dans votre organisation afin que personne ne puisse pirater vos bases de données s'il parvient à percer d'autres défenses.