Présentation
MySQL est un système de gestion de base de données relationnelle open source et fait partie de la célèbre pile LAMP. Le mysql_secure_installation
script vous permet d'améliorer considérablement la sécurité du serveur MySQL.
Dans ce guide, vous apprendrez à sécuriser un serveur MySQL.
Prérequis
- Un système Linux avec MySQL installé (vous utilisez un système d'exploitation différent ? Découvrez comment installer et configurer MySQL sur un serveur Windows, CentOS 7 ou CentOS 8).
- Accès au terminal (Ctrl+Alt+T ).
- Une connexion réseau.
- Un compte avec des privilèges d'administrateur.
Commande mysql_secure_installation
Après l'installation, l'instance du serveur MySQL sur votre machine n'est pas sécurisée et susceptible d'être attaquée. mysql_secure_installation
est un script shell développé pour sécuriser l'installation du serveur MySQL sur les systèmes Unix. Le script configure les paramètres de sécurité et vous permet de :
- Définir un mot de passe pour les comptes root (voir comment réinitialiser ou modifier le mot de passe root MySQL)
- Supprimez les comptes root accessibles depuis l'extérieur de l'hôte local.
- Supprimez les comptes d'utilisateurs anonymes.
- Supprimez la base de données de test, accessible aux utilisateurs anonymes.
- Recharger les tables de privilèges utilisateur.
Le [option]
Les arguments sont facultatifs et abordés dans la section suivante.
1. Exécutez le mysql_secure_installation
script en utilisant la syntaxe suivante :
sudo mysql_secure_installation [option]
2. Saisissez votre mot de passe et appuyez sur Y
pour configurer le VALIDATE PASSWORD
composant qui vérifie si le nouveau mot de passe est suffisamment fort.
3. Ensuite, saisissez 0
, 1
, ou 2
en fonction de la force du mot de passe que vous souhaitez définir :
0
- Faible . Le mot de passe est composé d'au moins 8 caractères.1
- Moyen . Le mot de passe est composé d'au moins 8 caractères (y compris des chiffres, des caractères mixtes et des caractères spéciaux).2
- Fort . Le mot de passe se compose d'au moins 8 caractères (y compris des caractères numériques, mixtes et spéciaux, et compare le mot de passe à un fichier de dictionnaire).
4. Une fois que vous avez spécifié la force requise, saisissez et ressaisissez le mot de passe.
5. Le programme évalue la force de votre mot de passe et demande une confirmation avec Y
continuer.
6. Ensuite, vous devez répondre aux éléments de sécurité suivants :
- Supprimer les utilisateurs anonymes ?
- Interdire la connexion root à distance ?
- Supprimer la base de données de test et y accéder ?
- Recharger les tables de privilèges maintenant ?
Pour exécuter le script avec le paramètre par défaut, la réponse recommandée à toutes ces questions est Y
.
Options mysql_secure_installation
Le mysql_secure_installation
Le script accepte certaines options qui personnalisent les configurations de sécurité MySQL. Spécifiez les options dans la ligne de commande ou dans le [client]
groupe du fichier d'options.
L'mysql_secure_installation
le plus couramment utilisé les options sont --host
et --port
.
Par exemple, vous pouvez configurer MySQL pour autoriser les connexions IPv6 par les clients qui se connectent au serveur local en utilisant le port 3307. Pour ce faire, vous devez ajouter le ::1
l'adresse de l'hôte local et changez le port par défaut (3306) en 3307.
Par conséquent, lors de l'exécution du script d'installation, vous utiliserez la commande :
mysql_secure_installation --host=::1 --port=3307
Les autres options prises en charge incluent :
--basedir=dir | Spécifiez le répertoire de base. |
--print-defaults | Imprime la liste des arguments du programme et quitte. |
--no-defaults | Empêche le script de lire les options par défaut à partir de n'importe quel fichier d'options. |
--defaults-file=# | Instruit le script de lire uniquement le fichier d'options spécifié # . |
--defaults-extra-file=# | Lit le fichier spécifié # après avoir lu les fichiers d'options habituels. |
--defaults-group-suffix=str | Lit les groupes d'options usuels, mais aussi les groupes avec les noms usuels et un str suffixe. |
--help | Affiche un message d'aide et quitte. |
--host=host_name | Se connecte au serveur MySQL sur l'hôte spécifié. |
--no-defaults | Empêche le script de lire les fichiers d'options (sauf .mylogin.cnf fichier). |
--password | Le script accepte cette option mais l'ignore toujours. Par conséquent, le script demande un mot de passe chaque fois qu'il est invoqué. |
--port=# | Spécifiez le numéro de port TCP/IP auquel se connecter. |
--print-defaults | Imprime le nom du programme et les options par défaut. |
--protocol={#} | Spécifier un protocole de transport à utiliser pour se connecter au serveur {TCP | SOCKET | PIPE | MEMORY} . |
--socket=path | Spécifiez le fichier socket Unix ou Windows named_pipe variable pour se connecter à localhost . |
--ssl=[1 | 0] | Active ou désactive le cryptage de connexion, respectivement. Les options commençant par --ssl peut également indiquer le chemin d'accès aux clés et certificats SSL. |
--ssl-ca=filename | Spécifiez le fichier contenant la liste des autorités de certification SSL de confiance. |
--ssl-capath=dir | Spécifiez le chemin du répertoire contenant les fichiers de certificat de l'autorité de certification SSL de confiance. |
--ssl-cert=filename | Le chemin d'accès au fichier contenant le certificat de clé publique SSL du client. |
--ssl-cipher=list | Une liste des chiffrements autorisés pour le chiffrement de connexion. |
--ssl-crl=filename | Le chemin d'accès au fichier contenant les listes de révocation de certificats. |
--ssl-crlpath=dir | Le répertoire contenant les fichiers de liste de révocation de certificats. |
--ssl-key=filename | Le chemin d'accès au fichier contenant le certificat de clé privée SSL du client. |
--ssl-mode=mode | Spécifiez l'un des états de sécurité de la connexion au serveur, par ordre croissant de rigueur :[DISABLED | PREFERRED | REQUIRED | VERIFY_CA | VERIFY_IDENTITY] . |
--ssl-verify-server-cert | Demandez au client de vérifier l'identité du nom d'hôte par rapport au certificat du serveur contenant l'identité du nom commun. |
--tls-version=list | Spécifiez une liste séparée par des virgules des protocoles TLS autorisés pour les connexions chiffrées. |
--use-default | Le script s'exécute sans interaction. |
--user=username | Spécifiez le nom d'utilisateur du compte MySQL pour la connexion au serveur. |