it-swarm.it

Password Sudo durante l'autenticazione tramite SSH senza password

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

Per quanto ne so, ho protetto SSH in modo appropriato usando i metodi ben documentati.

Con questa configurazione, noto che non devo fornire una password per usare 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 mi viene immediatamente concesso il root. 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?

Molte di queste caselle sono server Web e ospitano applicazioni Web di cui temo di essere di dubbia qualità. (Non li ho scritti, quindi sono dubbi!) Ho Apache e le autorizzazioni sui server sono configurate in modo tale che un molto non privilegiato l'utente (www-data) sta servendo i file, ma temo che - in qualche modo - un utente malintenzionato possa compromettere un'applicazione Web, inoltrare i privilegi a un utente più privilegiato e quindi semplicemente Sudo -i radicare.

Non sono a conoscenza di una vulnerabilità nel mio software che consentirebbe ai dati www di aumentare i suoi privilegi, ma preferirei avere una password in atto per utilizzare Sudo se ciò accadesse in qualche modo.

Inoltre, per la cronaca: ho provato a impostare una password accedendo tramite SSH e quindi eseguendo passwd, ma ha generato un errore. Non ricordo l'esatto fraseggio, ma era qualcosa che riguardava un "token". In entrambi i casi, la password non è rimasta, il che mi fa pensare che qui fraintenda qualcosa a un livello fondamentale.

Qualsiasi illuminazione sul soggetto sarebbe molto apprezzata. Grazie.

- Aggiornamento: 7 dicembre 2011 -

Grazie per le spiegazioni ponderate, tutto. In effetti sembra che il problema risieda in /etc/sudoers. Grazie per avermi indicato in quella direzione.

Ho pensato di documentarlo per il gusto di 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

In effetti, sto usando l'utente ubuntu per le mie operazioni privilegiate (anche se, di nuovo, il server web funziona solo come www-data), quindi immagino che spieghi il problema che stavo riscontrando.

Se qualcuno vuole dare una risposta perché l'utente ubuntu ha bisogno della funzionalità Sudo senza password, mi piacerebbe ascoltarlo. Altrimenti, almeno per il momento, penso che lascerò 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 aver prestato tempo ed esperienza.

27
Chris Allen Lane

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

Per quanto riguarda l'autenticazione senza password, hai ragione nel dire che l'autenticazione con chiave pubblica è un metodo preferito per l'autenticazione con i server. Se non c'è alcuna password da indovinare, allora nessun tentativo di forza bruta può avere successo.

Il fatto che tu non abbia affatto una password di root viola alcune delle migliori pratiche, ma come hai affermato correttamente, se è necessaria una chiave per entrare nella scatola, probabilmente va bene. Avere una password di root potrebbe incoraggiarti a usare SSH per accedere come root, che dovrebbe essere disabilitato in sshd_config.

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

Inoltre, per la cronaca: ho provato a impostare una password accedendo tramite SSH e quindi eseguendo passwd, ma ha generato un errore. Non ricordo l'esatto fraseggio, ma era qualcosa che riguardava un "token". In entrambi i casi, la password non è rimasta, il che mi fa pensare che qui fraintenda qualcosa a un livello fondamentale.

Non sei riuscito a impostare una password mentre Sudo eseguiva il root? O semplicemente come utente normale? Avere l'autenticazione con chiave pubblica in atto non dovrebbe impedirti di impostare una password per lo spazio utente, né una password di root. Sembra che potresti riscontrare questo problema, discusso su SuperUser , quindi speriamo che possa essere di aiuto.

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

14
dshaw

È possibile impostare una password su root mentre è abilitata l'autenticazione con chiave SSH. In Ubuntu disrto, ad esempio, l'account root è "disabilitato". È possibile eseguire il Sudo sull'account creato durante l'installazione, che verrà eseguito con il privilegio di root.

Se esegui www-data$Sudo -i dovresti ricevere il seguente messaggio:

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

Ciò che dshaw citato di solito è disabilitato in Ubuntu

# %Sudo ALL=NOPASSWD: ALL

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

Spero che sia di aiuto.

3
Bassec