Introducción
MySQL es un sistema de administración de bases de datos relacionales de código abierto y parte de la popular pila LAMP. La instalación_segura_mysql
script le permite mejorar significativamente la seguridad del servidor MySQL.
En esta guía, aprenderá a proteger un servidor MySQL.
Requisitos previos
- Un sistema Linux con MySQL instalado (¿Usa un sistema operativo diferente? Vea cómo instalar y configurar MySQL en un servidor Windows, CentOS 7 o CentOS 8).
- Acceso a la terminal (Ctrl+Alt+T ).
- Una conexión de red.
- Una cuenta con privilegios de administrador.
comando mysql_secure_installation
Después de la instalación, la instancia del servidor MySQL en su máquina es insegura y susceptible a ataques. instalación_segura_mysql
es un script de shell desarrollado para asegurar la instalación del servidor MySQL en sistemas Unix. El script configura los ajustes de seguridad y le permite:
- Establezca una contraseña para las cuentas raíz (vea cómo restablecer o cambiar la contraseña raíz de MySQL)
- Elimine las cuentas raíz accesibles desde fuera del host local.
- Eliminar cuentas de usuarios anónimos.
- Elimine la base de datos de prueba, a la que pueden acceder usuarios anónimos.
- Vuelva a cargar las tablas de privilegios de usuario.
El [opción]
Los argumentos son opcionales y se analizan en la siguiente sección.
1. Ejecute mysql_secure_installation
script usando la siguiente sintaxis:
sudo mysql_secure_installation [option]
2. Escriba su contraseña y presione Y
para configurar VALIDAR CONTRASEÑA
componente que comprueba si la nueva contraseña es lo suficientemente segura.
3. Luego, ingrese 0
, 1
o 2
dependiendo de la seguridad de la contraseña que desee establecer:
0
- Bajo . La contraseña consta de al menos 8 caracteres.1
- Medio . La contraseña consta de al menos 8 caracteres (incluidos caracteres numéricos, en mayúsculas y minúsculas y especiales).2
- Fuerte . La contraseña consta de al menos 8 caracteres (incluidos caracteres numéricos, de mayúsculas y minúsculas y especiales, y compara la contraseña con un archivo de diccionario).
4. Una vez que especifique la fuerza requerida, ingrese y vuelva a ingresar la contraseña.
5. El programa evalúa la seguridad de su contraseña y requiere confirmación con Y
continuar.
6. A continuación, debe responder a las siguientes funciones de seguridad:
- ¿Eliminar usuarios anónimos?
- ¿Deshabilitar el inicio de sesión raíz de forma remota?
- ¿Eliminar la base de datos de prueba y acceder a ella?
- ¿Recargar tablas de privilegios ahora?
Para ejecutar el script con la configuración predeterminada, la respuesta recomendada a todas estas preguntas es Y
.
opciones de mysql_secure_installation
La instalación_segura_mysql
script acepta ciertas opciones que personalizan las configuraciones de seguridad de MySQL. Especifique las opciones en la línea de comando o en el [cliente]
grupo del archivo de opciones.
La mysql_secure_installation
más utilizada las opciones son --host
y --puerto
.
Por ejemplo, puede configurar MySQL para permitir conexiones IPv6 por parte de clientes que se conectan al servidor local mediante el puerto 3307. Para hacerlo, debe agregar el ::1
dirección de host local y cambie el puerto predeterminado (3306) a 3307.
Por lo tanto, al ejecutar el script de instalación, usaría el comando:
mysql_secure_installation --host=::1 --port=3307
Otras opciones admitidas incluyen:
--basedir=dir | Especifique el directorio base. |
--print-defaults | Imprimir la lista de argumentos del programa y salir. |
--no-default | Evita que el script lea las opciones predeterminadas de cualquier archivo de opciones. |
--defaults-file=# | Instruye al script para que lea solo el archivo de opciones especificado . |
--defaults-extra-file=# | Lee el archivo especificado # después de leer los archivos de opciones habituales. |
--defaults-group-suffix=str | Lee los grupos de opciones habituales, pero también grupos con los nombres habituales y un cadena sufijo. |
--help | Muestra un mensaje de ayuda y sale. |
--host=nombre_host | Se conecta al servidor MySQL en el host especificado. |
--no-defaults | Evita que el script lea los archivos de opciones (excepto .mylogin.cnf archivo). |
--contraseña | El script acepta esta opción pero siempre la ignora. Por lo tanto, el script solicita una contraseña cada vez que se invoca. |
--port=# | Especifique el número de puerto TCP/IP al que conectarse. |
--print-defaults | Imprime el nombre del programa y las opciones por defecto. |
--protocol={#} | Especifique un protocolo de transporte a utilizar para conectarse al servidor {TCP | ENCHUFE | TUBO | MEMORIA} . |
--socket=ruta | Especifique el archivo de socket de Unix o Windows named_pipe variable para conectarse a . |
--ssl=[1 | 0] | Habilita o deshabilita el cifrado de conexión, respectivamente. Las opciones que comienzan con --ssl también puede indicar la ruta a las claves y certificados SSL. |
--ssl-ca=nombre de archivo | Especifique el archivo que contiene la lista de autoridades de certificación SSL de confianza. |
--ssl-capath=dir | Especifique la ruta del directorio que contiene los archivos de certificado de la autoridad de certificación SSL de confianza. |
--ssl-cert=nombre de archivo | La ruta al archivo que contiene el certificado de clave pública SSL del cliente. |
--ssl-cipher=lista | Una lista de cifrados permitidos para el cifrado de conexiones. |
--ssl-crl=nombre de archivo | La ruta al archivo que contiene las listas de revocación de certificados. |
--ssl-crlpath=dir | El directorio que contiene los archivos de la lista de revocación de certificados. |
--ssl-key=nombre de archivo | La ruta al archivo que contiene el certificado de clave privada SSL del cliente. |
--ssl-mode=mode | Especifique uno de los estados de seguridad de la conexión del servidor, en orden creciente de severidad:[DISABLED | PREFERIDO | REQUERIDO | VERIFICAR_CA | VERIFICAR_IDENTIDAD] . |
--ssl-verify-server-cert | Indique al cliente que verifique la identidad del nombre de host con el certificado del servidor que contiene la identidad del nombre común. |
--tls-version=list | Especifique una lista separada por comas de protocolos TLS permitidos para conexiones cifradas. |
--use-default | El script se ejecuta sin interacción. |
--user=username | Especifique el nombre de usuario de la cuenta MySQL para conectarse al servidor. |