Tool: OpenSSHd Security Configuration Checker
Tool: Automatisierte Prüfung der SSH Server-Konfiguration
Eine unserer Dienstleistungen ist es, bei Kunden die Serverkonfiguration verschiedener Dienste auf Sicherheitsprobleme hin zu untersuchen. Für OpenSSH kann das teilweise automatisiert werden. Daraus entstand dieses Tool:
./sshdcc -dc 'sudo sshd -f /dev/null -T' ------------------------------------------------------------------------------ This is OpenSSHd Security Config Checker 0.1 - (c) 2018 SektionEins GmbH / Ben Fuhrmannek - https://sektioneins.de/ - download -> https://github.com/sektioneins/sshdcc running on Darwin 17.6.0 x86_64 with Tcl 8.6 with TTY started at 2018-07-03 13:54:50 ------------------------------------------------------------------------------ additional live system checks are enabled loading defaults from command sudo sshd -f /dev/null -T Password: <enter your password for sudo here> scanning file /etc/ssh/sshd_config ## RESULTS ## (1) [WARNING] login via any authentication method is allowed #> SYSTEM DEFAULT: authenticationmethods any It is usually a good idea to restrict authentication methods to those actually required, e.g. 'publickey'. Please change this setting. (2) [NOTICE] using default cipher list #> SYSTEM DEFAULT: ciphers chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com Depending on the version, SSH's default cipher list may contain really old ciphers, likely for compatibility with older versions. Try 'ssh -Q cipher' and choose current and secure ciphers as suitable. (3) [NOTICE] login via password is allowed #> SYSTEM DEFAULT: passwordauthentication yes Public key based authentication methods are considered much more secure. Unless your configuration contains some kind of one-time-password, e.g. via PAM, this setting should be changed to 'no'. (4) [NOTICE] extra environment variable accepted by pattern: LANG #> LINE 108: AcceptEnv LANG LC_* The default is not to accept any environment variables. Please make sure, that this variable pattern is actually required. (5) [NOTICE] extra environment variable accepted by pattern: LC_* #> LINE 108: AcceptEnv LANG LC_* The default is not to accept any environment variables. Please make sure, that this variable pattern is actually required. (6) [INFO] using default list of algorithms #> SYSTEM DEFAULT: pubkeyacceptedkeytypes ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa The default is most likely suitable. Otherwise, please check 'ssh -Q key' for a list of available algorithms. (7) [INFO] using default list of algorithms #> SYSTEM DEFAULT: hostkeyalgorithms ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa The default is most likely suitable. Otherwise, please check 'ssh -Q key' for a list of available algorithms. (8) [INFO] using default list of algorithms #> SYSTEM DEFAULT: hostbasedacceptedkeytypes ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa The default is most likely suitable. Otherwise, please check 'ssh -Q key' for a list of available algorithms. (9) [INFO] using default list of key exchange algorithms #> SYSTEM DEFAULT: kexalgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1 The default may be perfectly fine for you. Otherwise, please check 'ssh -Q kex' for a list of available algorithms. (10) [INFO] using default list of MAC algorithms #> SYSTEM DEFAULT: macs umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1 This is most likely ok. Check out 'ssh -Q mac' for a list of available algorithms to choose from. done.
Features
Online- und Offline-Modus (für Analyse auf einem Live-System oder über Konfigurationsdateien)
Farbkotierte Ergebnisliste
CSV-Export für die einfache Weiterverarbeitung
Prüft übliche Konfigurationsfehler
Prüft Einschränkungen in Match-Blöcken
Ergebnisse enthalten einen Risikoindikator, Beschreibung, Empfehlung und die untersuchte Zeile der Konfiguration.
Download
Der komplette Quellcode findet sich auf Github.