Devo impostare una password per 'root' @ 'localhost' in MySQL?

7

L'account 'root'@'localhost' di MySQL è accessibile solo a qualcuno attualmente sul server che ospita il server MySQL.

Supponendo che solo la persona o le persone che si occupano del server MySQL abbiano anche la password in ssh in, e dato che il server è ospitato su una rete interna in modo che non si possa% in% co_de in da fuori, c'è qualche ragione per mettere una password sul server MySQL per 'root' @ 'localhost'?

Motivi per non avere una password:

  • Gestire le password in un sistema volatile è incredibilmente ingombrante, con ogni password aggiuntiva che aumenta l'entropia nel sistema.

  • Se una password viene persa può causare un sacco di mal di testa.

  • Se qualcuno ha ssh 'ed in una macchina, e se la password di root per la macchina è la stessa dell'utente con cui hanno effettuato l'accesso, possono comunque avviare MySQL senza password.

  • Se il server si trova su una rete locale e la tua unica preoccupazione è la quantità di danni che qualcuno può fare al tuo server MySQL, qualcuno che accede come root mentre ssh 'edita nel server è il minimo del tuo preoccupazioni. Potrebbero semplicemente prendere fisicamente i dischi rigidi o distruggere la macchina in molti modi.

Quindi, nonostante questi motivi affermando di avere una password in questa situazione, renderebbe le cose più difficili senza alcun reale beneficio, c'è un motivo valido per dare uno a ssh ?

    
posta MirroredFate 07.07.2015 - 00:03
fonte

5 risposte

9

La prima regola di 10 leggi di sicurezza immutabili scritta da Scott Culp, è una buona legge riguardo la tua situazione:

Law #1: Nobody believes anything bad can happen to them, until it does.

Anche se il tuo server è accessibile solo dalla tua rete locale, prova a pensare a quanti computer o server sono connessi a quella rete interna. La rotazione da un computer all'altro fa parte di un lavoro degli hacker e la sicurezza perimetrale ti salverà dal nulla non appena uno dei dipendenti sarà vittima di un attacco di spear phishing e fai clic sul link in tale e-mail .

Un'altra possibilità è, cosa succede quando qualcuno può ottenere una shell usando una vulnerabilità nel tuo sito web? La persona può quindi provare ad accedere ed eseguire comandi MySQL dalla shell e, nel peggiore dei casi, rilasciare / scaricare l'intero database?

Sì, gestire le password in un ambiente multiutente è difficile, ecco perché software come KeePass e LastPass offre database multiutente, in modo che più utenti possano accedere allo stesso portachiavi e alle stesse password.

La mia raccomandazione è, assicuratela con una password sicura, perché probabilmente non sarà il più problematico di quanto si pensi, e potrebbe potenzialmente impedire al database di essere trapelato o lasciato cadere. Più attriti crei per i potenziali hacker, meglio è!

Sii propositivo!

    
risposta data 07.07.2015 - 09:12
fonte
2

Considera questo -

Qualcuno apre una shell sulla tua casella tramite una webapp vulnerabile e vogliono scaricare tutti i database, ma non possono perché sono limitati solo all'utente db elencato nel tuo file di configurazione (o qualcosa di simile). Pensano di essere fermi finché non tentano di accedere a MySQL come root e scoprono presto che non c'è password. Questo lascia l'attaccante colpire il jackpot a causa di qualcosa di così sciocco come se non si concedesse una password all'utente root di MySQL.

È utile avere una password per tutto ciò a cui è applicabile, indipendentemente da ciò che si potrebbe pensare non possa accadere. Esistono altri scenari in cui la mancanza di una password per root non è buona, ma ti viene l'idea.

    
risposta data 30.09.2015 - 19:33
fonte
0

Pianifica sempre avanti. Potrebbe sembrare un problema gestire le password e, come hai detto tu, potrebbero utilizzare SSH nella macchina in futuro.

Se qualcuno può contribuire con le statistiche esatte sarebbe grandioso, ma la maggior parte delle minacce alla sicurezza provengono dall'interno della tua organizzazione, non dall'esterno. Non lasciare alcuna password sul tuo server MySQL è come lasciare una copia stampata nel locale di pausa. Se sei d'accordo, allora non hai davvero bisogno di una password. Se i database contengono informazioni che potresti non desiderare in quel libro da tavolino, prendi un paio di passaggi e proteggi i tuoi dati. Pochi anni, o forse anche mesi da adesso, puoi comprarmi un caffè per ringraziarmi di averlo fatto!

    
risposta data 07.07.2015 - 04:14
fonte
0

Ti suggerisco di definire due utenti: 1. root @ localhost con diritti di amministratore completi E password complessa e lunga 2. work @ localhost ha solo il permesso di accedere alle tabelle (grant) che si suppone con i diritti (grant) adattati alle normali operazioni (creare, cambiare riga). Questo utente dovrebbe essere usato da tutti gli script intorno.

L'amministrazione è troppo potente per non essere protetta.

    
risposta data 08.07.2015 - 06:57
fonte
0

Se si stesse utilizzando una sola password di root / su , un approccio sarebbe utilizzare la stessa password per MySQL. Quindi se qualcuno inizia a lasciare che altri utenti sul server, non gli danno accesso a MySQL senza rendersene conto.

Questo non è veramente lungimirante in quanto il modello sudo (più account amministratore) è generalmente considerato preferibile. Per fare ciò, devi avviare creare più utenti amministratori in MySQL .

Se ciò diventasse troppo complesso, potresti evitare di gestire le password separatamente in MySQL impostando PAM. Sia MySQL che MariaDB hanno moduli PAM. (È comunque necessario creare gli utenti. Anche per gli utenti locali (pam_unix), essi richiedono che si conceda l'accesso MySQL a / etc / shadow , perché il modulo pam di MySQL non include un helper radice SUID :(. Apparentemente anche altri metodi PAM hanno requisiti simili).

    
risposta data 30.09.2015 - 15:19
fonte

Leggi altre domande sui tag