Configurare SUDO per gestire le attività degli amministratori: differenze tra le versioni

→‎Esempio di configurazione: aggiunta sezione per le considerazioni di sicurezza
(→‎Esempio di configurazione: aggiunta sezione per le considerazioni di sicurezza)
Riga 98: Riga 98:
#
#


Defaults        env_reset
Defaults        env_reset, secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


# Configurazione di default per root
# Configurazione di default per root
Riga 116: Riga 116:


# Definisco degli alias per i comandi che voglio impedire
# Definisco degli alias per i comandi che voglio impedire
Cmnd_Alias  NSHELLS = /bin/sh,/bin/bash
Cmnd_Alias  NSHELLS = /bin/sh, /bin/bash, /bin/dash
Cmnd_Alias  NSU = /bin/su
Cmnd_Alias  NSU = /bin/su
Cmnd_Alias  NVISUDO = /usr/sbin/visudo
Cmnd_Alias  NVISUDO = /usr/sbin/visudo
Riga 132: Riga 132:
</pre>
</pre>


{{Warningbox | Le restrizioni operate con '''!''' non sono '''MAI''' realmente efficaci contro malintenzionati se si permette l'uso di ''ALL'', vista la difficoltà di immaginare a priori tutti i comandi possibilit. Al limite comunicano che i SUPERUSERS non dovrebbero eseguire tali comandi o equivalenti con lo stesso effetto.
==== Valutazioni di sicurezza ====


Infatti le restrizioni sono facilmente aggirabili modificando direttamente <code>/etc/sudoers</code> con un editor qualsiasi e, se anche questi venissero ristretti, sarebbe sempre possibile fare copie di una shell con altri nomi e perfino creare nuovi eseguibili che modifichino file con [[privilegi di amministratore]].
Le restrizioni operate con '''!''' non sono '''MAI''' realmente efficaci contro malintenzionati se si permette l'uso di ''ALL'', vista la difficoltà di immaginare a priori tutti i comandi possibilit. Al limite comunicano che i SUPERUSERS non dovrebbero eseguire tali comandi o equivalenti con lo stesso effetto.


L'unico modo per restringere le attività che un utente può eseguire come amministratore è limitarlo a una lista predeterminata di eseguibili, valutando singolarmente che non siano sfruttabili anche per altre azioni, come per esempio eseguire una shell o alterare il sistema in modo arbitrario.}}
Non sarebbe vietato avviare altri interpreti (<code>awk</code>, <code>perl</code>, <code>python</code>, ...), eseguibili con una shell di escape (in grado di avviare una shell, tra cui perfino alcuni giochi) e in generale comandi in grado di avviarne altri (<code>env</code>, <code>find</code>, ...) o di contenere più sessioni (<code>screen</code>, <code>tmux</code>, ... ) o terminali grafici, editor di testo (<code>nano</code>, <code>vi</code>, ...) o qualsiasi comando in grado di alterare un file (<code>cp</code>, <code>mv</code>, <code>chmod</code>, <code>chown</code>, <code>tee</code>, <code>dd</code>, ...) per poter modificare <code>/etc/sudoers</code>.
 
Se anche tutti questi venissero vietati, sarebbe sempre possibile fare copie di una shell con altri nomi e perfino creare nuovi eseguibili che modifichino file con [[privilegi di amministratore]].
 
L'unico modo per restringere le attività che un utente può eseguire come amministratore è limitarlo a una lista predeterminata di eseguibili, valutando singolarmente che non siano sfruttabili anche per altre azioni, come per esempio eseguire una shell o alterare il sistema in modo arbitrario.}
 
E si noti che perfino rimuovendo ''ALL'' il solo <code>dpkg</code>, utilizzabile dagli ADMIN, è in grado di installare software esterno a Debian, creabile da chiunque se in forma di [[pacchetto|pacchetto deb]], e può essere quindi sfruttato per ottenere pieni privilegi di amministratore. E anche i comandi <code>apt-get</code> e <code>aptitude</code> durante un aggiornamento, in presenza di configurazioni cambiate, possono permettere di accedere a una shell con permessi di [[root]].
 
Questo per dire che a volte la sicurezza ottenuta da tali file di configurazione, pur riducendo di molto gli usi consentiti, è soltanto apparente senza un'attenta valutazione delle conseguenze per ogni comando permesso. E spesso, come nell'esempio precedente, non è possibile impedirne l'abuso senza togliere anche la possibilità di svolgere un'attività di amministrazione, il che non è accettabile. Le regole scritte nel file di configurazione in questi casi servono a comunicare a un amministratore minore le funzioni che è autorizzato a svolgere, che possono essere monitorate tramite i log delle attività, predisponendo dei sistemi di protezione (hardware o tramite ''Mandatory Access Control'') che ne garantiscano l'integrità.


== Esempio di sessione ''sudo'' ==
== Esempio di sessione ''sudo'' ==
3 581

contributi