it-swarm.com.de

Was sind die schwierigsten SSH-Daemon-Einstellungen in Bezug auf Verschlüsselung, Handshake oder andere kryptografische Einstellungen?

Ich arbeite intensiv mit SSH und SFTP, um genau zu sein, zwischen zwei Computern, deren SSH-Port an einer öffentlichen IP-Adresse geöffnet ist.

Was sind die härtesten SSH-Daemon-Einstellungen in Bezug auf Verschlüsselung, Handshake oder andere kryptografische Einstellungen im Jahr 2018?

Ich interessiere mich speziell für die kryptografischen Protokolle. Das Sichern von SSH mit einer guten Kennwortauswahl, einer guten Schlüsselverwaltung, einer Firewall usw. ist für das, was ich hier frage, nicht möglich.

Bisher habe ich in /etc/ssh/sshd_config Beide Maschinen gefunden und eingestellt:

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

Dies kann als Folgefrage von Härten der SSH-Sicherheit auf einem Debian 9-Server betrachtet werden, die ich vor einiger Zeit gepostet habe. Aber auf eine bestimmte Weise möchte ich die höchsten Einstellungen kennen.

28

Sie haben hier eine gute Diskussion: https://wiki.mozilla.org/Security/Guidelines/OpenSSH

Auf modernem OpenSSH empfehlen sie:

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]

Diese Seite enthält Erklärungen für jede Auswahl: https://stribika.github.io/2015/01/04/secure-secure-Shell.html

(Lassen Sie sich nicht durch das fest codierte Datum in der URL täuschen. Das Dokument wird von Zeit zu Zeit aktualisiert, wie aus dem "Änderungsprotokoll" unter https://github.com/stribika/stribika.github.io) hervorgeht /commits/master/_posts/2015-01-04-secure-secure-Shell.md )

Informationen zu Logjam finden Sie am Ende von https://weakdh.org/sysadmin.html :

KexAlgorithms [email protected]
29
Patrick Mevzek

Um ehrlich zu sein, ich verstehe diese Dinge nicht zu sehr, ich möchte nur eine starke Verschlüsselung und alles

Ich weiß nicht, was Sie unter "alles" verstehen, aber wenn Sie nur eine starke Verschlüsselung wünschen, sollten Sie sich nicht mit den Standardeinstellungen herumschlagen - es ist möglich, dass sie sicherer sind, aber es ist wahrscheinlicher, dass Sie die Sicherheit verletzen, als sie zu verbessern, wenn Sie dies tun Ich weiß nicht, was du tust.

Die Authentifizierungs- und Verhandlungs-Chiffren sind für die Gesamtsicherheit weitaus wichtiger als der symmetrische Algorithmus - und Sie haben uns nichts darüber erzählt.

Mehr wissen zu wollen ist eine gute Sache - aber der Meinungskonsens über die stärksten Chiffren im Februar 2018 (zumindest wenn Sie sich auf eine aktuelle Version gut gewarteter Software beziehen) ist im Vergleich zu einem Verständnis von sehr geringem Wert des Protokolls funktioniert und wie sich die Implementierung in Ihr Betriebssystem integriert.

26
symcbean

Die folgende Konfiguration kann eine höhere Sicherheitsstufe bieten, während ein gewisses Maß an Kompatibilität erhalten bleibt und die Komplexität der Konfiguration verringert wird.

WARNUNG: Die folgende Konfiguration ist nicht mit allen Clients kompatibel

# 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

# 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

Entfernen Sie aus Sicherheitsgründen Module unter 3072 Bit (Danke Mozilla)

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

Die Sicherheit kann durch weitere Optimierungen wie Firewall (iptables), fail2ban, Tor Hidden Service, Wechsel zu benutzerdefinierten Modulen und tcpwrapper weiter verbessert werden. Diese Themen sind in dieser Antwort jedoch nicht enthalten. Beachten Sie, dass die Konfiguration nicht abgeschlossen ist. Möglicherweise benötigen Sie andere wichtige Teile, damit der Dämon funktioniert. Denken Sie daran, die ursprüngliche Konfigurationsdatei zu sichern, damit Sie ein Rollback durchführen können, wenn etwas schief geht.

11
Hartman

Ich gab eine ausführliche Antwort auf diese Frage in meine Antwort auf Wie kann ich die SSH-Sicherheit (weiter) gewährleisten? und per ssh.com und im OpenSSH-Änderungsprotokoll = Es scheint, dass Updates enthalten

  • wenn Sie ecdsa gegenüber ed25519 bevorzugen, ist dies bei einigen SSH-Programmen eine Option
  • StrictHostKeyChecking bietet mehr Optionen.
  • DisableForwarding ist neu
  • verwenden Sie alle SHA2-Signaturen, keine SHA1-Signaturen
3