Domanda:
Protezione avanzata di MySQL Server
Scott Pack
2010-12-14 19:57:25 UTC
view on stackexchange narkive permalink

Seguendo il tema del rafforzamento ...

Quali sono alcune best practice, consigli e letture obbligatorie per proteggere MySQL.

Due risposte:
Mark Davidson
2010-12-14 21:13:34 UTC
view on stackexchange narkive permalink
  • Esegui solo MySQL sul server - Se possibile, esegui solo MySQL sul server e rimuovi tutti i servizi inutilizzati.
  • Firewall : limita l'accesso tramite indirizzo IP solo ai server / client che richiedono l'accesso.
  • Privilegi utente : durante la creazione degli utenti, concedi sempre la quantità minima di privilegi ed espandi secondo necessità. Prova anche a evitare di utilizzare il carattere jolly "%" per gli host e limitalo all'host che richiede l'accesso.
  • Associa indirizzo in modo appropriato : se richiedi solo l'accesso remoto al server all'interno del stessa rete e la macchina ha sia un IP esterno che un indirizzo di rete interno. Configura MySQL in modo che ascolti solo sull'indirizzo interno.
  • Abilita registrazione : abilita la registrazione se il database non gestisce molte query.
  • mysql_secure_installation : utilizza l'utility mysql_secure_installation che esegue una serie di operazioni, tra cui la rimozione di account di utenti anonimi, la rimozione del database di test ecc.
  • Root Account accessibile solo in locale : è meglio limitare l'accesso dell'account root solo direttamente dalla macchina. Mysql_secure_installation ti consente di rimuovere facilmente qualsiasi accesso remoto per gli account root. Di solito quindi o ssh sulla macchina e utilizzo il prompt dei comandi mysql oppure MySQL Workbench ha la funzionalità per eseguire il tunneling su SSH.

Risorse aggiuntive

Introduci anche un livello di astrazione nel tuo software che gestisce rischi come sql-injection e altre minacce simili. Nota anche che non puoi sempre eseguire SQL sullo stesso server del tuo server web (regolamenti PCI), il che significa che la preoccupazione dei firewall è davvero un problema di configurazione per impostare le connessioni solo su necessità e far cadere il resto.
symcbean
2010-12-14 20:36:27 UTC
view on stackexchange narkive permalink

Suppongo che i soliti metodi del sistema operativo (incluso fail2ban se è richiesto un amministratore ssh remoto), quindi bloccare tutti gli accessi esterni alla porta MySQL o consentire a una whitelist di connettersi se assolutamente necessario. Imposta una password per l'utente mysqladmin.

Dopodiché, l'utente mysqladmin dovrebbe essere autorizzato a connettersi solo da localhost e dovrebbe essere l'unico utente a cui siano concessi privilegi tramite la tabella "user" - a tutti gli altri utenti è negato l'accesso per impostazione predefinita (cioè nella tabella utente) ma concede concessioni specifiche a singoli database.

Nota che non dovresti esporre MySQL direttamente su Internet. Se è necessario disporre dell'accesso ai dati remoti, utilizzare una VPN (ad es. Stunnel con verifica del client).



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 2.0 con cui è distribuito.
Loading...