THREATHUNTING.IT / Hardening Guide

Hardening di SSH su Linux

Configurare in modo sicuro il server SSH sul VPS Linux, riducendo drasticamente la superficie d’attacco e bloccando i tentativi di accesso non autorizzati. Non servono strumenti complessi, solo attenzione ai file di configurazione.

LivelloIntermediate Hardening di SSH su Linux

Obiettivo: configurare in modo sicuro il server SSH su una nuova VPS Linux, riducendo drasticamente la superficie d’attacco e bloccando i tentativi di accesso non autorizzati. Non servono strumenti complessi, solo attenzione ai file di configurazione.

  • Livello: Intermediate

  • Tempo di lettura: 7 min read

  • Categoria: Hardening / Linux

  • Tag: SSH, Linux, Hardening, Sysadmin, Security

Il problema: la porta 22 è sempre sotto attacco

Non appena pubblichi una Virtual Private Server (VPS) su internet con un indirizzo IP pubblico, i bot automatizzati di tutto il mondo iniziano a scansionarla. Nel giro di pochi minuti, la porta predefinita di SSH (22) comincerà a ricevere tentativi di accesso continui tramite attacchi di forza bruta e dizionario (brute-force attacks), alla ricerca di combinazioni comuni come root / root o admin / password123.

Lasciare la configurazione di default di SSH espone il server a rischi enormi. L'hardening (la messa in sicurezza) di SSH è il primo passo fondamentale per blindare qualsiasi infrastruttura Linux.

1. Creare un utente amministrativo e disabilitare il login per root

Il comportamento predefinito di molte distribuzioni permette l'accesso diretto come utente root tramite password. Questo è il bersaglio principale degli attaccanti.

La regola d'oro è: non lavorare mai come root nella vita di tutti i giorni.

  1. Accedi alla VPS come root (la prima volta).

  2. Crea un nuovo utente con privilegi di amministrazione (es. mario):

    Bash

    adduser mario
    
  3. Aggiungi l'utente al gruppo sudo per consentirgli di eseguire comandi amministrativi:

    Bash

    usermod -aG sudo mario  # Su Debian/Ubuntu
    # oppure usermod -aG wheel mario su CentOS/RHEL/AlmaLinux
    
  4. Testa il cambio utente prima di chiudere la sessione corrente.

2. Passare all'autenticazione tramite chiavi SSH (Public Key Authentication)

key based authorization


key-based authentication


Le password, anche se complesse, possono essere intercettate, indovinate o brute-forzate. Le chiavi crittografiche (coppia chiave pubblica/privata) offrono un livello di sicurezza nettamente superiore.


  1. Sul tuo computer locale (non sul server), genera una coppia di chiavi (se non le possiedi già):

    Bash

    ssh-keygen -t ed25519 -C "tua_email@example.com"
    
  2. Copia la chiave pubblica sul server VPS:

    Bash

    ssh-copy-id mario@INDIRIZZO_IP_VPS
    
  3. Una volta completato, potrai accedere al server senza digitare la password, ma inserendo la passphrase della tua chiave privata locale.

3. Modificare la configurazione del demone SSH

Tutte le direttive di sicurezza si gestiscono modificando il file di configurazione principale di SSH sul server: /etc/ssh/sshd_config (o nei file inclusi in /etc/ssh/sshd_config.d/).

Prima di effettuare modifiche, fai sempre una copia di backup:

Bash

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Apri il file con un editor di testo (es. nano):

Bash

sudo nano /etc/ssh/sshd_config

