Regole fondamentali per una sicurezza ottimale del VPS

In qualità di proprietario di un server rivolto al pubblico, l’onere della sicurezza ricade sulle tue spalle. La maggior parte dei nostri server non sono gestiti, il che significa che la protezione del server è tua responsabilità . Nella seguente guida condivideremo suggerimenti e approfondimenti su come iniziare a proteggere il tuo server oggi stesso.

Niente potrebbe essere più lontano dalla verità. Oggi i criminali informatici preferiscono perseguire i risultati più bassi. Eseguono costantemente la ricerca di server con una sicurezza potenzialmente debole. Una volta identificato un tale obiettivo, di solito possono eseguire un attacco di forza bruta per infiltrarsi al suo interno.

Cos’è la sicurezza del server?

La sicurezza del server include i processi e gli strumenti utilizzati per proteggere un server da accessi non autorizzati. I server sono gli obiettivi principali degli aggressori perché si trovano al centro di una rete organizzativa. Spesso contengono anche dati sensibili, come PII, registri dell’applicazione o codice sorgente.

Se hai ospitato un sito Web, è in esecuzione su un server. Se hai acquistato dello spazio di archiviazione da un fornitore di servizi cloud, è in esecuzione su un server. Se stai per costruire l’infrastruttura della tua azienda online, probabilmente avrai bisogno di molti server e, successivamente, di un’adeguata sicurezza del server cloud

Il punto è che la maggior parte dei servizi forniti su Internet avviene tramite server, il che rende fondamentale la loro protezione. Ciò è particolarmente vero per i server Linux, perché le persone spesso presumono che siano intrinsecamente sicuri.

Anche se è vero che Linux offre molti più modi per proteggere i server rispetto ai suoi omologhi, la sicurezza non è integrata. Gli amministratori devono eseguire esplicitamente misure di sicurezza per proteggere i server Linux. L’assenza di sicurezza spesso indica a un utente malintenzionato che l’amministratore del server è probabilmente inesperto e quindi un facile bersaglio.

Perché qualcuno dovrebbe voler hackerare il mio server?

Sapevi che ogni giorno nascono miliardi di richieste di attacchi informatici? Dai un’occhiata a questa mappa degli attacchi di minacce in tempo reale. Ciò che devi capire è che gli hacker non si siedono sui loro computer con il loro caffè mattutino per decidere chi prendere di mira per la giornata, altrimenti non avrebbero molto successo.

Invece, creano milioni di bot che scansionano costantemente e automaticamente tutti gli indirizzi IP pubblici su Internet, ogni secondo di ogni giorno. In effetti, qualsiasi nuovo dispositivo che si avvia con un IP pubblico su Internet viene scansionato per individuare i punti deboli entro 30-60 SECONDI dalla sua attivazione. Sì, non era un errore di battitura, è un fatto spaventoso.

Ciò significa che prima ancora di accedere al tuo server per la prima volta, ci sono già stati migliaia di tentativi di effrazione. Spesso vediamo più di 10.000 tentativi di accesso falliti AL GIORNO su alcuni dei nostri computer client prima che vengano bloccati.

I criminali informatici prendono di mira tutti i tipi di server. Server aziendali, server di hosting condiviso, istanze AWS e persino il tuo server personale senza dati significativi su di esso. Inviano richieste in modo casuale su Internet, sperando in qualsiasi forma di risposta.

Di solito, se un server risponde, indica una sicurezza debole. Questo è il segnale dell’aggressore per lanciare un attacco di forza bruta, ovvero fare migliaia di tentativi per indovinare la combinazione nome utente-password del server. Una volta ottenuto l’accesso, utilizzano il server come punto di sosta per lanciare le loro campagne.

Potrebbero trattarsi di inondazioni di posta indesiderata/spam o di attacchi Denial of Service (DoS). Esecuzione di botnet o risponditori di malware o configurazione di siti di phishing. Potrebbero persino impostare applicazioni di mining bitcoin che vengono eseguite in background e consumano tutte le risorse del tuo server.

