SSH/Kryptografie/Konfiguration: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Disabling Weak MAC Algorithms on a Secure Shell Server == | |||
; 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 === | |||
; Schwachen MAC-Algorithmen entfernen | |||
# Melden Sie sich mit Root-Zugangsdaten an | |||
# Öffnen Sie die Datei /etc/ssh/sshd_config und suchen Sie nach "''macs''" | |||
# 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: | |||
#: <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> | |||
# Speichern Sie die Datei | |||
# Starten Sie den sshd-Dienst neu, indem Sie den Befehl service sshd restart verwenden | |||
# 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 | |||
# Wenn die Verbindung zum Server fehlschlägt, machen Sie die Änderungen an der Datei sshd_config rückgängig | |||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | |||
==== Links ==== | |||
===== Weblinks ===== | |||
[[Kategorie:SSH]] | |||
</noinclude> | |||
= TMP = | |||
; /etc/ssh/sshd_config | ; /etc/ssh/sshd_config | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash" line> | ||
# | # Ports to listen for | ||
Port 22 | Port 22 | ||
# | |||
# Restrict interfaces/protocols | |||
#ListenAddress :: | #ListenAddress :: | ||
#ListenAddress 0.0.0.0 | #ListenAddress 0.0.0.0 | ||
Protocol 2 | Protocol 2 | ||
# HostKeys for protocol version 2 | # HostKeys for protocol version 2 | ||
HostKey /etc/ssh/ssh_host_rsa_key | HostKey /etc/ssh/ssh_host_rsa_key | ||
Zeile 14: | Zeile 47: | ||
#HostKey /etc/ssh/ssh_host_ecdsa_key | #HostKey /etc/ssh/ssh_host_ecdsa_key | ||
HostKey /etc/ssh/ssh_host_ed25519_key | HostKey /etc/ssh/ssh_host_ed25519_key | ||
#Privilege Separation is turned on for security | |||
# Privilege Separation is turned on for security | |||
UsePrivilegeSeparation yes | UsePrivilegeSeparation yes | ||
# Lifetime and size of ephemeral version 1 server key | # Lifetime and size of ephemeral version 1 server key | ||
KeyRegenerationInterval 3600 | KeyRegenerationInterval 3600 | ||
ServerKeyBits 1024 | ServerKeyBits 1024 | ||
# Logging | # Logging | ||
SyslogFacility AUTH | SyslogFacility AUTH | ||
LogLevel INFO | LogLevel INFO | ||
# Authentication: | # Authentication: | ||
LoginGraceTime 120 | LoginGraceTime 120 | ||
Zeile 31: | Zeile 68: | ||
# Don't read the user's ~/.rhosts and ~/.shosts files | # Don't read the user's ~/.rhosts and ~/.shosts files | ||
IgnoreRhosts yes | IgnoreRhosts yes | ||
# For this to work you will also need host keys in /etc/ssh_known_hosts | # For this to work you will also need host keys in /etc/ssh_known_hosts | ||
RhostsRSAAuthentication no | RhostsRSAAuthentication no | ||
# similar for protocol version 2 | # similar for protocol version 2 | ||
HostbasedAuthentication no | HostbasedAuthentication no | ||
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication | # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication | ||
#IgnoreUserKnownHosts yes | #IgnoreUserKnownHosts yes | ||
# To enable empty passwords, change to yes (NOT RECOMMENDED) | # To enable empty passwords, change to yes (NOT RECOMMENDED) | ||
PermitEmptyPasswords no | PermitEmptyPasswords no | ||
Zeile 42: | Zeile 82: | ||
# some PAM modules and threads) | # some PAM modules and threads) | ||
ChallengeResponseAuthentication no | ChallengeResponseAuthentication no | ||
# Change to no to disable tunnelled clear text passwords | # Change to no to disable tunnelled clear text passwords | ||
#PasswordAuthentication yes | #PasswordAuthentication yes | ||
# Kerberos options | # Kerberos options | ||
#KerberosAuthentication no | #KerberosAuthentication no | ||
Zeile 49: | Zeile 91: | ||
#KerberosOrLocalPasswd yes | #KerberosOrLocalPasswd yes | ||
#KerberosTicketCleanup yes | #KerberosTicketCleanup yes | ||
# GSSAPI options | # GSSAPI options | ||
#GSSAPIAuthentication no | #GSSAPIAuthentication no | ||
#GSSAPICleanupCredentials yes | #GSSAPICleanupCredentials yes | ||
# Cipher selection | # Cipher selection | ||
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr | 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 | 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 | KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1 | ||
# X11 | |||
X11Forwarding yes | X11Forwarding yes | ||
X11DisplayOffset 10 | X11DisplayOffset 10 | ||
PrintMotd no | PrintMotd no | ||
PrintLastLog yes | PrintLastLog yes | ||
Zeile 64: | Zeile 113: | ||
#MaxStartups 10:30:60 | #MaxStartups 10:30:60 | ||
#Banner /etc/issue.net | #Banner /etc/issue.net | ||
# Allow client to pass locale environment variables | # Allow client to pass locale environment variables | ||
AcceptEnv LANG LC_* | AcceptEnv LANG LC_* | ||
Subsystem sftp /usr/lib/openssh/sftp-server | Subsystem sftp /usr/lib/openssh/sftp-server | ||
# Set this to 'yes' to enable PAM authentication, account processing, | # Set this to 'yes' to enable PAM authentication, account processing, | ||
# and session processing. If this is enabled, PAM authentication will | # and session processing. If this is enabled, PAM authentication will | ||
Zeile 100: | 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, 12:50 Uhr
Disabling Weak MAC Algorithms on a Secure Shell Server
- 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
- Schwachen MAC-Algorithmen entfernen
- Melden Sie sich mit Root-Zugangsdaten an
- Öffnen Sie die Datei /etc/ssh/sshd_config und suchen Sie nach "macs"
- 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
- Speichern Sie die Datei
- Starten Sie den sshd-Dienst neu, indem Sie den Befehl service sshd restart verwenden
- 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
- Wenn die Verbindung zum Server fehlschlägt, machen Sie die Änderungen an der Datei sshd_config rückgängig
Anhang
Siehe auch
Links
Weblinks
TMP
- /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
- 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
- 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
Connect a client with verbose logging enabled to the SSH server
$ ssh -vvv myserver.com
and observe the key exchange in the output.