Il primo e più cruciale passo verso la protezione di server e sistemi Linux è impedire l'accesso non richiesto da parte di malintenzionati. Il corretto controllo dell'account utente è uno dei tanti modi per migliorare la sicurezza del tuo sistema.

Un account utente protetto impedisce al sistema di utilizzare i metodi di attacco più comuni di escalation dei privilegi orizzontale o verticale. Pertanto, in qualità di amministratore di sistema Linux, sei anche responsabile della protezione del tuo server tramite tecniche di sicurezza efficaci.

Questo articolo illustra alcuni controlli di sicurezza dell'account utente di base per prevenire accessi non necessari e correggere possibili scappatoie per la compromissione del sistema.

1. Limita l'accesso all'account root

Per impostazione predefinita, ogni installazione di sistema Linux configura un account root accessibile a chiunque dall'esterno tramite SSH. Tuttavia, l'accesso all'account root tramite SSH o l'accesso di più utenti all'interno del sistema può causare problemi di ripudio.

Ad esempio, un utente malintenzionato può eseguire la forza bruta per accedere come utente root e ottenere l'accesso al sistema.

Per limitare l'accesso root non necessario dall'interno/esterno del sistema Linux, è possibile:

  • Aggiungi un altro utente e concedigli i privilegi di root
  • Disabilita l'accesso root SSH

Crea un nuovo superutente

a concedere sudo o autorizzazioni di root a un normale account utente Linux, aggiungi l'utente a sudo gruppo come segue:

usermod -aG sudo nome utente

Ora passa all'account utente usando il comando su e verifica i suoi privilegi di root emettendo un comando accessibile solo all'utente root:

su - nome utente
sudo systemctl restart sshd

L'abilitazione delle autorizzazioni sudo offre alcuni buoni vantaggi in termini di sicurezza, come ad esempio:

  • Non è necessario condividere le password di root con utenti regolari.
  • Ti aiuta a controllare tutti i comandi eseguiti dagli utenti regolari, il che significa che memorizza i dettagli su chi, quando e dove dell'esecuzione dei comandi nel /var/log/secure file.
  • Inoltre, puoi modificare il /etc/sudoers file per limitare i permessi di superutente degli utenti regolari. Puoi usare il comando su -l per controllare i permessi di root correnti di un utente.

Disabilita l'accesso SSH root

Per disabilitare l'accesso SSH root sul tuo sistema, prima apri il file di configurazione principale.

sudo vim /etc/ssh/sshd_config

Ora decommenta la riga seguente per impostare i permessi di accesso root no:

PermitRootLogin n

Salva il file e riavvia il ssh servizio digitando:

sudo systemctl restart sshd

Ora, ogni volta che tenti di accedere a SSH nel sistema come utente root, riceverai il seguente messaggio di errore:

Autorizzazione negata, riprova.

2. Imposta le date di scadenza sugli account

Un altro modo efficace per controllare l'accesso non necessario consiste nell'impostare le date di scadenza sugli account creati per un utilizzo temporaneo.

Ad esempio, se uno stagista o un dipendente ha bisogno di accedere al sistema, puoi impostare una data di scadenza durante la creazione dell'account. È una misura precauzionale nel caso in cui ti dimentichi di rimuovere o eliminare manualmente l'account dopo che hanno lasciato l'organizzazione.

Utilizzare il cambio comando con l'utilità grep per recuperare i dettagli sulla scadenza dell'account per l'utente:

chage -l nome utente| conto grep

Produzione:

L'account scade: mai

Come mostrato sopra, non emette alcuna data di scadenza. Ora usa il mod utente comando con il -e flag per impostare la data di scadenza nel AAAA-MM-GG formattare e verificare la modifica utilizzando il comando chage sopra.

usermod -e 2021-01-25 nome utente
chage -l nome utente| conto grep

3. Migliora la sicurezza della password dell'account

L'applicazione di una policy password forte è un aspetto importante della protezione degli account utente, poiché password deboli consentono agli aggressori di entrare facilmente nei tuoi sistemi tramite forza bruta, dizionario o attacchi tabella arcobaleno.

La scelta di una password facile da ricordare può offrire una certa comodità, ma offre anche possibilità agli aggressori di indovinare le password con l'aiuto degli strumenti e degli elenchi di parole disponibili online.

Imposta la data di scadenza della password

Inoltre, Linux offre alcune opzioni predefinite all'interno /etc/logins.defs file che consente di impostare l'età della password dell'account. Utilizzare il cambio command e grep i dettagli sulla scadenza della password come segue:

chage -l nome utente | giorni di grep
Variabili Valore di default Utilizzo Valore ideale
PASS_MAX_DAYS 9999 Il numero predefinito di giorni per utilizzare una password che dipende dal tipo di configurazione dell'account 40
PASS_MIN_DAYS 0 Impedisce agli utenti di modificare la password immediatamente 5
PASS_MIN_LEN 5 Forza l'utente a impostare password di una certa lunghezza 15
PASS_WARN_AGE 0 Avvisa l'utente di modificare la password prima di essere costretto a farlo 7

