La guida presuppone che tu abbia un server messo da parte per l'uso di mysql con un indirizzo IP statico accessibile, forse sul cloud o da qualche parte sulla rete locale. I seguenti comandi, in questa sottosezione, devono essere eseguiti sulla shell del server. Installiamo rapidamente e imposta mysql su Ubuntu.
$ sudo apt updateL'ultimo comando eseguirà uno script per modificare alcune delle impostazioni predefinite di MySQL. In primo luogo sarebbe un prompt per installare un plug -in di convalida della password. Ciò verificherebbe se la nuova password che si sta imposta per gli utenti è abbastanza forte o no. Puoi rinunciare a questo plugin, se vuoi. Successivamente ti verrà richiesto di impostare la password dell'utente di root mysql. Vai avanti e imposta una password utente root forte.
Premere y | y per sì, qualsiasi altro tasto per il no: nDopo questo puoi praticamente dire SÌ Per ogni altro prompt in questo script, poiché lo script rimuove l'utente di test, rimuove il database di test, disabilita l'accesso al radice remoto e infine ricarica la sua tabella di privilegio. Una volta fatto ciò, poiché abbiamo vietato l'accesso del root remoto, creiamo un database e un nuovo utente in grado di accedere a quel database in remoto senza effettivamente dover essere SSH (o accedere) nella shell UNIX/Linux del server. Ma prima di farlo, verifichiamo se la nostra build di MySQL ha TLS integrato o no.
Verifica se TLS è disponibile
TLS è disponibile in MySQL solo se MySQL è compilato per averlo integrato. Non c'è modulo dinamico da caricare. Quindi, se non sei sicuro che il tuo pacchetto MySQL abbia TLS installato o meno, puoi verificarlo in esecuzione:
$ sudo mysqlSe dice che le variabili have_openssl E have_ssl avere valori impostati su DISABILITATO Quindi hai SSL e sei a posto (devi solo abilitarlo, leggendo ulteriormente). Se i valori sono impostati su NO, Quindi devi ottenere una versione diversa di MySQL dal tuo pacchetto o altrove.
Mysql> uscitaConfigurazione di mysql
Per impostazione predefinita MySQL Server ascolta solo sull'interfaccia Loopback, vale a dire sull'indirizzo "LocalHost" o "127.0.0.1 ', per le connessioni remote vogliamo che ascolti anche sull'IP statico pubblico. Per farlo aprire il file, /etc/mysql/mio.Cnf e aggiungere le seguenti coppie di righe alla fine.
..Qui, sostituisci il Con l'IP reale del tuo server. In caso di dubbi su quale IP utilizzato, puoi usare 0.0.0.0 per ascoltare su tutte le interfacce. Ora riavvia il server, affinché la nuova configurazione abbia luogo.
$ sudo servizio mysql riavvioCreazione di utenti remoti
Nota: se si desidera utilizzare il database in produzione, è probabile che il client che si connetterà a questo database - il tuo front -end - avrà un IP statico. In tal caso, sostituire il simbolo "%" percentuale con l'IP client appropriato. "%" è solo un jolly, il che significa "qualsiasi valore". Configureremo il nostro Myuser in modo che possa accedere da qualsiasi indirizzo IP (ad esempio, l'indirizzo IP mutevole della connessione a banda larga nazionale) che è, probabilmente, insicuro.
$ sudo mysqlSostituire 'parola d'ordine' con una password forte reale e abbiamo un utente chiamato Myuser che ha accesso completo al database mydatabase.
Abilitazione di TLS (noto anche come "SSL")
Mentre sei registrato alla shell MySQL come utente di root mysql, puoi controllare lo stato della connessione digitando \ s:
mysql> \ sPresta attenzione alle linee evidenziate sulla connessione e SSL. Mentre questo stato va bene per un accesso locale dell'utente root, quando accediamo a TLS come il Myuser Il tipo di connessione sarà superiori a TCP/IP non una presa grezza e sarà utilizzata una cifra SSL. C'è un semplice comando per raggiungere questo obiettivo. Ma prima usciamo al nostro prompt mysql.
Mysql> uscitaOra corri,
$ sudo mysql_sssl_rsa_setup --uid = mysql
Una volta fatto questo, puoi guardare il Variabile have_SSL Ancora.
Accedi da un client MySQL separato
Esistono nuovi parametri che indicano che il certificato e la chiave TLS sono in atto e TLS è abilitato. Ora puoi disconnettersi da questa macchina, aprire un client MySQL sul tuo computer locale, se non ne hai uno (e stai usando Debian o Ubuntu) Ottieni un client MySQL Shell:
$ sudo apt Installa mysql-clientSostituisci il Myuser E Con il tuo nome utente e IP server effettivo, inserisci la password prescelta e dovresti essere accettato nel database. Controlla la connessione:
mysql> \ sPuoi vedere che ora sta usando RSA per crittografare il traffico e la connessione è a un IP specifico su TCP/IP. Ora, la tua connessione a questo database MySQL è sicura.
Questo è il modo più semplice per proteggere le tue connessioni MySQL remote con TLS. Tieni presente che questo non è lo stesso di garantire un client PhpMyAdmin su TLS. Questo è TLS e HTTP combinati e richiede di proteggere l'interfaccia Web. La connessione tra PhpMyAdmin, che rende l'interfaccia utente web e il database potrebbe essere ancora non crittografato, il che va bene finché si trovano sullo stesso server.
Puoi saperne di più sulla connessione TLS, sulla CAS sottostante, sui certificati e sulla gestione delle chiavi nei documenti ufficiali di MySQL.