Sudo password durante l'autenticazione tramite SSH senza password

25

Ho alcune scatole tutte collegate in rete su Amazon EC2, ognuna delle quali è in comunicazione automatica tra loro tramite SSH (rsync, ecc.). Come tale, ho creato chiavi SSH su ciascuna di queste macchine per consentire loro di connettersi a SSH l'una nell'altra senza richiedere una password. Allo stesso modo, il mio account personale è basato su chiavi e senza password.

In base alle mie conoscenze, ho protetto SSH in modo appropriato utilizzando i metodi ben documentati.

In questa configurazione, noto che non devo fornire una password per utilizzare sudo . Se provo a su root , non arrivo da nessuna parte, perché root non ha una password. Tuttavia, se eseguo un sudo -i , non mi viene richiesta alcuna password e viene immediatamente concessa la radice. Questo mi preoccupa un po '.

Quindi, due domande:

  1. Dovrei preoccuparmi o sono troppo paranoico?
  2. È possibile impostare una password sudo quando si utilizza l'autenticazione SSH basata su chiave?

Diverse di queste caselle sono server Web e ospitano applicazioni Web di cui temo essere di dubbia qualità. (Non li ho scritti, quindi sono dubbi!) Ho Apache e le autorizzazioni sui server configurati in modo tale che un utente molto non privilegiato (www-data) stia servendo i file, ma la mia paura è che - in qualche modo - un utente malintenzionato possa compromettere un'applicazione web, aumentare i privilegi a un utente più privilegiato e quindi semplicemente sudo -i a root.

Non sono a conoscenza di una vulnerabilità nel mio software che consentirebbe a www-data di aumentare i suoi privilegi, ma preferirei avere una password in uso per usare sudo se ciò fosse in qualche modo accaduto.

Inoltre, per la cronaca: ho provato a impostare una password accedendo tramite SSH e poi eseguendo passwd , ma ha generato un errore. Non ricordo esattamente il fraseggio, ma si trattava di un "gettone". In entrambi i casi, la password non si è bloccata, il che mi fa pensare che sto fraintendendo qualcosa a un livello fondamentale qui.

Qualsiasi illuminazione sull'argomento sarebbe molto apprezzata. Grazie.

- Aggiornamento: 7 dicembre 2011 -

Grazie per le spiegazioni ponderate, tutto. Sembra infatti che il problema si trovi in /etc/sudoers . Grazie per avermi indicato in quella direzione.

Ho pensato di documentarlo per completare la discussione. Quando ho esaminato /etc/sudoers , ho riscontrato le seguenti righe:

# ubuntu user is default user in ec2-images.  
# It needs passwordless sudo functionality.
ubuntu  ALL=(ALL) NOPASSWD:ALL

Sono, infatti, utilizzando l'utente ubuntu per le mie operazioni privilegiate (sebbene, di nuovo, il server web stia funzionando solo come www-data ), quindi suppongo che questo spieghi il problema che stavo svolgendo.

Se qualcuno vuole seguire un'ipotesi perché l'utente di ubuntu ha bisogno di funzionalità sudo senza password, mi piacerebbe sentirlo. Altrimenti, almeno per il momento, penso che lascerò stare abbastanza bene da solo e lascerò la configurazione così com'è. Non voglio rompere un sistema funzionante mentre provo a risolvere preventivamente un problema inesistente.

Grazie ancora per il tuo tempo e la tua competenza.

    
posta Chris Allen Lane 30.11.2011 - 00:21
fonte

2 risposte

13

Il motivo per cui non ti viene richiesta una password sudo è perché il tuo utente (o gruppo di utenti) ha abilitato NOPASSWD in / etc / sudoers. Puoi modificare questo file con visudo come utente root.

Per quanto riguarda l'autenticazione senza password, si è certi che l'autenticazione a chiave pubblica è un metodo preferito per l'autenticazione dei server. Se non ci sono password da indovinare, allora nessun tentativo di forza bruta può avere successo.

Il fatto che non ci sia alcuna password di root viola alcune best practice, ma come hai affermato correttamente, se è necessaria una chiave per entrare nella scatola, probabilmente è ok. Avere una password di root potrebbe incoraggiarti ad usare SSH per accedere come root, che dovrebbe essere disabilitato nel tuo sshd_config.

L'unica domanda che ho riguarda uno dei tuoi ultimi paragrafi:

Also, for the record: I did try to set a password by logging in via SSH and then running passwd, but it threw an error. I don't remember the exact phrasing, but it was something about a "token". Either way, the password didn't stick, which makes me think I'm misunderstanding something at a fundamental level here.

Non sei riuscito a impostare una password mentre sudo avevi il root? O solo come utente normale? Avere una chiave pubblica di autenticazione non dovrebbe impedirti di impostare una password per gli utenti, né una password di root. Sembra che tu stia incontrando questo problema, discusso su SuperUser , quindi spero che questo aiuti un po '.

Spero di aver risposto al lato della sicurezza della tua domanda; sentiti libero di aggiungere un commento o un seguito se hai bisogno di maggiori informazioni!

    
risposta data 30.11.2011 - 00:50
fonte
3

Puoi impostare una password per il root mentre hai abilitato l'abilitazione della chiave SSH. In Ubuntu disrto, ad esempio, l'account root è "disabilitato". È possibile sudo per l'account che è stato creato durante l'installazione, che verrà eseguito con privilegio di root.

Se esegui www-data$sudo -i dovresti ottenere il seguente messaggio:

www-data is not in the sudoers file.  This incident will be reported.

Ciò che dshaw menzionato di solito è disabilitato in Ubuntu

# %sudo ALL=NOPASSWD: ALL

Quindi è bene controllarlo perché non dovresti essere in grado di eseguire sudo -i e ottenere root senza inserire una password.

Spero che questo aiuti.

    
risposta data 30.11.2011 - 01:18
fonte

Leggi altre domande sui tag