Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Server virtuale Linux sul Cloud: 5 consigli per massimizzare la sicurezza

Impariamo a gestire gli aspetti relativi alla protezione di Server virtuale Linux su Cloud attraverso applicazioni, piattaforme e standard per la sicurezza
Server virtuale Linux sul Cloud: 5 consigli per massimizzare la sicurezza
Impariamo a gestire gli aspetti relativi alla protezione di Server virtuale Linux su Cloud attraverso applicazioni, piattaforme e standard per la sicurezza
Link copiato negli appunti

La sicurezza è un aspetto fondamentale della gestione server, un server Web è destinato infatti a veicolare diverse tipologie di informazioni, compresi i dati personali degli utenti che interagiscono con i nostri siti Internet, i file e le librerie che consentono il funzionamento delle applicazioni nonché le piattaforme che danno vita ad un business online.

Ma come configurare un server Web perché possa garantire il massimo livello di sicurezza? Un primo passo fondamentale riguarda la scelta del sistema operativo di riferimento, da questo punto di vista una distribuzione Linux potrebbe rappresentare una soluzione ottimale. Fra le tante alternative disponibili abbiamo per esempio CentOS, un OS nato come variante di Red Hat Linux Enterprise che è una distribuzione implementata per operare nelle infrastrutture Cloud, ambienti in cui Red Hat è un’azienda leader.

Ora, una volta scelto il sistema operativo più adatto alle proprie esigenze, quali sono le soluzioni più adatte per massimizzarne la sicurezza? Anche in questo caso le soluzioni non mancano, ne analizzeremo quindi alcune in grado di coprire i principali aspetti legati alla gestione Server.

Auditing: Lynis

Lynis è uno strumento Open Source appositamente concepito per l’auditing, cioè la valutazione tecnica, l’hardening, l’ottimizzazione contro le vulnerabilità, e i test di conformità di un sistema.

Fondamentalmente si tratta di una soluzione completa per monitorare lo stato di salute di una configurazione che consente di operare anche attività di penetration testing, con cui controllare l’esposizione di un sistema ad attacchi da remoto, e vulnerability detection per scovare le falle che potrebbero mettere a rischio la configurazione corrente.

Le scansioni effettuate da Lynis prevedono una dinamica modulare, questo significa che verranno impegnate solo le componenti necessarie al controllo richiesto con un evidente vantaggio per le prestazioni. Se per esempio viene rilevato che nel sistema è in funzione un’istanza dell’engine HTTP Apache, l’applicazione darà luogo esclusivamente a test specifici per quest’ultimo.

Lynis ha un target di utenti molto vasto che va dagli sviluppatori agli amministratori di sistema, consente infatti di verificare il livello di inviolabilità delle applicazioni, siano esse attive in un container Docker o in ambiente di produzione, così come di effettuare health scan periodici con cui far emergere nuove vulnerabilità.

Analisi del file system: Rootkit Hunter

Rootkit Hunter è un tool libero e gratuito per gli ambienti Linux che permette di analizzare un filesystem certificandone il livello di sicurezza. Esso opera eseguendo una scansione dei file rilevando le applicazioni malevole eventualmente presenti.

Si tratta di una soluzione avanzata con cui individuare

  • rootkit, software in grado di acquisire privilegi di accesso elevati all’interno di un sistema con lo scopo di prenderne il controllo;
  • backdoor, cioè metodi artificiosamente celati in un software con l’obbiettivo di bypassarne il sistema di autenticazione fino al coinvolgimento del sistema;
  • potenziali exploit: frammenti di codice con cui sfruttare una vulnerabilità di un sistema per dar luogo ad attività malevole contro di esso e i dati gestiti.

Noto anche come “rkhunter”, questo strumento per la sicurezza lavora effettuando un confronto tra gli hash SHA-1 (firme digitali) di file rilevanti per il sistema, e delle applicazioni ospitate, con le informazioni contenute in un database online.

In questo modo si possono rilevare stringhe sospette eventualmente scritte nei moduli del kernel, file nascosti, permessi errati o directory che normalmente non dovrebbero essere presenti in una configurazione sicura e potrebbero essere l’effetto dell’azione di un rootkit.

Trattandosi di una soluzione basata su Bourne shell, Rootkit Hunter è facilmente portabile e compatibile con tutte le distribuzioni Linux.

Firewall: iptables

Un firewall è un tool che ha il compito di “difendere il perimetro” di una rete informatica, se adeguatamente configurato esso garantisce un costante controllo degli accessi alle risorse messe a disposizione da un sistema.

Un firewall opera come una sorta di filtro a carico dell’interscambio di dati con l’esterno, per questo motivo l’utilizzatore deve avere cura di settarlo in modo da definire quali processi (ad esempio l’avvio di un’applicazione) e quali client sono autorizzati ad operare con il sistema, negando invece tale privilegio a quelli che invece devono essere bloccati.

