Introduzione
MySQL è un sistema di gestione di database relazionali open source e fa parte del popolare stack LAMP. Il mysql_secure_installation
script ti consente di migliorare notevolmente la sicurezza del server MySQL.
In questa guida imparerai a proteggere un server MySQL.
Prerequisiti
- Un sistema Linux con MySQL installato (Usi un sistema operativo diverso? Vedi come installare e configurare MySQL su un server Windows, CentOS 7 o CentOS 8).
- Accesso al terminale (Ctrl+Alt+T ).
- Una connessione di rete.
- Un account con privilegi di amministratore.
Comando mysql_secure_installation
Dopo l'installazione, l'istanza del server MySQL sulla tua macchina non è sicura e suscettibile di attacchi. mysql_secure_installation
è uno script di shell sviluppato per proteggere l'installazione del server MySQL su sistemi Unix. Lo script configura le impostazioni di sicurezza e ti consente di:
- Imposta una password per gli account di root (vedi come reimpostare o modificare la password di root di MySQL)
- Rimuovi gli account root accessibili dall'esterno del localhost.
- Rimuovi gli account utente anonimo.
- Elimina il database di prova, accessibile da utenti anonimi.
- Ricarica le tabelle dei privilegi utente.
Il [option]
gli argomenti sono facoltativi e discussi nella sezione seguente.
1. Esegui mysql_secure_installation
script utilizzando la seguente sintassi:
sudo mysql_secure_installation [option]
2. Digita la tua password e premi Y
per impostare il VALIDATE PASSWORD
componente che controlla se la nuova password è sufficientemente forte.
3. Successivamente, inserisci 0
, 1
o 2
a seconda della sicurezza della password che desideri impostare :
0
- Basso . La password è composta da almeno 8 caratteri.1
- Medio . La password è composta da almeno 8 caratteri (inclusi caratteri numerici, misti e speciali).2
- Forte . La password è composta da almeno 8 caratteri (inclusi caratteri numerici, maiuscoli e speciali e confronta la password con un file dizionario).
4. Una volta specificata la forza richiesta, immettere e reinserire la password.
5. Il programma valuta la forza della tua password e richiede la conferma con Y
continuare.
6. Successivamente è necessario rispondere alle seguenti funzionalità di sicurezza:
- Rimuovere utenti anonimi?
- Non consentire l'accesso root in remoto?
- Rimuovere il database dei test e accedervi?
- Ricaricare le tabelle dei privilegi ora?
Per eseguire lo script con l'impostazione predefinita, la risposta consigliata a tutte queste domande è Y
.
Opzioni di installazione_mysql_secure
Il mysql_secure_installation
script accetta alcune opzioni che personalizzano le configurazioni di sicurezza di MySQL. Specifica le opzioni nella riga di comando o nel [client]
gruppo del file delle opzioni.
Il mysql_secure_installation
più comunemente usato le opzioni sono --host
e --port
.
Ad esempio, puoi configurare MySQL per consentire connessioni IPv6 da client che si connettono al server locale utilizzando la porta 3307. Per farlo, devi aggiungere il ::1
indirizzo host locale e modificare la porta predefinita (3306) in 3307.
Pertanto, durante l'esecuzione dello script di installazione, utilizzare il comando:
mysql_secure_installation --host=::1 --port=3307
Altre opzioni supportate includono:
--basedir=dir | Specifica la directory di base. |
--print-defaults | Stampa l'elenco degli argomenti del programma ed esci. |
--no-defaults | Impedisce allo script di leggere le opzioni predefinite da qualsiasi file di opzioni. |
--defaults-file=# | Comanda allo script di leggere solo il file di opzioni specificato # . |
--defaults-extra-file=# | Legge il file specificato # dopo aver letto i soliti file di opzioni. |
--defaults-group-suffix=str | Legge i soliti gruppi di opzioni, ma anche i gruppi con i soliti nomi e una str suffisso. |
--help | Visualizza un messaggio di aiuto ed esce. |
--host=host_name | Si collega al server MySQL sull'host specificato. |
--no-defaults | Impedisce allo script di leggere i file delle opzioni (tranne .mylogin.cnf file). |
--password | Lo script accetta questa opzione ma la ignora sempre. Pertanto, lo script richiede una password ogni volta che viene invocato. |
--port=# | Specificare il numero di porta TCP/IP a cui connettersi. |
--print-defaults | Stampa il nome del programma e le opzioni predefinite. |
--protocol={#} | Specificare un protocollo di trasporto da utilizzare per la connessione al server {TCP | SOCKET | PIPE | MEMORY} . |
--socket=path | Specifica il file socket Unix o Windows named_pipe variabile da collegare a localhost . |
--ssl=[1 | 0] | Abilita o disabilita la crittografia della connessione, rispettivamente. Le opzioni che iniziano con --ssl può anche indicare il percorso delle chiavi e dei certificati SSL. |
--ssl-ca=filename | Specificare il file contenente l'elenco delle autorità di certificazione SSL affidabili. |
--ssl-capath=dir | Specificare il percorso della directory contenente i file dei certificati dell'autorità di certificazione SSL affidabili. |
--ssl-cert=filename | Il percorso del file contenente il certificato della chiave pubblica SSL del client. |
--ssl-cipher=list | Un elenco di crittografie consentite per la crittografia della connessione. |
--ssl-crl=filename | Il percorso del file contenente gli elenchi di revoche di certificati. |
--ssl-crlpath=dir | La directory contenente i file dell'elenco di revoche di certificati. |
--ssl-key=filename | Il percorso del file contenente il certificato della chiave privata SSL del client. |
--ssl-mode=mode | Specificare uno degli stati di sicurezza della connessione al server, in ordine crescente di rigore:[DISABLED | PREFERRED | REQUIRED | VERIFY_CA | VERIFY_IDENTITY] . |
--ssl-verify-server-cert | Chiedere al client di verificare l'identità del nome host rispetto al certificato del server contenente l'identità del nome comune. |
--tls-version=list | Specificare un elenco separato da virgole di protocolli TLS consentiti per le connessioni crittografate. |
--use-default | Lo script viene eseguito senza interazione. |
--user=username | Specifica il nome utente dell'account MySQL per la connessione al server. |