Pertanto, non solo tutti i dati sensibili verranno esposti per sempre, ma il tuo server diventerà anche un punto di raccolta anonimo per attività criminali, che sarebbe praticamente impossibile risalire agli aggressori originali.

Perché dovresti prendere sul serio la sicurezza informatica

Stai prendendo sul serio la sicurezza informatica? Diamo un’occhiata ad alcuni altri motivi per cui dovrebbe sempre essere la tua massima priorità:

  • Prevenire perdite finanziarie che potrebbero derivare da furto di proprietà intellettuale, interruzione del servizio ed eventuali multe che potresti dover pagare agli organismi di regolamentazione.
  • Previeni la perdita di reputazione che la tua azienda subirà in caso di violazione. I tuoi clienti saranno riluttanti a riporre la loro fiducia in te.
  • Prevenire i tempi di inattività, che è un risultato inevitabile dopo un attacco informatico riuscito.
  • Prevenire l’esposizione dei dati sensibili.
  • Evita che i tuoi siti web subiscano rallentamenti. Ciò può accadere se gli hacker prendono il controllo della CPU e della RAM per eseguire applicazioni dannose, che spesso richiedono molte risorse.
  • Dimostrati affidabile implementando misure di sicurezza e promuovendo la tua strategia di sicurezza avanzata.

Come proteggere un server Linux?

Uno dei vantaggi dell’utilizzo di Linux è che offre tantissime funzionalità facili da usare per proteggere un server. Diamo un’occhiata a come si fa a proteggere un server:

Utilizza le chiavi SSH

SSH, o secure shell, è un protocollo utilizzato per autenticare e comunicare con i server. Esistono diversi modi per utilizzare SSH per accedere a un server. Il metodo più semplice è utilizzare l’autenticazione basata su password, ma non è considerato sicuro.

Un’alternativa molto più sicura è utilizzare coppie di chiavi SSH. Una coppia di chiavi SSH è costituita da chiavi crittograficamente sicure, che garantiscono che solo i client autorizzati, con le chiavi giuste, possano accedere al server. Ogni coppia è composta da una chiave pubblica, configurata sul server, e da una chiave privata, archiviata segretamente dal client.

Per creare una coppia SSH, attenersi alla seguente procedura:

  1. Accedi al tuo server Linux e digita ssh-keygen.
  2. Premere Invio quando viene richiesto di specificare la directory.
  3. Se desideri proteggere la chiave con una passphrase, specificala nel passaggio successivo. Altrimenti premi Invio.

Questo è tutto! Questo dovrebbe creare file di chiave pubblica e privata nella directory home dell’utente ( /home/~/.ssh). Per root la cartella predefinita è /root/.ssh/id_rsa.

I file verranno in genere chiamati id_rsa.pubid_rsa. Il file .pub è la chiave pubblica. Questo può essere copiato ~/.ssh/authorized_keys per consentire a qualsiasi possessore di entrambe le chiavi di accedere al server, SENZA password. Il vantaggio è che rimuovendo la chiave si elimina anche l’accesso.

Disabilita l’autenticazione tramite password

Ti consigliamo di disabilitare l’autenticazione della password sul tuo server e di utilizzare sempre le chiavi SSH per accedere. Ecco come farlo:

  1. Apri il file /etc/ssh/sshd_config nel tuo editor preferito.
  2. Trova la riga nel file #PasswordAuthentication no, quindi rimuovi #dall’inizio e cambia yes in no
  3. Salva il file e quindi, a seconda della tua versione Linux, esegui il comando appropriato per riavviare il servizio SSH:
    • Per CentOS 7 e 8: sudo systemctl restart sshd
    • Per Debian 11: sudo systemctl restart ssh
    • Per Ubuntu 20: sudo systemctl restart ssh

Configura Hosts.allow e Hosts.deny

I file /etc/hosts.allow/etc/hosts.deny danno agli utenti la possibilità di definire regole che consentono l’accesso solo ai client attendibili. Una volta creati i file e aggiunti delle voci, il demone di rete li consulterà ogni volta che riceve una nuova richiesta.

