For the complete documentation index, see llms.txt. This page is also available as Markdown.

Best practice di sicurezza di Open SSH

Sebbene Open SSH sia diventato lo standard in materia di accesso remoto, l'utilizzo della sua installazione predefinita comporta comunque alcuni rischi per la sicurezza. Questa guida propone modi per aumentare notevolmente il livello di sicurezza di un'installazione Open SSH.

Utilizzare l'autenticazione con chiavi private/pubbliche

L'utilizzo di chiavi crittografate per l'autenticazione è utile perché elimina la necessità di inserire password. Nemmeno gli hacker più fantasiosi saranno in grado di interferire o intrufolarsi in una sessione, e non ci saranno più tentativi di violazione delle password.

  1. Generi una coppia di chiavi pubblica/privata utilizzando questo comando: $ ssh-keygen -t rsa. Questo crea due file nella directory (nascosta) ~/.ssh; la chiave privata si chiama id_rsa e quella pubblica id_rsa.pub.

  2. Scelga una password che verrà utilizzata per sbloccare la chiave pubblica a ogni connessione. Facoltativamente, è possibile aggiungere una crittografia protetta con una passphrase durante la creazione della chiave.

  3. Copi la chiave pubblica (id_rsa.pub) sul server:

    Scp –p id_rsa.pub remoteuser@remotehost:
    ```   <div data-gb-custom-block data-tag="hint" data-style='danger'>The `remoteuser` should never be root. Select the default non-root user as `remoteuser` instead.</div>
  4. Acceda con SSH e copi la chiave pubblica nella posizione corretta:

    ssh remoteuser@remotehost mkdir ~/.ssh chmod 700 ~/.ssh cat id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys mv id_rsa.pub ~/.ssh logout
  5. Quindi elimini la chiave pubblica dal server, altrimenti il client SSH non consente l'accesso al server:

    rm id_rsa.pub
  6. Imposti le autorizzazioni sui file del server (queste due sono necessarie se "StrictModes" è impostato su yes):

    $ chmod 700 ~/.ssh
    $ chmod 600 ~/.ssh/authorized_keys
  7. Una volta effettuato l'accesso utilizzando la passphrase della chiave, l'autenticazione tramite password può essere disattivata completamente. Per farlo, apra il file /etc/ssh/sshd_config e vi aggiunga le seguenti righe:

    # Disable password authentication forcing use of keys
    PasswordAuthentication no

Disattivare l'autenticazione con nome utente e password

Per eliminare completamente l'autenticazione basata su password e forzare l'utilizzo di chiavi o certificati SSH, aggiorni la configurazione SSH aggiungendo le seguenti righe nel file /etc/ssh/sshd_config:

Quindi riavvii il servizio SSHD inserendo /etc/init.d/sshd restart oppure service sshd restart. Una volta fatto ciò, il server dovrebbe rifiutare tutti gli accessi con nome utente/password e accettare solo l'autenticazione tramite chiave o certificato.

Configurare l'intervallo di timeout di inattività

È possibile impostare un intervallo di timeout di inattività per evitare di avere una sessione SSH incustodita. Per farlo, apra il file /etc/ssh/sshd_config e aggiunga la seguente riga:

L'intervallo di timeout di inattività è espresso in secondi (360 secondi = 6 minuti). Una volta trascorso l'intervallo, gli utenti inattivi vengono disconnessi automaticamente.

Disattivare le password vuote

Per una maggiore sicurezza, si consiglia di impedire gli accessi remoti da account con password vuote. Apra il file /etc/ssh/sshd_config e aggiorni la seguente riga:

Limitare l'accesso SSH a pochi utenti

Nei casi in cui non sia possibile evitare l'autenticazione con nome utente/password, si consiglia di limitare l'accesso SSH solo a determinati utenti che necessitano di accesso remoto, riducendo così al minimo l'impatto degli utenti con password deboli.

Per limitare l'accesso SSH, apra il file /etc/ssh/sshd_config e aggiunga una riga AllowUsers, seguita dall'elenco dei nomi utente separati da spazi:

Quindi riavvii il servizio SSHD inserendo /etc/init.d/sshd restart oppure service sshd restart.

Disattivare l'accesso root

Per disattivare gli accessi root, apra il file /etc/ssh/sshd_config mentre è connesso come root e modifichi la riga #PermitRootLogin in PermitRootLogin no. Si assicuri di rimuovere il simbolo #, altrimenti non funzionerà.

Quindi riavvii il servizio SSHD inserendo /etc/init.d/sshd restart oppure service sshd restart.

Disattivare i cifrari deboli

Apra il file /etc/ssh/sshd_config e aggiunga queste righe:

Quindi riavvii il servizio SSHD inserendo /etc/init.d/sshd restart oppure service sshd restart.

Utilizzare una porta non standard

La stragrande maggioranza degli hacker alla ricerca di server SSH aperti cercherà la porta 22, poiché per impostazione predefinita SSH è in ascolto delle connessioni in entrata su tale porta. Per eseguire SSH su una porta diversa, apra il file /etc/ssh/sshd_config e aggiunga le seguenti righe:

Quindi riavvii il servizio SSHD inserendo /etc/init.d/sshd restart oppure service sshd restart.

Si assicuri di modificare il port forwarding nel suo router e le eventuali regole del firewall necessarie. Si consiglia di informare i client di eventuali modifiche alle porte affinché sappiano a quale porta connettersi, dal momento che SSH non sarà più in ascolto delle connessioni sulla porta standard.

Limitare l'esposizione SSH con controlli di rete

Se la modifica della porta SSH non è praticabile, la distribuzione di un jump server offre un solido punto di controllo Zero-Trust tra i client e i sistemi interni. Centralizza l'autenticazione, applica criteri di accesso uniformi e impedisce l'esposizione diretta delle risorse critiche. Consulti Remote Desktop Manager Jump (feature) per i passaggi di configurazione.

Abilitare l'autenticazione a più fattori

L'autenticazione a più fattori è una delle principali protezioni da aggiungere ai server SSH per proteggerli da accessi non autorizzati, poiché ogni accesso utente deve essere collegato a un utente MFA configurato. Anche se un hacker riuscisse a impossessarsi di una password o a violare il server SSH, verrebbe comunque bloccato dall'MFA.

Ultimo aggiornamento

È stato utile?