Il blocco del sistema non deve essere un compito grande o orribile che colpisce il terrore nei cuori degli amministratori di sistema più stanchi. No, non è intuitivo o necessariamente banale bloccare correttamente un server Linux, ma non è nemmeno fisica quantistica. Nel mio precedente articolo, Sysadmin security:8 controlli di blocco di Linux, ho trattato otto modifiche essenziali che è necessario apportare a ogni sistema Linux indipendentemente dalla funzione. In questo articolo tratterò più controlli di sistema che puoi implementare rapidamente e gratuitamente.
Questi controlli provengono da una varietà di fonti, come la mia esperienza, DISA STIG e altri amministratori di sistema. I controlli qui elencati non sono in un particolare ordine di importanza o gravità.
Banner
Indipendentemente dal fatto che il tuo sistema disponga di un'interfaccia utente grafica o meno, devi creare un banner che venga visualizzato all'utente al momento dell'accesso. Il banner deve avvertire l'utente che il sistema è protetto da
Modifica il /etc/issue
per gli utenti della console e il /etc/issue.net
per gli utenti della rete. Assicurati di fornire il percorso completo del file che stai utilizzando per il banner nel /etc/ssh/sshd_config
file come segue:
Banner /etc/issue.net
Puoi utilizzare qualsiasi file desideri, ma devi modificare il percorso del Banner e puntarlo al file che contiene il tuo messaggio.
No, l'impostazione di un banner non impedirà sicuramente a un utente malintenzionato di compromettere con successo il tuo sistema. Tuttavia, distrugge l'argomento della difesa secondo cui l'attaccante non era consapevole del fatto che il sistema fosse un sistema privato e protetto.
Applicazione della complessità delle password
Imponi la complessità delle password, per quei sistemi che usano ancora le password, modificando i parametri in /etc/security/pwquality.con
file (mostrato sotto). Questo file contiene un elenco di parametri modificabili per imporre password complesse per i tuoi sistemi.
# Configuration for systemwide password quality limits
# Defaults:
#
# Number of characters in the new password that must not be present in the
# old password.
# difok = 5
#
# Minimum acceptable size for the new password (plus one if
# credits are not disabled which is the default). (See pam_cracklib manual.)
# Cannot be set to lower value than 6.
# minlen = 9
#
# The maximum credit for having digits in the new password. If less than 0
# it is the minimum number of digits in the new password.
# dcredit = 1
#
# The maximum credit for having uppercase characters in the new password.
# If less than 0 it is the minimum number of uppercase characters in the new
# password.
# ucredit = 1
#
# The maximum credit for having lowercase characters in the new password.
# If less than 0 it is the minimum number of lowercase characters in the new
# password.
# lcredit = 1
#
# The maximum credit for having other characters in the new password.
# If less than 0 it is the minimum number of other characters in the new
# password.
# ocredit = 1
#
# The minimum number of required classes of characters for the new
# password (digits, uppercase, lowercase, others).
# minclass = 0
#
# The maximum number of allowed consecutive same characters in the new password.
# The check is disabled if the value is 0.
# maxrepeat = 0
Di seguito sono riportati i valori consigliati. Nota:assicurati di decommentare la riga del parametro per abilitare il valore imposto.
difok = 8
minlen = 15
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1
minclass = 4
maxrepeat = 3
maxclassrepeat = 4
Questi parametri aiutano a garantire che le password di sistema siano molto più sicure rispetto alle impostazioni predefinite. Si consiglia di utilizzare l'autenticazione a più fattori anziché le password per una maggiore sicurezza dell'accesso al sistema.
Nota:il minlen
(lunghezza minima) deve essere impostato su un valore pari o superiore a 15. Insegna agli utenti a utilizzare le passphrase invece di cercare di trovare una singola parola che soddisfi i criteri.
Durata minima della password
Alcuni utenti intelligenti cambiano le loro password più volte per aggirare la sicurezza del sistema. Quando sono costretti ad aggiornare le loro password, cambiano le loro password abbastanza volte da superare la sicurezza del sistema e alla fine reimpostare la loro password sull'originale. Il PASS_MIN_DAYS
parametro nel /etc/login.defs
file può impedire questa attività. Impostare il valore su 1 o superiore. Il valore predefinito è 0, che è ciò che causa il problema di sicurezza.
PASS_MIN_DAYS 1
L'impostazione di questo parametro significa che l'utente deve conservare la nuova password per almeno un giorno prima di modificarla nuovamente. Puoi impostare il valore su qualsiasi numero desideri, ma impedire all'utente di modificare immediatamente più volte sembra risolvere il problema.
Durata massima della password
Forse ancora più pericoloso della durata minima della password è l'impostazione della durata massima della password. Il valore predefinito è 99999, il che significa che l'utente non dovrà mai modificare le proprie password. Questa è una grave violazione della sicurezza.
A seconda delle politiche e delle esigenze di sicurezza della tua azienda, dovresti applicare le modifiche alle password nell'intervallo da 60 a 90 giorni. Per applicare tale modifica a livello di sistema, modifica il PASS_MAX_DAYS
impostazione nel /etc/login.defs
file.
PASS_MAX_DAYS 60
Questa impostazione obbliga gli utenti a modificare le proprie password ogni 60 giorni. Sì, sentirai dei lamenti, specialmente se accoppiato con il PASS_MIN_DAYS
restrizione. La sicurezza vince sui reclami degli utenti.
Sicurezza Sudoer
Spesso gli amministratori di sistema configurano i propri account utente per utilizzare sudo
comando senza password. Questa è una grave violazione della sicurezza e non dovrebbe essere consentita in nessun caso su nessun sistema, indipendentemente dalla funzione.
Modifica il /etc/sudoers
file con visudo
e rimuovi tutte le istanze di NOPASSWD nel file.
Inoltre, controlla le istanze di "!authentication" in /etc/sudoers
file. Questa voce consente a un utente che ha sudo
accedere per continuare a usare sudo
senza riautenticazione. Questa è una violazione della sicurezza. Rimuovi tutte le istanze di "!authentication" da /etc/sudoers
file.
Ritardo di accesso non riuscito
Per aiutare a contrastare gli attacchi di forza bruta agli account utente, è necessario impostare il ritardo di accesso non riuscito su almeno 4 secondi. Ciò scoraggia gli attacchi di forza bruta, ma può anche aiutare gli utenti a inserire la password corretta, il che diventa più difficile per password e passphrase più lunghe.
Questo parametro è impostato in /etc/login.defs
file. Il numero è il numero di secondi in cui il sistema si ferma prima di presentare una nuova richiesta di accesso dopo un tentativo di accesso non riuscito.
FAIL_DELAY 4
Quattro secondi sono abbastanza brevi da non frustrare gli utenti che potrebbero aver premuto accidentalmente il tasto sbagliato, ma abbastanza da impedire ripetuti tentativi di accesso da parte dei bot.
Disabilita il montaggio automatico del dispositivo
Il montaggio automatico dei filesystem introduce rischi per la sicurezza da dispositivi sconosciuti che potrebbero essere collegati a un sistema. In altre parole, un utente malintenzionato potrebbe collegare un dispositivo USB per fornire un carico utile quando il dispositivo si monta automaticamente. Disabilita il montaggio automatico interrompendo e disabilitando autofs
servizio.
$ sudo systemctl stop autofs
$ sudo systemctl disable autofs
Potrebbe essere un po' meno conveniente dover montare manualmente i filesystem dopo che un nuovo dispositivo è stato collegato al sistema, ma l'aumento della sicurezza compensa i tre secondi di lavoro extra necessari per montare un dispositivo. Ciò consente all'amministratore di sistema di disabilitare, cancellare o espellere un dispositivo non autorizzato.
Limita i permessi per la creazione di file
Torniamo al /etc/login.defs
file per apportare una modifica a livello di sistema. Quando gli utenti creano nuovi file, in genere ricevono autorizzazioni di 644 risultanti da umask
impostazione del filtro di 022. Per migliorare la sicurezza, tutti i nuovi file devono essere creati con un umask
di 077, che si traduce in nuovi file con 600 come autorizzazioni predefinite.
UMASK 077
Per la maggior parte degli utenti, potrebbe essere meno importante, ma per i file creati da root, questa impostazione è obbligatoria. L'impostazione a livello di sistema garantisce la coerenza.
Concludi
Il miglioramento della sicurezza del sistema è una delle attività principali dell'amministratore di sistema. I nuovi sistemi, i sistemi ereditati e i sistemi che servono funzioni di nicchia sono i più vulnerabili sulla rete. È necessario prestare particolare attenzione per proteggere ogni sistema di rete. Spesso la compromissione di un sistema consente la compromissione di più sistemi perché ora l'attaccante si trova all'interno della rete e ha il controllo di uno o più sistemi.
Alcuni di questi controlli di sicurezza potrebbero sembrare pesanti, ma rispetto al recupero dopo una violazione, fa solo parte della "normalità" di oggi.
[ Vuoi saperne di più sulla sicurezza? Consulta la checklist di sicurezza e conformità IT. ]