Per gli account in uso, puoi controllare l'invecchiamento della password con l'aiuto di cambio comando per impostare PASS_MAX_DAYS, PASS_MIN_DAYS e PASS_WARN_AGE su 40, 5 e 7.

cambio -M 40 -m 5 -W 7 nome utente

Hash delle password

Un altro modo per rafforzare la sicurezza della password dell'account è archiviare gli hash delle password all'interno il file /etc/shadow. Gli hash sono funzioni matematiche unidirezionali che prendono la password come input e generano una stringa non reversibile.

In precedenza, sui sistemi Linux, ogni volta che un utente immetteva la propria password per accedere, il sistema generava il proprio hash e lo confrontava con quello memorizzato in /etc/passwd file.

Tuttavia, c'è un problema con l'accesso ai permessi del file passwd, ovvero chiunque abbia accesso al sistema può leggere il file e decifrare l'hash con le tabelle rainbow.

Quindi, Linux ora salva gli hash all'interno del file /etc/shadow file con il seguente set di autorizzazioni di accesso:

ls -l /etc/shadow
1 radice radice 1626 7 gennaio 13:56 /etc/shadow

È ancora possibile installare Linux con i vecchi metodi di archiviazione degli hash. Puoi modificarlo eseguendo il pwconv comando, in modo tale da salvare automaticamente gli hash della password nel file /etc/shadow file. Allo stesso modo, puoi abilitare l'altro metodo (/etc/passwd file) utilizzando il pwun conv comando.

4. Rimuovi gli account utente inutilizzati

Un cattivo attore può sfruttare gli account inutilizzati e scaduti nel sistema, rinnovando quell'account e facendolo apparire come un utente legittimo. Per rimuovere un account inattivo e i dati associati ogni volta che un utente lascia l'organizzazione, trova innanzitutto tutti i file relativi all'utente:

trova / -nome utente utente

Quindi, disabilita l'account o imposta una data di scadenza come discusso sopra. Non dimenticare di eseguire il backup dei file di proprietà dell'utente. Puoi scegliere di assegnare i file a un nuovo proprietario o rimuoverli dal sistema.

Infine, elimina l'account utente utilizzando il comando userdel.

userdel -f nome utente

5. Limita l'accesso remoto a un gruppo di utenti specifico

Se stai ospitando un server Web sulla tua macchina Linux, potrebbe essere necessario consentire solo a utenti specifici di SSH remoto nel sistema. OpenSSL ti consente di limitare gli utenti controllando se appartengono a un gruppo specifico.

Per questo, crea un gruppo di utenti chiamato ssh_gp, aggiungi gli utenti a cui desideri concedere l'accesso remoto al gruppo ed elenca le informazioni sul gruppo di utenti come segue:

sudo groupadd ssh_gp
sudo gpasswd -a nome utente ssh_gp
nome utente del gruppo

Ora, apri il file di configurazione principale di OpenSSL per includere il gruppo di utenti consentito ssh_gp.

sudo vim /etc/ssh/sshd_config
AllowGroups ssh_gp

Ricordarsi di rimuovere il commento dalla riga per garantire un'inclusione di successo nel gruppo. Al termine, salva ed esci dal file e riavvia il servizio:

sudo systemctl restart sshd

Mantenere la sicurezza dell'account utente su Linux

Al giorno d'oggi, la maggior parte delle organizzazioni ospita infrastrutture critiche come server Web, firewall e database Linux e la compromissione di qualsiasi componente interno rappresentano una minaccia significativa per l'insieme infrastruttura.

Data l'importanza della configurazione, la gestione e la protezione degli account utente è una sfida fondamentale affrontata dagli amministratori Linux. Questo articolo ha elencato alcune misure di sicurezza che un amministratore dell'account deve adottare per proteggere il sistema da potenziali minacce dovute ad account utente non protetti.

La guida completa alla gestione degli utenti in Linux

La gestione degli utenti è un compito cruciale in cui ogni amministratore di sistema Linux dovrebbe essere esperto. Ecco la guida definitiva alla gestione degli utenti per Linux.

Leggi Avanti

CondividereTwittaE-mail
Argomenti correlati
  • Linux
  • Sicurezza
  • Controllo dell'account utente
  • Sicurezza
  • Suggerimenti per la sicurezza
Circa l'autore
Rumaisa Niazi (8 articoli pubblicati)

Rumaisa è una scrittrice freelance al MUO. Ha indossato molti cappelli, da matematica a appassionata di sicurezza informatica, e ora lavora come analista SOC. I suoi interessi includono la lettura e la scrittura di nuove tecnologie, distribuzioni Linux e tutto ciò che riguarda la sicurezza delle informazioni.

Altro da Rumaisa Niazi

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti