I semplici server Linux hanno davvero bisogno di un utente non root per motivi di sicurezza?

44

Riproduzione di avvocato del diavolo ,

Supponiamo di acquistare un server Linux da un provider di hosting. Mi viene data una password per l'utente root e mi è stato detto che posso accedere usando SSH. L'unico scopo di questo server è quello di ospitare uno o più siti Web, possibilmente con SSL correttamente configurato e abilitato.

Il mio primo accesso sarà per installare (tramite un sistema di gestione dei pacchetti ben recensito e ampiamente utilizzato) e configurare (modificando i file in /etc ) un server web, un database, alcuni software che non accedono a Internet, e un server di applicazioni web (PHP-FPM, Unicorn, quel genere di cose). La gestione dei pacchetti era abbastanza intelligente da configurare utenti non privilegiati per l'esecuzione dei server, una configurazione che mantengo. Successivamente ho inserito alcuni file del sito Web (PHP, Ruby, Python, ecc.) In /var/www e chown tutti i file che appartengono allo stesso utente non privilegiato che viene eseguito come processo del server Web (ad esempio www-data ).

In futuro, solo io effettuerò l'accesso e solo per aggiornare i file del sito Web e per eseguire alcune operazioni di sola lettura come la revisione dei registri.

Nello scenario sopra riportato, c'è qualche motivo di sicurezza motivo , perché dovrei creare un account utente non root da usare piuttosto che dall'utente root? Dopotutto, quasi tutti i comandi verrebbero eseguiti con sudo se avessi effettuato l'accesso con un utente non root.

Nota: capisco che ci sono molti motivi di sicurezza e non sicurezza universalmente convincenti per usare utenti non-root. Non sto chiedendo la necessità di account utente non-root. La mia domanda è strettamente limitata alla configurazione limitata che descrivo sopra. Penso che questo sia rilevante perché anche se il mio esempio è limitato, è molto comune.

    
posta Volker Siegel 24.12.2013 - 04:12
fonte

4 risposte

42

Ci sono alcuni motivi:

  • tracciabilità : i comandi eseguiti con sudo vengono registrati. I comandi eseguiti con bash sono a volte registrati, ma con meno dettagli e utilizzando un meccanismo che è facile da bloccare.

  • separazione dei privilegi : quasi ogni comando non è lo stesso di ogni comando. C'è ancora molto che non richiede root

  • modifica dei file : i file web sono di proprietà di un utente non root ed eseguiti da un utente non root ... quindi perché dovresti modificarli con root?

  • mitigazione degli attacchi : prendi in considerazione il seguente scenario totalmente non-ipotetico: la tua workstation rileva malware che scarica il tuo login FTP / SCP / SFTP / SSH dallo spazio memorizzato database di autenticazione dal client appropriato e lo trasmette all'attaccante. L'utente malintenzionato accede al tuo dispositivo per fare qualche danno. Ora, possono coprire le loro tracce o renderanno visibile ciò che fanno? Parlo con qualcuno di nuovo più di una volta ogni settimana a cui è successo di recente.

  • mitigazione automatica degli attacchi : un server compromesso in Brasile sta analizzando la tua rete e apre un server SSH in ascolto. Quale username utilizza l'utente malintenzionato per il suo attacco automatico? Forse webuser , o test , o www o admin - ma più di ogni altro: root .

Ci sono sicuramente molte altre ragioni, ma queste sono le prime a venire alla testa.

    
risposta data 24.12.2013 - 04:24
fonte
15

Ho appena visto questo, un po 'tardi, ma ...

No - un semplice web server può essere amministrato da root e comunque essere sostanzialmente sicuro.

È vero che ci sono alcuni vantaggi nell'amministrare come non-root, ma questi sono minori e ampiamente sopravvalutati dalla maggior parte dei consigli di sicurezza. È molto più importante proteggere i servizi di rete. Mantieni aggiornato il server Web e verifica la presenza di difetti a livello di applicazione nell'app Web.

Per rispondere ai punti di Tylerl:

  • tracciabilità - questo potrebbe essere valido se tu avessi più amministratori, ma se sei solo tu, allora sei completamente tracciabile lavorando come root.

  • separazione dei privilegi - Mi aspetto che in pratica facciate così poco come non-root che questo non fa differenza.

  • modifica dei file - Vedi sopra

  • mitigazione degli attacchi : se sulla tua workstation è presente malware, tutte le scommesse sono disattivate. Se usi sudo senza password, l'attacco che menziona funziona ancora. Se usi su, il malware può ottenere la tua password usando un keylogger.

  • mitigazione automatica degli attacchi - Se segui i consigli standard sull'uso di password complesse (o usa invece le chiavi SSH), un forger bruto non entrerà comunque.

risposta data 23.02.2014 - 09:04
fonte
0

Il miglior motivo per utilizzare un utente non root per le attività quotidiane è quello di costruire buone abitudini e conoscenze per un tempo simile a quello che si sta facendo qualcosa di reale su un sistema * nix. Senza di esso non dovrai mai pensare a file permessi di accesso, gruppi, ecc.

Vorrei aggiungere che un'altra domanda correlata è se la root dovrebbe avere una propria password. È buona abitudine prendere l'abitudine di fornire la password di root per usare sudo. Un buon promemoria sul fatto che ciò che si sta facendo influenza l'integrità della configurazione del sistema operativo. Persino gli amministratori di sistema come sapere che non tutti gli utenti casuali possono caricare l'intero sistema con un comando sudo rm -R /. * nix lo farà senza dire un'altra parola a te.

Dipende anche dalla cultura. Se stai solo giocando per vedere come appare lì, è una cosa - fallo in una virtualbox e abusarne al contenuto del tuo cuore. (Mi piace particolarmente fare rm -R / thing e poi guardare con htop per vedere cosa smette di funzionare quando. Ma questo diventa vecchio velocemente quando si sa che porta sempre a uno dei due risultati: Ripristina da un backup o da reinstallare.)

Se hai mai uno scopo aziendale per l'utilizzo di una macchina * nix, ritengo che sia opportuno inserirsi nella cultura di altri che utilizzano lo stesso sistema, anche se sei l'amministratore.

    
risposta data 17.12.2016 - 07:01
fonte
-1

L'utilizzo dei privilegi di root in tutto il sistema è simile a lasciare le chiavi di casa vicino alla finestra, anche se è chiusa.

Se hai esperienza di violazione delle applicazioni web (o di qualsiasi altro punto di accesso) usando i punti deboli, capirai che la difesa in profondità è molto importante. Perché? Poiché le applicazioni presentano sempre vulnerabilità, non sono state ancora scoperte (e alcune sono scoperte ogni anno).

Ogni porta esposta a Internet, applicazione, protocollo può essere hackerata. Successivamente, puoi accedere a dispositivi, software, server, reti senza Internet, ecc.

Quindi, nell'analogia della finestra qui sopra, se l'hacker capisce di tremare e aprire la finestra, ora entra e trova tutte le chiavi della tua casa, persino la tua cassastrong. Altrimenti potrebbe semplicemente brancolare e afferrare alcuni piccoli oggetti e scappare - ma ora " possiede l'intera casa ", grazie a te.

Quindi stringere porte, privilegi, password, permessi. Sono d'accordo che può essere una seccatura, e per lo meno si dovrebbe avere una mentalità orientata alla sicurezza (e agli hacker) come un amministratore in modo che tu possa giudicare da solo quanto prezioso è il contenuto del server e quanto accuratamente vuoi bloccare il tuo server down.

    
risposta data 13.07.2016 - 05:47
fonte

Leggi altre domande sui tag