Quali sono le impostazioni del daemon SSH più difficili in termini di crittografia, handshake o altre impostazioni di crittografia? [duplicare]

27

Lavoro intensamente con SSH e SFTP, per essere specifici tra due macchine, entrambe con la loro porta SSH aperta su un indirizzo IP pubblico.

Quali sono le impostazioni del daemon SSH più difficili in termini di crittografia, handshake o altre impostazioni di crittografia nel 2018?

Sono specificamente interessato ai protocolli crittografici. Proteggere SSH con una buona selezione di password, una buona gestione delle chiavi, firewalling, ecc. Sono fuori portata per quello che sto chiedendo qui.

Finora, ho trovato e impostato su entrambe le macchine in /etc/ssh/sshd_config :

AuthenticationMethods publickey
Ciphers aes256-cbc
MACs [email protected]
FingerprintHash sha512
#KexAlgorithms

Questa può essere considerata una domanda successiva di Hardening Sicurezza SSH su un server Debian 9 che ho pubblicato prima qualche tempo fa. Ma in un modo specifico, voglio conoscere le impostazioni più alte.

    
posta Vlastimil 04.02.2018 - 21:28
fonte

4 risposte

31

Hai una buona discussione qui: link

Su Modern OpenSSH raccomandano:

KexAlgorithms [email protected],ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256

Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr

MACs [email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]

Questa pagina fornisce spiegazioni per ciascuna scelta: link

(non farti ingannare dalla data hardcoded nell'URL, il documento viene aggiornato di volta in volta come si può vedere dal suo "changelog" a link )

Contro Logjam, vedi la fine del link :

KexAlgorithms [email protected]
    
risposta data 04.02.2018 - 22:21
fonte
26

To be honest, I don't understand these things too much, I just want strong encryption and everything

Non so cosa intendi con "tutto", ma se vuoi solo una crittografia strong, allora non fare confusione con le impostazioni predefinite - è possibile che siano più sicure ma hai maggiori probabilità di infrangere la sicurezza piuttosto che migliorare se non sai cosa stai facendo.

I codici di autenticazione e negoziazione sono molto più importanti dell'algoritmo simmetrico per la sicurezza generale e non ci hai detto nulla su questi.

Voler saperne di più è una buona cosa - ma il consenso dell'opinione sui cifrari più forti di febbraio 2018 (almeno quando ti riferisci ad una versione aggiornata di un software ben mantenuto) è di pochissimo valore rispetto a con una comprensione del protocollo funziona e come l'implementazione si integra con il tuo sistema operativo.

    
risposta data 04.02.2018 - 23:14
fonte
9

La seguente configurazione può fornire un livello di sicurezza più elevato pur mantenendo un certo grado di compatibilità e ridurre la complessità della configurazione.

ATTENZIONE: la seguente configurazione non è compatibile con tutti i client

# Change the port number avoid automated attack
Port 2222

# Limit to SSH2 only (the default value)
Protocol 2

# Use RSA and Ed25519 host key only
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

# Turn on Privilege Separation (should be on by default)
UsePrivilegeSeparation sandbox

# No root login, obvious
PermitRootLogin no

# Log the finger print of public key used to login, provide audit trails. Might take up more storage.
LogLevel VERBOSE

# 2 Factor Authentication. User must present a valid public key first, then enter the correct password to login
AuthenticationMethods publickey,password

# How fast you can type your password?
LoginGraceTime 20

# Key Exchange
KexAlgorithms [email protected],diffie-hellman-group-exchange-sha256

# Ciphers
Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes128-ctr

# MACs
MACs [email protected],[email protected],[email protected],

# Only allow specific group member login via SSH
AllowGroups ssh-user

# Renew encryption key every 30 minutes or 1 GB of transferred data (overkill & generate overhead, use with caution, especially on slow network)
#RekeyLimit 1G 1800

Rimuovi moduli sotto 3072 bit per sicurezza (Grazie Mozilla)

awk '$5 >= 3071' /etc/ssh/moduli > /etc/ssh/moduli.tmp && mv /etc/ssh/moduli.tmp /etc/ssh/moduli

La sicurezza può ulteriormente migliorare con ulteriori modifiche come firewall (iptables), fail2ban, servizio nascosto di Tor, passaggio a moduli personalizzati e tcpwrapper, ma questi argomenti sono fuori ambito in questa risposta. Si noti che la configurazione non è completata, potrebbero essere necessarie altre parti essenziali affinché il daemon funzioni. Ricordati di eseguire il backup del file di configurazione originale in modo da poter eseguire il rollback se qualcosa va storto.

    
risposta data 05.02.2018 - 01:31
fonte
3

Ho dato una risposta dettagliata a questo in la mia risposta a Come (ulteriore) garantire la sicurezza SSH? , e per ssh.com e OpenSSH changelog sembra che gli aggiornamenti includano

  • se preferisci ecdsa a ed25519, questa è un'opzione su alcuni software SSH
  • StrictHostKeyChecking ha più opzioni.
  • DisableForwarding è nuovo
  • usa tutte le firme SHA2, nessuna firma SHA1
risposta data 04.02.2018 - 23:43
fonte

Leggi altre domande sui tag