iptables è un firewall Open Source che tra gli altri vantaggi presenta anche un’integrazione nativa nel Kernel Linux. Di base si tratta di uno strumento utilizzabile da linea di comando, ma sono disponibili alcuni strumenti (come Gufw) che permettono di interagire con esso tramite un’interfaccia grafica intuitiva. Se si preferisce operare da CLI (Command Line Interface), ma attraverso una modalità semplificata, è possibile utilizzare iptables tramite Ufw.

iptables opera creando degli insiemi di tutte le attività di monitoraggio che può effettuare a carico del traffico di dati in entrata. Tali raggruppamenti vengono allocati nella catena di input (o Chain INPUT), nello stesso modo le verifiche sul traffico in uscita sono raccolte nella catena di output (o Chain OUTPUT). A tali catene si aggiunge infine la Chain FORWARD che si rivela utile nel caso in cui il traffico non sia diretto verso il sistema sotto controllo ma venga veicolato attraverso di esso.

Grazie al firewall è possibile definire delle regole per il filtering del traffico, queste entrano in azione quando un pacchetto di dati attraversa una catena e vengono esaminate una alla volta alla ricerca di una corrispondenza. In presenza o in mancanza di una corrispondenza tra la regola e la tipologia di pacchetto verrà emesso un verdetto che potrà essere di autorizzazione ad un suo ulteriore passaggio nella catena o meno.

Sessioni remote: SSH

SSH (Secure SHELL) è un protocollo informatico che consente di attivare una sessione di connessione remota criptata con un host attraverso linea di comando.

Si tratta di una soluzione che fornisce un meccanismo di accesso sicuro su terminali a distanza grazie all’utilizzo di apposite chiavi private, per questo motivo rappresenta uno degli strumenti più efficaci con cui proteggere un sistema da attacchi basati sulla metodologia brute force.

Nel caso di un tentativo di violazione di una password tramite brute force, esso può consistere nel testare tutte le possibili stringhe utilizzate dall’utente associato a tale credenziale fino all’individuazione della sequenza corretta.

Su Linux SSH trova la sua espressione Open Source con OpenSSH, un set di soluzione libere e aperte che consentono di accedere a sessioni crittografate tramite Secure SHELL. Per sfruttare efficacemente questi strumenti è però necessario gestire al meglio le chiavi di cifratura, infatti una chiave mal gestita espone il sistema a gravi rischi di accesso da parte di utenti malintenzionati che devono essere contenuti.

Per far questo è possibile agire sul file di configurazione di OpenSSH, raggiungibile tramite il percorso /etc/ssh/ssh_config. Tale file presenta diverse direttive che possono essere abilitate o disabilitate con un commento (il segno # posizionato prima della direttiva):

  • PermitRootLogin no: consente di disabilitare l’accesso tramite SSH impersonando l’utente di root (o amministratore);
  • AllowUsers [nome utente]: limita l’accesso via SSH all’utente indicato;
  • IgnoreRhosts yes e HostbasedAuthentication no: impedisce a SSH di considerare fidato un host sulla base del solo indirizzo IP;
  • PermitEmptyPasswords no: impedisce l’autenticazione senza password;
  • X11Forwarding no: blocca il rinvio dei comandi dal server al client;
  • MaxAuthTries 5: consente un massimo di 5 tentativi di autenticazione;
  • ClientAliveCountMax 0: indica quante volte il server deve verificare se una sessione è attiva prima di rifiutarla;
  • PasswordAuthentication no: solo dopo aver generato le chiavi per entrare nelle macchine.

Un servizio come il Cloud di Aruba offre per esempio la possibilità di gestire le chiavi private per il riconoscimento da parte del sistema remoto direttamente in fase di generazione del server Cloud, garantendo una protezione praticamente nativa perché a monte del sistema.

Aggiornamento e manutenzione

Nessun sistema può essere ritenuto sufficientemente sicuro se il suo amministratore di sistema non provvede ad aggiornare le applicazioni e le librerie utilizzate con le ultime versioni contenenti patch correttive di bug e vulnerabilità.

Per questo motivo è sempre bene agire su due fronti:

  1. eliminare qualsiasi software o file che non sia strettamente necessario per il funzionamento del server Web utilizzato e dei servizi che esso è destinato ad erogare;
  2. installare tutti gli upgrade disponibili dopo aver consultato le release notes delle software house che li hanno prodotti.

Utilizzare una soluzione come il Cloud di Aruba può rappresentare un vantaggio da entrambi i punti di vista. Le configurazioni disponibili offrono ambienti server equipaggiati con tutte le applicazioni necessarie per gestire un’attività Web based, escludendo di base i software e i processi che sarebbero inutili per questo scopo.

Nel contempo viene messa a disposizione un’infrastruttura costantemente aggiornata pur lasciando a disposizione dell’utilizzatore un elevato livello di personalizzazione.

Ti consigliamo anche