GNU/Linux >> Linux Esercitazione >  >> Linux

8 Migliori pratiche con sudo su Linux:cosa fare e cosa non fare sudo

Tutti gli utenti Linux in questi giorni avrebbero familiarità con sudo comando (sta per "superutente do"). Dobbiamo rendere popolare sudo imponendo piuttosto che incoraggiando gli utenti a utilizzare su per ottenere i privilegi di root per l'esecuzione di attività amministrative. Ma c'è molto di più che devi sapere su sudo. Con l'aiuto di sudo puoi facilmente eseguire comandi come qualsiasi altro utente, non solo come utente root! Se sudo non viene gestito correttamente, è quasi peggio della semplice condivisione delle credenziali di root, perché fornisce un falso senso di sicurezza. Diamo un'occhiata ad alcune delle migliori pratiche per controllare l'accesso al sistema con sudo consentendo comunque agli utenti di essere produttivi. Impara a usare sudo e segui queste best practice, così potrai rilassarti e goderti ogni boccone del tuo panino.

Nota:devi usare Visudo comando per modificare il file /etc/sudoers. Fai attenzione durante la modifica!

1. Non consentire l'accesso illimitato agli utenti con sudo

Non configurare sudo per consentire agli utenti di passare a root o a qualsiasi altro account. Prova invece a configurare sudo per consentire agli utenti di eseguire comandi specifici come gli utenti con cui devono operare.

Ad esempio:è necessario che un utente installi un software. Consenti loro di eseguire solo RPM o APT o YUM come root senza nemmeno passare all'utente root come mostrato di seguito:

peter ALL =(ALL) PASSWD : /usr/bin/apt-get, /usr/bin/yum, /bin/rpm

Ciò consentirebbe a peter per eseguire sudo apt-get, sudo yum e sudo rpm senza alcuna password ma non consentirebbe altri comandi!

2. Non concedere TUTTI i privilegi di root a un utente sudo

Non utilizzare ALL mentre concedi le autorizzazioni di accesso a un utente sudo. È uno degli errori più comuni che farebbero gli amministratori. Ciò consente agli utenti di utilizzare il comando su per concedersi privilegi di root permanenti bypassando così le funzionalità di registrazione dei comandi di sudo.

peter    ALL=(ALL:ALL) ALL

Un modo migliore è concedere l'accesso a file di programma specifici, ad esempio:Utente peter otterrebbe l'accesso a tutti i file di programma nelle directory /sbin/ e /usr/sbin, oltre al comando /opt/oracle/check.pl.

Nota:è necessaria una barra (/) finale per specificare un percorso di directory

peter ALL=(ALL) PASSWD: /sbin/, /usr/sbin, /opt/oracle/check.pl

3. Non concedere accesso illimitato senza password ai privilegi di root

Ad esempio, pensa che un intruso ottenga l'accesso a un account utente, che ha accesso sudo senza password ai privilegi di root. Potrebbe fare ciò a cui non potresti nemmeno pensare! Concedi invece l'accesso a un utente per i privilegi di root con password (la propria password).

peter    ALL=(ALL) PASSWD:ALL

Ciò consentirebbe all'utente peter per inserire la password ogni volta che usa sudo per ottenere i privilegi di root.

4. Usa la direttiva include per specifiche configurazioni di sudo

All'interno di ambienti di grandi aziende, è sempre meglio mantenere una configurazione sudo specifica basata sulle applicazioni oltre a una configurazione locale. Ad esempio:se desideri includere lo stesso insieme di direttive per la gestione di Apache e MySQL, puoi suddividerlo in un sudo.mysql separato file e usa una direttiva include per chiamarlo dal file sudoers principale.

#include /etc/sudo.mysql

5. Concedi a Sudo l'accesso ai gruppi anziché ai singoli utenti

Ad esempio:disporre di un gruppo di amministratori con privilegi di amministratore che gestisce l'installazione e l'aggiornamento dei pacchetti. In questo modo, non è necessario modificare il file sudoers ogni volta che aggiungi/rimuovi un nuovo utente. Assicurati semplicemente che gli utenti siano gestiti in modo appropriato e vengano aggiunti/rimossi dal gruppo di amministratori.

%admin ALL=(ALL) ALL

Ciò consentirà alle persone nel gruppo admin per eseguire tutti i comandi.

6. Imposta il timeout appropriato per sudo

Sudo utilizza la funzione timestamp per sapere quando è stato eseguito l'ultimo comando sudo dall'utente. Durante questo periodo di tempo, l'utente può rieseguire il comando senza nemmeno che venga richiesta la password (password dell'utente). Per impostazione predefinita, sudo ricorda la tua password per 15 minuti. Una volta scaduto, all'utente viene richiesta nuovamente la password per eseguire nuovamente il comando. Se desideri modificare il valore predefinito, inserisci semplicemente una voce in sudoers. Ad esempio, per impostare il valore di timeout per tutti gli utenti su qualsiasi comando eseguito su 5 minuti, è possibile utilizzare:

Defaults timestamp_timeout=x

dove x è la scadenza del timeout in minuti. Se specifichi 0(zero) ti verrà sempre chiesta la password. Se specifichi un valore negativo, il timeout non scadrà mai. Per esempio. Predefinito timestamp_timeout=5

Se devi impostare per un particolare utente (peter), inserisci semplicemente la voce seguente nel file sudoers:

Defaults:peter timestamp_timeout=5

Questa funzione non funzionerà se hai NOPASSWD nella voce dell'utente in sudoers.

7. Blocca il percorso per i binari usando la direttiva secure_path in sudo

Una buona pratica è bloccare gli utenti in aree specifiche, assicurando così che gli utenti non possano eseguire comandi al di fuori di secure_path. Usa la seguente direttiva in sudoers, specificando il secure_path :

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

8. Registra ogni attività sudo in un file separato

Per impostazione predefinita, i comandi sudo vengono registrati in un file di registro insieme ad altri messaggi di sistema. Questo non è accettabile per i server in quanto ci sarebbero un numero di utenti. Configura sudo in modo che abbia il proprio file di registro per una facile visibilità sull'uso di sudo e sulle attività dei sudoer. Naturalmente, questo aiuta anche a tenere d'occhio gli eventi sudo non riusciti.

Defaults logfile=/var/log/sudo.log

Se ne hai altri, aggiungi i commenti qui sotto.

Leggi anche: Proteggi il tuo server web:50 best practice da seguire


Linux
  1. Nozioni di base sull'amministratore di sistema Linux:gestione dell'account utente con UID e GID

  2. Monitoraggio dello stato dell'utente e dell'attività in Linux con GNU acct

  3. Come creare un utente Sudo su Rocky Linux e CentOS

  4. Differenza tra utente Sudo e utente root?

  5. Best practice per la sicurezza di Wordpress su Linux

Come creare e configurare un utente Sudo su Arch Linux

Comprendere la differenza tra il comando sudo e su su Linux

Iniziare con GIT su Linux

Aggiungi, elimina e concedi privilegi Sudo agli utenti in Alpine Linux

Come eseguire un alias con Sudo in Linux

Esempi di comandi sudo in Linux