I migliori consigli per la sicurezza di MySQL e MariaDB
Pubblicato: 2022-01-08La sicurezza è una grande preoccupazione per molte persone. Questo post ti fornirà dieci suggerimenti su come ottenere la sicurezza di MySQL e MariaDB per rendere i tuoi database al sicuro dagli hacker. Questi suggerimenti includono: backup dei dati, utilizzo di password complesse e limitazione dei privilegi di accesso.
I migliori consigli per la sicurezza di MySQL e MariaDB
Ecco i migliori suggerimenti per ottenere la sicurezza MySQL e MariaDB:
Rimuovere utenti senza password
Se nel database sono presenti utenti senza password, è meglio rimuoverli. Ciò contribuirà a ridurre le possibilità che qualcuno possa hackerare il tuo database. È possibile utilizzare la query seguente per rimuovere questi utenti:
Indipendentemente dal fatto che gli utenti abbiano accesso o meno solo da localhost, devono essere eliminati per impedire l'esecuzione di eventuali comandi negativi. Inoltre, le password deboli rappresentano di per sé un rischio per la sicurezza.
Dovresti sempre usare password complesse quando crei utenti nei tuoi database. Le password deboli sono più facili da decifrare da parte degli hacker, il che potrebbe portare loro ad accedere al tuo database e causare il caos su di esso se lo gestiscono. L'utilizzo di un generatore di password automatizzato ti aiuterà a creare password più forti e più difficili da decifrare.
Dovresti anche considerare l'utilizzo dell'autenticazione a due fattori per i tuoi utenti. Ciò richiederà un codice aggiuntivo, solitamente inviato al loro telefono, per accedere al database. Ciò rende molto più difficile per qualcuno accedere se ha solo il tuo nome utente e password.
Limita l'accesso remoto
Se non è necessario concedere l'accesso remoto al database, è meglio limitarlo. Ciò contribuirà a ridurre le possibilità che qualcuno possa hackerare il tuo database da una posizione remota.
Fortunatamente, le ultime versioni di MySQL e MariaDB limitano automaticamente l'accesso remoto al database se non diversamente specificato. Tuttavia, dovresti comunque controllare le tue impostazioni di sicurezza per assicurarti che sia così.
È anche una buona idea assicurarsi che tutti gli utenti si connettano a MySQL solo tramite gli host esatti desiderati. Ad esempio, questo può essere fatto utilizzando ([email protected]).
Rimuovere il database di prova
Quando installi MySQL o MariaDB, viene creato automaticamente un database di prova. Questo database contiene dati che possono essere utilizzati per hackerare i tuoi database reali se cadono nelle mani sbagliate. È meglio rimuovere questo database in modo che non possa essere utilizzato per scopi nefasti.
Questo database di prova provoca anche un carico non necessario sul server del database. Viene utilizzato solo dai tester di database per testare le query, quindi può essere rimosso senza influire sulla funzionalità dei database.
Offuscare l'accesso a MySQL
Se non vuoi che le persone sappiano che il tuo database esiste, puoi offuscare il suo accesso. Ciò renderà più difficile per qualcuno trovare il tuo database e hackerarlo.
Offuscare l'accesso rende anche più difficile per chiunque stia monitorando il traffico determinare quali porte vengono utilizzate da MySQL o MariaDB.
È noto che MySQL gira sulla porta 3306, mentre 'root' è il nome del superutente. Puoi risolvere questo problema modificando my.cnf e cambiando la variabile 'port'.
Proteggi i tuoi file di configurazione
Come con qualsiasi applicazione, è importante proteggere i file di configurazione per MySQL o MariaDB. Questi file contengono informazioni sensibili, come password e dati utente. La protezione di questi file aiuterà a impedire a chiunque di accedere a queste informazioni se accede ai tuoi server.
Sicurezza della rete
È anche importante proteggere la tua rete, così come i server stessi. Ciò contribuirà a ridurre le possibilità che qualcuno acceda al tuo database da una posizione remota e esegua comandi nefasti su di esso.
La prima cosa che dovresti assicurarti è che MySQL sia accessibile solo tramite una connessione locale, non la rete. Puoi farlo tramite un socket Unix. Inserisci 'skip-networking' in my.cnf. per interrompere tutte le comunicazioni TCP/IP.