Come indica il nome, i client consentiti devono essere definiti nel /etc/hosts.allow file e, se sono presenti client nella lista nera, devono essere definiti nel file /etc/hosts.deny. Come pratica standard, dovresti rifiutare tutti gli accessi per impostazione predefinita e consentire solo host conosciuti e approvati. Ecco come configurarlo:

  1. Crea e apri il file /etc/hosts.deny e inserisci al suo interno la seguente riga:
    ALL: ALL
  2. Crea e apri /etc/hosts.allow e specifica un elenco di host conosciuti. Per esempio:
    ALL: LOCAL @test_netgroup

La regola di cui sopra consentirà l’accesso solo da TUTTI gli host all’interno del dominio locale e da TUTTI i membri del test_netgroupnetgroup.

Assicurarsi che siano aperte solo le porte necessarie

Una volta installato e funzionante tutto il software, assicurati di aver ricercato su quali porte viene eseguita ciascuna applicazione. Esegui il comando netstat -punta per vedere quali porte e applicazioni sono in esecuzione.

Assicurati che ogni porta aperta sia effettivamente necessaria al sistema o all’applicazione.
Ignora qualsiasi porta in esecuzione sull’indirizzo IP 127.0.0.1, poiché si tratta di un IP interno. Concentrati sulle porte che funzionano su IP 0.0.0.0 (Qualsiasi IP) o sull’IP PUBBLICO del tuo server. Chiudi tutte le applicazioni che non sono assolutamente necessarie.

Installa fail2ban e assicurati che sia attivo per SSH

Il modulo SSH Fail2Ban controlla i tuoi file di registro per tentativi di accesso non riusciti (per SSH). Dopo un numero predefinito di tentativi di accesso falliti, blocca l’indirizzo IP del client che tenta di accedere.

Tuttavia, dovresti installarlo solo se NON hai cPanel installato. cPanel utilizza CSF/LFD (Login Failure Daemon) per fare essenzialmente la stessa cosa di fail2ban. In Ubuntu, fail2ban è solitamente attivato per impostazione predefinita per SSH. Su CentOS, di solito devi attivarlo.

Tuttavia, se per qualche motivo fail2ban non è installato/abilitato sul tuo sistema, segui questi passaggi per farlo:

On CentOS 7/8 Rhel

sudo yum install epel-release
sudo yum install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

On Ubuntu 20 and Debian 11:

sudo apt install fail2ban

Assicurati che le directory pubbliche dispongano delle autorizzazioni minime

Le autorizzazioni vengono spesso fraintese e sopravvalutate come misura di sicurezza. L’impostazione delle autorizzazioni corrette può tenere sotto controllo un’applicazione non autorizzata o ridurre al minimo il danno causato da un account compromesso.

Imposta UserGroupautorizzazioni su file E directory, senza autorizzazioni globali. Se non è possibile evitare le autorizzazioni globali, utilizzare solo file di sola lettura.

Limita chi può usare sudo

sudo offre a un utente la possibilità di eseguire comandi su altri account, inclusi root. Assicurati che solo gli account autorizzati abbiano il permesso di utilizzare sudo. Per fare ciò, dovrai creare un sudousersgruppo e aggiungervi tutti gli utenti richiesti:

  1. Crea un nuovo gruppo:
    sudo groupadd sudousers
  2. Aggiungi tutti gli utenti rilevanti al gruppo: esegui questa operazione per tutti gli utenti che richiedono diritti.
    sudo usermod -a -G sudousers myuser1
    sudo usermod -a -G sudousers myuser2

    sudo
  3. Prima di apportare modifiche al sudoersfile, creiamo un backup:
    sudo cp --archive /etc/sudoers /etc/sudoers-bak
  4. Apri per modificare il sudoersfile:sudo visudo
  5. Aggiungi la seguente riga (se non è già presente):
    %sudousers ALL=(ALL:ALL) ALL

Installa automaticamente gli aggiornamenti di sicurezza

