Ricerca nel sito web

Come proteggere con password la modalità utente singolo in CentOS 7


In uno dei nostri articoli precedenti, abbiamo descritto come eseguire l'avvio in modalità utente singolo su CentOS 7. È nota anche come "modalità di manutenzione", in cui Linux avvia solo una manciata di servizi per consentire funzionalità di base un singolo utente (tipicamente un superutente) esegue determinate attività amministrative come l'utilizzo di fsck per riparare filesystem corrotti.

In modalità utente singolo, il sistema esegue una shell per utente singolo in cui è possibile eseguire comandi senza credenziali di accesso (nome utente e password), si finisce direttamente in una shell limitata con accesso all'intero filesystem.

Questa è un'enorme falla nella sicurezza poiché fornisce agli intrusi l'accesso diretto alla shell (e il possibile accesso all'intero filesystem). Pertanto, è importante proteggere con password la modalità utente singolo su CentOS 7 come spiegato di seguito.

In CentOS/RHEL 7, gli obiettivi di salvataggio e gli obiettivi di emergenza (che sono anche modalità per utente singolo) sono password protetto per impostazione predefinita.

Ad esempio, quando provi a modificare il target (runlevel) tramite systemd in rescue.target (anche emergency.target), ti verrà richiesta una password di root come mostrato nello screenshot seguente.

systemctl isolate rescue.target
OR
systemctl isolate emergency.target

Tuttavia, se un intruso ha accesso fisico a un server, può selezionare un kernel da avviare dalla voce del menu di grub premendo il tasto e per modificare la prima opzione di avvio.

Nella riga del kernel che inizia con “linux16“, può cambiare l'argomento ro in “rw init=/sysroot/bin/sh ” e avvia in modalità utente singolo su CentOS 7 senza che il sistema chieda una password di root, anche se la riga SINGLE=/sbin/sushell viene modificata in SINGOLO=/sbin/sulogin nel file /etc/sysconfig/init.

Pertanto, l'unico modo per proteggere con password la modalità utente singolo in CentOS 7 è proteggere GRUB con password utilizzando le seguenti istruzioni.

Come proteggere Grub con password in CentOS 7

Per prima cosa crea una password crittografata complessa utilizzando l'utilità grub2-setpassword come mostrato.

grub2-setpassword

L'Hash per la password è memorizzato in /boot/grub2/user.cfg & user, ovvero "root" è definito in / boot/grub2/grub.cfg, puoi visualizzare la password usando il comando cat come mostrato.

cat /boot/grub2/user.cfg

Ora apri il file /boot/grub2/grub.cfg e cerca la voce di avvio che desideri proteggere con password, inizia con menuentry. Una volta individuata la voce, rimuovi il parametro --unrestricted da essa.

Salva il file e chiudi, ora prova a riavviare il sistema CentOS 7 e modifica le voci di avvio premendo il tasto e, ti verrà chiesto di fornire le credenziali come mostrato.

Questo è tutto. Hai protetto con successo con password il tuo menu GRUB CentOS 7.