Puoi anche utilizzare il firewall per bloccare l'accesso a MySQL da determinati indirizzi o intervalli IP. Ciò contribuirà a ridurre le possibilità che qualcuno acceda al tuo database da una posizione remota.
Usa i plugin di controllo
Puoi anche utilizzare i plug-in di controllo per tenere traccia di ciò che sta accadendo nel tuo database. Questi ti aiuteranno a determinare se qualcuno ha violato il tuo database o se sta succedendo qualcosa di sospetto che potrebbe suggerirlo.
Ci sono molte opzioni gratuite ea pagamento per questi plugin disponibili online oggi. MySQL Enterprise Audit è una buona opzione se MySQL Enterprise è già utilizzato nella tua organizzazione. MariaDB ha anche il proprio plugin di controllo.
Questi plugin fanno tutti un ottimo lavoro nel monitorare il tuo database per attività sospette. Possono persino inviarti avvisi se viene rilevato qualcosa di insolito in modo da non dover controllare i registri manualmente ogni volta.
Disabilita LOAD DATA LOCAL INFILE
Un altro modo per impedire a qualcuno di accedere al tuo database è disabilitare la funzionalità LOCAL in MySQL e MariaDB. Questo comando consente di caricare file di dati da un file locale, ma rappresenta anche un rischio per la sicurezza, soprattutto se non sono crittografati. Per disabilitare questa funzione, imposta local-infile=0 nel file my.cnf.
Privilegi di file
È anche importante impostare i privilegi di file corretti per i file MySQL e MariaDB. Ciò garantirà che solo gli utenti autorizzati possano accedervi. Puoi farlo impostando le autorizzazioni appropriate su questi file.
Ad esempio, puoi impostare il proprietario di tutti i tuoi file MySQL su "mysql" e il gruppo su "mysql", con l'accesso negato a tutti gli altri utenti. Ciò garantirà che solo gli utenti con le autorizzazioni corrette potranno accedere ai tuoi file MySQL.
SSL e crittografia dei dati in transito
Se stai eseguendo MySQL o MariaDB con SSL abilitato, è importante avere i certificati necessari installati sul tuo server. Se ciò non viene fatto, chiunque può intercettare le informazioni inviate tra il tuo database e i suoi client.
Dovresti anche crittografare tutti i dati in transito per una maggiore protezione di tutti i dati sensibili trasmessi attraverso reti pubbliche utilizzando SSH.
Puoi anche crittografare i dati che vengono trasmessi tra il server del database e altri dispositivi. Ciò garantirà che chiunque controlli il traffico sulla tua rete non possa accedere a nessuno dei dati che sta trasmettendo o ricevendo, anche se è riuscito a violare uno di questi sistemi.
SSL sarebbe un ottimo modo per raggiungere questo obiettivo per gli utenti MySQL, poiché è già integrato nel protocollo. Gli utenti di MariaDB possono utilizzare lo stunnel per ottenere un effetto simile.
Crittografia dei dati inattivi
Infine, dovresti anche considerare di crittografare i tuoi dati inattivi. Ciò significa che i dati vengono crittografati anche quando non vengono trasmessi.
Questo può essere fatto utilizzando uno strumento come MySQL Enterprise Encryption o MariaDB Column Encryption.
Entrambi questi strumenti offrono un ottimo modo per proteggere i tuoi dati dall'accesso se qualcuno riesce a violare il tuo server di database. Sono anche molto facili da usare, quindi non devi essere un esperto di crittografia per sfruttare questi strumenti.
Conclusione
Tutte le opzioni menzionate qui ti aiuteranno a ottenere la sicurezza di MySQL e MariaDB, ma non sono tutte perfette per ogni situazione. Dovresti considerare le tue esigenze specifiche quando le guardi in modo da poter scegliere la migliore possibile. Tuttavia, questi suggerimenti dovrebbero darti una buona idea su come scegliere un'opzione che funzionerà bene per te.
Si spera che questo articolo ti abbia dato alcune buone idee su come ottenere la sicurezza MySQL e MariaDB nella tua organizzazione in modo che nessuno possa hackerare i tuoi database se riesce a sfondare altre difese.