È fondamentale installare gli aggiornamenti critici per la sicurezza sul tuo server non appena vengono rilasciati. La maggior parte degli aggiornamenti di sicurezza sono patch per vulnerabilità e bug noti che possono essere sfruttati da malintenzionati.

Idealmente, dovresti essere in grado di installare automaticamente gli aggiornamenti di sicurezza dai fornitori ufficiali. Potrebbe non essere prudente installare TUTTI gli aggiornamenti, poiché alcuni potrebbero danneggiare il sistema operativo. Tuttavia, gli aggiornamenti critici per la sicurezza non dovrebbero essere evitati o ritardati ad ogni costo.

Debian e Ubuntu dispongono entrambi di funzionalità integrate che supportano l’installazione automatica degli aggiornamenti di sicurezza. Ti consigliamo di abilitarlo. Per CentOS è possibile utilizzare il pacchetto DNF Automatic per impostare gli aggiornamenti automatici.

Strumenti di sicurezza Linux che dovresti conoscere

Concludiamo questa sezione esaminando alcuni strumenti di sicurezza per Linux, in diverse categorie:

Antivirus/Antimalware

Il nostro software antivirus/antimalware preferito per Linux è ClamAV di Sourcefire. Si tratta di un pacchetto open source gratuito progettato per rilevare trojan, virus, malware e altre minacce dannose. Nel software sono inclusi un demone di scansione multi-thread, utilità della riga di comando per la scansione di file su richiesta e uno strumento intelligente per gli aggiornamenti automatici delle firme.

Software di rilevamento delle intrusioni (IDS)

Snort è uno strumento gratuito e open source che aiuta nel rilevamento di intrusi ed evidenzia anche attacchi dannosi contro il sistema. In effetti, Snort è semplicemente un filtro di pacchetti. Ma il vero valore di questo strumento risiede nel rilevamento degli attacchi basato sulla firma, analizzando i pacchetti che Wireshark o tcpdump non sono in grado di analizzare.

I Canarytoken forniscono un sistema di allarme precoce, imitando dispositivi, file o URL che attirano gli aggressori che curiosano nel tuo sistema e, quando interagisci con te, vengono automaticamente avvisati.

Test di vulnerabilità del server web

NIKTO è uno scanner di server Web open source che verifica i server Web per file CGI potenzialmente pericolosi. Esegue anche analisi specifiche della versione, come l’identificazione di framework obsoleti. È necessario notare che ogni test o rapporto di controllo non indica necessariamente un problema di sicurezza, quindi tieni gli occhi aperti per i falsi positivi.

Integrità e sicurezza del file system

Chkrootkit è uno strumento gratuito progettato per verificare localmente i segni di un’infezione da rootkit sul tuo computer Linux. Il software gratuito è una scelta molto popolare, ma Rootkit Hunter (rkhunter) è un’altra alternativa che la pensa allo stesso modo.

Entrambi questi programmi controllano il tuo disco per eventuali malware noti e configurazioni non sicure. Possono anche essere eseguiti facoltativamente in base a una pianificazione per avvisare l’utente di eventuali modifiche a directory o file specifici. Un altro buon programma per controllare le modifiche dei file è Tripwire.

Firewall e sicurezza

Ultimo ma non meno importante, un buon firewall può fare molto. Se non vuoi imparare iptables, il firewall Linux standard di fatto, puoi manipolarlo attraverso vari front-end semplificati. Questi includono firewalld ( CentOs 7 e versioni successive), CSF e UFW (più comuni nelle varianti Debian come Ubuntu).

Ci auguriamo che mostrandoti come proteggere un server Linux, abbiamo reso Internet un po’ più sicuro. Questi suggerimenti di base sulla sicurezza ti aiutano a gettare basi sicure, ma è solo l’inizio. La sicurezza del server non è una configurazione “imposta e dimentica”, richiede lavoro e aggiornamento costanti.

Autore

Classe Novanta3, Fondatore di TrgtKLS. Appassionato in Sec IT & Tech. Expert per l'amministrazione web server e supporto in Back-&, ottimizzazione e manutenzione di esso. • Metà Free e Metà Freelancer • mail@trgtkls.org

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

close