La sicurezza è un argomento popolare tra gli amministratori di sistema Linux. Ogni forum che leggo, ogni conferenza a cui partecipo e ogni discussione incentrata sull'IT di cui faccio parte si rivolge sempre alla sicurezza, quindi le conversazioni si trasformano, inevitabilmente, nella sicurezza di Linux. Questa è la mia esperienza e la mia incapacità di trattenermi dall'intercettare conversazioni tecnologiche su Linux è l'origine di questo articolo. Questi sono i miei cinque consigli per iniziare subito con un'installazione Linux più sicura.
[Vuoi provare Red Hat Enterprise Linux? Scaricalo ora gratuitamente.]
Mantienilo al minimo
Quando installo Linux, installo sempre la versione più piccola possibile. Per CentOS o Red Hat Enterprise Linux, questo significa un'installazione minima. Preferisco iniziare in piccolo e poi aggiungere ciò di cui ho bisogno piuttosto che rimuovere ciò che non mi serve. Il vantaggio aggiuntivo della selezione di un'installazione minima è che anche l'ingombro del sistema è minimo. Lo spazio su disco è economico, ma chi vuole sprecare spazio su disco in applicazioni superflue che potrebbero tornare a perseguitarci in seguito con problemi di sicurezza? Tutto ciò di cui ho bisogno inizialmente è un'installazione di base con un server SSH in modo da poterlo connettere e gestirlo da remoto. Posso aggiungere tutto ciò di cui ho bisogno tramite DNF in seguito.
I server sono zone senza GUI
Se il tuo sistema Linux vivrà come un server, non installare un'interfaccia utente grafica. Diverse persone sostengono questo punto. Dal punto di vista della sicurezza, l'installazione di una GUI, anche piccola, richiede molti pacchetti software aggiuntivi. Ognuno di questi potrebbe essere soggetto a problemi di sicurezza. Alcuni pacchetti GUI possono aprire porte sul sistema, il che è indesiderabile perché tale azione aumenta la superficie di attacco. Infine, le prestazioni del tuo sistema potrebbero (soffriranno) dall'avere un'interfaccia grafica, perché le GUI consumano molte risorse di sistema.
Lascia le GUI sul desktop. Impara la riga di comando.
I firewall sono obbligatori
Sui sistemi basati su Red Hat (Red Hat Enterprise Linux, Fedora e CentOS), firewalld
è il tuo firewall predefinito. Usalo. Questo firewall basato su host protegge il tuo sistema da intrusioni indesiderate attraverso tutte le porte, ad eccezione di quelle che hai esplicitamente consentito. Puoi anche limitare selettivamente il traffico in uscita attraverso il firewall.
Tuttavia, il metodo più sicuro per limitare il traffico in uscita consiste nel configurare un server proxy Internet interno e consentire solo il traffico in uscita verso quel sistema. Puoi anche consentire il traffico SSH alla tua sottorete locale nel caso in cui sia necessario connetterti da un sistema all'altro. I firewall basati su host possono essere frustranti durante il test della connettività tra i sistemi, in particolare per i servizi appena configurati, ma vale la pena provare i pochi momenti di frustrazione. Appendi un cartello appena sopra i tuoi monitor nel tuo cubicolo che dice "CONTROLLA IL FIREWALL" e andrà tutto bene.
Vale la pena imparare SELinux
Ah, il tanto detestato e frainteso SELinux. Tipicamente, gli amministratori di sistema disabilitano o rimuovono del tutto SELinux piuttosto che affrontare l'estrema angoscia di sicurezza che produce. Il mio consiglio è di lasciare questo servizio attivo, abilitato e impostarlo in applicazione.
SELinux utilizza ciò che è noto come controllo di accesso obbligatorio (o MAC), mentre i firewall utilizzano il controllo di accesso basato su regole e le autorizzazioni standard *nix sono note come controllo di accesso discrezionale. Prima di rinunciare e disabilitare SELinux, leggi un po' di documentazione sulla sua configurazione. Poiché la maggior parte dei sistemi esegue solo un piccolo insieme di servizi, la configurazione non è una seccatura così grande, al contrario del pericolo di non avere questo servizio abilitato.
SELinux deve essere configurato in un modo particolare, consentendo ai file di essere etichettati, impostati in contesti di sicurezza e riavviati un paio di volte per far funzionare le cose. Leggi la documentazione. SELinux, contrariamente alla credenza popolare, NON è un firewall (o un sostituto di uno), una soluzione anti-malware, un sostituto di meccanismi di autenticazione come l'autenticazione a più fattori o una panacea per la sicurezza con uno sforzo di immaginazione.
SELinux è una difesa contro l'escalation dei privilegi dai servizi eseguiti come utente root. Spegnerlo è probabilmente una cattiva idea. L'uso corretto di SELinux è un ulteriore livello di protezione necessario in questi giorni di minacce persistenti avanzate e malware più intelligenti.
Gli accessi root remoti sono una cattiva idea
Per impostazione predefinita, sui sistemi basati su Red Hat, l'utente root può accedere in remoto tramite SSH. Posso capire perché questa funzione è impostata per impostazione predefinita sui sistemi appena installati, ma dovrebbe essere disabilitata una volta che il sistema è attivo e funzionante e sono stati creati account con accesso sudo.
La disabilitazione dell'accesso root remoto impedisce a un utente malintenzionato di utilizzare metodi di forza bruta per indovinare la tua password di root. I tentativi vengono registrati ma non avranno alcun effetto sulla sicurezza perché l'account root non può accedere in remoto. E se hai installato uno script o un servizio di prevenzione delle intrusioni, tentativi ripetuti generano automaticamente una nuova regola DROP o la creazione di un /etc/hosts.deny
voce.
Verifica se gli accessi root remoti sono abilitati:
$ sudo grep -i root /etc/ssh/sshd_config
PermitRootLogin yes
# the setting of "PermitRootLogin without-password".
#ChrootDirectory none
Se vedi PermitRootLogin yes
, l'utente root può accedere in remoto tramite SSH. Modifica il /etc/ssh/sshd_config
file e inserisci un #
per commentare la riga o modificare yes
a no
. Riavvia sshd
servizio per accettare la nuova configurazione:
$ sudo systemctl restart sshd.service
L'utente root non sarà più in grado di accedere tramite SSH.
Conclusione
Leggi qualsiasi sondaggio degli ultimi dieci anni e vedrai che la sicurezza è la massima priorità o preoccupazione per gli amministratori di sistema. Rendilo tuo priorità di proteggere un sistema con almeno questi cinque suggerimenti prima che i sistemi entrino in produzione. La sicurezza non è qualcosa su cui puoi rimandare o rilassarti. Questi cinque suggerimenti ti aiuteranno a portare online un sistema più sicuro e a rendere la tua rete un luogo di lavoro più sicuro.