SSH/Kryptografie/Konfiguration: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(17 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
  # Package generated configuration file
== Disabling Weak MAC Algorithms on a Secure Shell Server ==
# See the sshd_config(5) manpage for details
; SSH-Server soll nur starke MAC-Algorithmen verwenden
# What ports, IPs and protocols we listen for
Sie können die verfügbaren MAC-Algorithmen mit dem Befehl ermitteln
Port 22
  sudo sshd -T | grep mac
# Use these options to restrict which interfaces/protocols sshd will bind to
 
#ListenAddress ::
; MD5- und 96-Bit-MAC-Algorithmen werden als schwache Algorithmen betrachtet
#ListenAddress 0.0.0.0
* Sie müssen entfernen weden
Protocol 2
 
# HostKeys for protocol version 2
=== Konfiguration ===
HostKey /etc/ssh/ssh_host_rsa_key
; Schwachen MAC-Algorithmen entfernen
#HostKey /etc/ssh/ssh_host_dsa_key
# Melden Sie sich mit Root-Zugangsdaten an
#HostKey /etc/ssh/ssh_host_ecdsa_key
# Öffnen Sie die Datei /etc/ssh/sshd_config und suchen Sie nach "''macs''"
HostKey /etc/ssh/ssh_host_ed25519_key
# Entfernen Sie die schwachen MAC-Algorithmen, die aufgeführt sind
#Privilege Separation is turned on for security
#:Der Eintrag wird ähnlich wie die folgende Zeile aussehen und kann zusätzliche starke MAC-Algorithmen enthalten:
UsePrivilegeSeparation yes
#: <code> macs hmac-sha1,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha1-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com </code>
# Lifetime and size of ephemeral version 1 server key
# Speichern Sie die Datei
KeyRegenerationInterval 3600
# Starten Sie den sshd-Dienst neu, indem Sie den Befehl service sshd restart verwenden
ServerKeyBits 1024
# Starten Sie eine neue SSH-Sitzung, bevor Sie die bestehende Sitzung schließen
# Logging
#: Dadurch wird die Verbindung verifiziert und Sie können sich mit dem Root-Konto am Server anmelden
SyslogFacility AUTH
# Wenn die Verbindung zum Server fehlschlägt, machen Sie die Änderungen an der Datei sshd_config rückgängig
LogLevel INFO
 
# Authentication:
<noinclude>
LoginGraceTime 120
 
PermitRootLogin no # or 'without-password' to allow SSH key based login
== Anhang ==
StrictModes yes
=== Siehe auch ===
RSAAuthentication yes
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
PubkeyAuthentication yes
==== Links ====
#AuthorizedKeysFile %h/.ssh/authorized_keys
===== Weblinks =====
# Don't read the user's ~/.rhosts and ~/.shosts files
[[Kategorie:SSH]]
IgnoreRhosts yes
</noinclude>
# For this to work you will also need host keys in /etc/ssh_known_hosts
 
RhostsRSAAuthentication no
 
# similar for protocol version 2
= TMP =
HostbasedAuthentication no
; /etc/ssh/sshd_config
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
<syntaxhighlight lang="bash" line>
#IgnoreUserKnownHosts yes
# Ports to listen for
# To enable empty passwords, change to yes (NOT RECOMMENDED)
Port 22
PermitEmptyPasswords no
 
# Change to yes to enable challenge-response passwords (beware issues with
# Restrict interfaces/protocols
# some PAM modules and threads)
#ListenAddress ::
ChallengeResponseAuthentication no
#ListenAddress 0.0.0.0
# Change to no to disable tunnelled clear text passwords
Protocol 2
#PasswordAuthentication yes
 
# Kerberos options
# HostKeys for protocol version 2
#KerberosAuthentication no
HostKey /etc/ssh/ssh_host_rsa_key
#KerberosGetAFSToken no
#HostKey /etc/ssh/ssh_host_dsa_key
#KerberosOrLocalPasswd yes
#HostKey /etc/ssh/ssh_host_ecdsa_key
#KerberosTicketCleanup yes
HostKey /etc/ssh/ssh_host_ed25519_key
# GSSAPI options
 
#GSSAPIAuthentication no
# Privilege Separation is turned on for security
#GSSAPICleanupCredentials yes
UsePrivilegeSeparation yes
# Cipher selection
 
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr
# Lifetime and size of ephemeral version 1 server key
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
KeyRegenerationInterval 3600
KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1
ServerKeyBits 1024
X11Forwarding yes
 
X11DisplayOffset 10
# Logging
PrintMotd no
SyslogFacility AUTH
PrintLastLog yes
LogLevel INFO
TCPKeepAlive yes
 
#UseLogin no
# Authentication:
#MaxStartups 10:30:60
LoginGraceTime 120
#Banner /etc/issue.net
PermitRootLogin no # or 'without-password' to allow SSH key based login
# Allow client to pass locale environment variables
StrictModes yes
AcceptEnv LANG LC_*
RSAAuthentication yes
Subsystem sftp /usr/lib/openssh/sftp-server
PubkeyAuthentication yes
# Set this to 'yes' to enable PAM authentication, account processing,
#AuthorizedKeysFile %h/.ssh/authorized_keys
# and session processing. If this is enabled, PAM authentication will
# Don't read the user's ~/.rhosts and ~/.shosts files
# be allowed through the ChallengeResponseAuthentication and
IgnoreRhosts yes
# PasswordAuthentication. Depending on your PAM configuration,
 
# PAM authentication via ChallengeResponseAuthentication may bypass
# For this to work you will also need host keys in /etc/ssh_known_hosts
# the setting of "PermitRootLogin without-password".
RhostsRSAAuthentication no
# If you just want the PAM account and session checks to run without
# similar for protocol version 2
# PAM authentication, then enable this but set PasswordAuthentication
HostbasedAuthentication no
# and ChallengeResponseAuthentication to 'no'.
 
UsePAM yes
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
 
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
 
# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
 
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
 
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
 
# Cipher selection
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr
 
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
 
KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1
 
# X11
X11Forwarding yes
X11DisplayOffset 10
 
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net
 
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
 
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
</syntaxhighlight>


; Curve25519
; Curve25519
Zeile 81: Zeile 135:
; Tested Version
; Tested Version
: OpenSSH 6.5 (Debian Jessie)
: OpenSSH 6.5 (Debian Jessie)
===== Settings =====
; Important OpenSSH 6.5 security settings
# Package generated configuration file
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
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
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 120
PermitRootLogin no # or 'without-password' to allow SSH key based login
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# Cipher selection
Ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
KexAlgorithms diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
===== Settings =====
; Important OpenSSH 6.0 security settings
# Package generated configuration file
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
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
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 120
PermitRootLogin no # or 'without-password' to allow SSH key based login
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# Cipher selection
Ciphers aes256-ctr,aes128-ctr
MACs hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
KexAlgorithms diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes


===== Kompatibilität =====
===== Kompatibilität =====
Zeile 254: Zeile 151:
  $ ssh -vvv myserver.com
  $ ssh -vvv myserver.com
and observe the key exchange in the output.
and observe the key exchange in the output.
[[Kategorie:SSH]]
[[Kategorie:Kryptologie]]

Aktuelle Version vom 4. Mai 2024, 13:50 Uhr

Disabling Weak MAC Algorithms on a Secure Shell Server[Bearbeiten | Quelltext bearbeiten]

SSH-Server soll nur starke MAC-Algorithmen verwenden

Sie können die verfügbaren MAC-Algorithmen mit dem Befehl ermitteln

sudo sshd -T | grep mac 
MD5- und 96-Bit-MAC-Algorithmen werden als schwache Algorithmen betrachtet
  • Sie müssen entfernen weden

Konfiguration[Bearbeiten | Quelltext bearbeiten]

Schwachen MAC-Algorithmen entfernen
  1. Melden Sie sich mit Root-Zugangsdaten an
  2. Öffnen Sie die Datei /etc/ssh/sshd_config und suchen Sie nach "macs"
  3. Entfernen Sie die schwachen MAC-Algorithmen, die aufgeführt sind
    Der Eintrag wird ähnlich wie die folgende Zeile aussehen und kann zusätzliche starke MAC-Algorithmen enthalten:
    macs hmac-sha1,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha1-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com
  4. Speichern Sie die Datei
  5. Starten Sie den sshd-Dienst neu, indem Sie den Befehl service sshd restart verwenden
  6. Starten Sie eine neue SSH-Sitzung, bevor Sie die bestehende Sitzung schließen
    Dadurch wird die Verbindung verifiziert und Sie können sich mit dem Root-Konto am Server anmelden
  7. Wenn die Verbindung zum Server fehlschlägt, machen Sie die Änderungen an der Datei sshd_config rückgängig


Anhang[Bearbeiten | Quelltext bearbeiten]

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Links[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]


TMP[Bearbeiten | Quelltext bearbeiten]

/etc/ssh/sshd_config
# Ports to listen for
Port 22

# Restrict interfaces/protocols
#ListenAddress ::
#ListenAddress 0.0.0.0
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

# Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin no # or 'without-password' to allow SSH key based login
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes

# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no

# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

# Cipher selection
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr

MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160

KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1

# X11
X11Forwarding yes
X11DisplayOffset 10

PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
Curve25519
OpenSSH 6.6p1 supports Curve25519
Tested Version
OpenSSH 6.5 (Debian Jessie)
Kompatibilität[Bearbeiten | Quelltext bearbeiten]
  • Older Linux systems won’t support SHA2
  • PuTTY (Windows) does not support RIPE-MD160
  • Curve25519, AES-GCM and UMAC are only available upstream (OpenSSH 6.6p1)
  • DSA host keys have been removed on purpose, the DSS standard does not support for DSA keys stronger than 1024bit [5] which is far below current standards (see section #section:keylengths)
  • Legacy systems can use this configuration and simply omit unsupported ciphers, key exchange algorithms and MACs
References[Bearbeiten | Quelltext bearbeiten]
  • Cisco SSH is a basic SSH reference for all routers and switches
  • Refer to the specific documentation of the device and IOS version that you are configuring
How to test[Bearbeiten | Quelltext bearbeiten]

Connect a client with verbose logging enabled to the SSH server

$ ssh -vvv myserver.com

and observe the key exchange in the output.