Modifica o decommenta (rimuovendo il # iniziale) le seguenti direttive chiave:

  • Cambia la porta di ascolto (Opzionale ma utile per ridurre il rumore dei log):

    Sebbene non sia una misura di sicurezza crittografica, spostare SSH dalla porta standard 22 a un'altra porta (es. 2222) riduce del 99% il traffico spazzatura dei bot automatici nei log di sistema.

    Plaintext

    Port 2222
    
  • Disabilita il login diretto di root:

    Impedisce a chiunque di loggarsi direttamente come root, costringendo prima ad entrare con un utente standard e poi a scalare i privilegi.

    Plaintext

    PermitRootLogin no
    
  • Disabilita l'autenticazione tramite password:

    Forza l'uso esclusivo delle chiavi crittografiche, bloccando alla radice gli attacchi di forza bruta basati su password.

    Plaintext

    PasswordAuthentication no
    PubkeyAuthentication yes
    
  • Limita gli utenti autorizzati (Best Practice):

    Permetti l'accesso SSH solo agli utenti che ne hanno realmente bisogno.

    Plaintext

    AllowUsers mario
    

Salva il file e chiudi l'editor.

4. Verificare la sintassi e riavviare il servizio

Prima di chiudere la sessione SSH attiva (misura di sicurezza critica per evitare di rimanere chiuso fuori dal server), verifica che la configurazione non contenga errori di sintassi:

Bash

sudo sshd -t

Se il comando non restituisce errori, puoi riavviare il servizio SSH:

Bash

sudo systemctl restart ssh
# oppure sudo systemctl restart sshd su distribuzioni RedHat-based

Attenzione: Apri un nuovo terminale sul tuo computer e prova a connetterti (ssh -p 2222 mario@IP_SERVER) per verificare che tutto funzioni correttamente prima di chiudere la finestra attuale.

5. Strumenti extra di difesa: Fail2ban

Anche se hai disabilitato le password e le chiavi pubbliche sono sicure, i bot continueranno a bombardare la porta SSH generando traffico e log superflui. Puoi installare Fail2ban, un software che monitora i log di autenticazione e banna temporaneamente (tramite firewall) gli IP che collezionano troppi tentativi di accesso falliti.

  1. Installazione (su Ubuntu/Debian):

    Bash

    sudo apt update && sudo apt install fail2ban -y
    
  2. Crea una copia del file di configurazione locale:

    Bash

    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    
  3. Avvia e abilita il servizio:

    Bash

    sudo systemctl enable --now fail2ban
    

Riepilogo delle configurazioni critiche in sshd_config

DirettivaValore ConsigliatoSpiegazione
PermitRootLoginnoVieta l'accesso remoto diretto all'utente root.
PasswordAuthenticationnoBlocca l'accesso via password, obbligando l'uso delle chiavi SSH.
PubkeyAuthenticationyesAbilita l'autenticazione tramite chiave pubblica.
PortPersonalizzata (es. 2222)Riduce i tentativi di accesso automatici dei bot sulla porta standard.

Fonti e riferimenti utili


VALUTAZIONE DEI LETTORI

Questo articolo ti è stato utile?

Punteggio 0 · 0 positivi, 0 negativi

Vedi gli articoli più apprezzati →

AUTORE

Da piu' di 30 anni sono appassionato di computers e tecnologia. il mio primo programma lo sviluppai in Basic nel 1989, non era un gran che :).. ma quella voglia di scrivere codici non mi ha piu' lasciato …

REVISIONE TECNICA

Redazione ThreatHunting.it

Revisionato il .

Come lavoriamo →

COMMUNITY

Commenti 0

Non ci sono ancora commenti. Puoi iniziare tu la conversazione.

Scrivi un commento +
Non sarà pubblicata.
I commenti vengono pubblicati dopo la moderazione.

PRIVACY / LE TUE SCELTE

Cookie e statistiche

Usiamo cookie necessari per accesso, sicurezza e memorizzazione delle preferenze. Solo con il tuo consenso raccogliamo statistiche sulle pagine visitate, paese, dispositivo, browser e provenienza, con un identificatore pseudonimo giornaliero. Il consenso abilita anche Google Analytics 4, descritto nell’informativa. Nessuna pubblicità o profilazione commerciale.

Puoi rifiutare le statistiche e continuare a usare il sito. Leggi l’informativa privacy e cookie e modifica la scelta in qualsiasi momento.