Hardening SSH in Debian
Il server OpenSSH, per impostazione predefinita su Debian Linux, mette a disposizione protocolli di cifratura/cifrari abbastanza deboli.
Ecco in questo articolo un esempio di come rafforzare la sicurezza specificando cifrari più robusti.
Per Debian Jessie o versioni successive (OpenSSH 6.7+), modifica il file /etc/ssh/sshd_config.
In questo file, commenta le chiavi host ssh vulnerabili, lasciando abilitato solo quelle più sicure.
Specifica anche gli algoritmi di scambio di chiavi (kex o KexAlgorithms), i codici di integrità del messaggio supportati (mac) e i tipi di chiavi (key) o i crifrari (Ciphers) più robusti.
Il comando ssh -Q kex mostra gli algoritmi disponibili sul nostro sistema.

Il comando ssh -Q key mostra i tipi di chiave disponibili.

Il comando ssh -Q cipher mostra i cifrari.

Nota: se è necessario collegarsi da/verso client ssh meno recenti, lasciare (facoltativamente) abilitato anche ssh_host_rsa_key, che è uno dei cifrari più vecchi disponibili quasi ovunque.
Protocol 2
#HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
KexAlgorithms curve25519-sha256@libssh.org
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com
Su Debian, è possibile disabilitare facoltativamente anche la visualizzazione del banner Debian, se lo si desidera (sempre in /etc/ssh/sshd_config) :
DebianBanner no
Riavvia ssh
sudo service ssh restart
Fatto!
(Opzionale)
Controlla la sicurezza del tuo server ssh con questo script: https://github.com/arthepsy/ssh-audit
Ecco il risultato dopo aver applicato i rimedi:

Invece questo host usa cifrari non sicuri:

Questo il risultato dopo aver applicato le modifiche al file sshd_config.
