[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ssh, sudo vs setuid (was Re: spegnere non da root)



On Sun, Oct 20, 2002 at 05:00:43PM +0200, Nick Name wrote:
> Ho una curiosità: di sicurezza me ne intendo poco, ma non è la prima
> volta che per questo annoso problema dell'arresto del sistema da parte
> degli utenti propongo di setuidare /sbin/halt e fare un gruppo shutdown.
> Ho provato prima e funziona.
Funziona, ma comporta una modifica ad un file in /sbin, dove dovrebbe
mettere mano solo la distribuzione. Pertanto e` ritenuto "sporco".

> Come mai consigliate sudo? E' solo un'altra possibilità, è più/meno
> sicuro, è meglio/peggio per qualche motivo?
Con sudo hai piu` controllo su come l'utente deve fare per eseguire il
comando come root (per esempio, se deve mettere la password o meno).

sudo ha avuto qualche baco di sicurezza, pero`.

Mettere setuid un qualsiasi eseguibile, cmq, implica che un qualsiasi
baco di tale eseguibile sia facile da sfruttare per ottenere accesso
come root. E ovviamente, per quanto si voglia concedere agli utenti di
halt-are la macchina, non gliela si vuole fare rootare, spero.
Lo stesso problema c'e` dando uid 0 ad un utente e mettendogli come
shell /sbin/halt.

Un po' meglio sarebbe
1) usare sudo per dire quali utenti possono spegnere la macchina (magari
   con un utente apposito, diciamo "halt");
2) autorizzare le chiavi ssh dei client che devono potersi collegare
   come halt;
3) per ogni chiave, mettere (in ~halt/.ssh/authorized_keys), prima della
   chiave stessa, le opzioni
   no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="/sbin/halt &" 
   in modo che collegandosi non possano eseguire altro che /sbin/halt,
   senza passare opzioni maliziose che possano sfruttare un ipotetico
   bug di halt.

Ciao,
/dev/null



Reply to: