ssh-audit - OpenSSH Sicherheit testen, konfigurieren und härten

Secure Shell (SSH) dürfte fast jeder schon einmal gehört haben, nicht nur wegen der vielen Updates in letzter Zeit.

Das Netzwerkprotokoll, welches häufig zur Wartung oder zum Datenaustausch mit entfernten Geräten verwendet wird, ist aus dem Alltag kaum wegzudenken.

SSH ermöglicht eine sichere Verbindung in unsicherer Umgebung, dank Verschlüsselung und Authentifizierung.

Neben Passwortauthentifizierung kann das Protokoll mit Public Key Verfahren genutzt werden, was durchaus zu empfehlen ist.

Die Einstellungen in der Konfiguration "/etc/ssh/sshd_config" dazu sind schnell gesetzt:

PubkeyAuthentication yes

PasswordAuthentication no

 

Neben der Authentifizierungsmethode gibt es allerdings noch weitere Einstellungsmöglichkeiten.

Um Verbindungen zwischen Client und Server möglichst sicher zu gestalten, können in der Konfiguration verschiedene Einstellungen gesetzt werden.

Unter anderen folgende Werte.

 

  • KexAlgorithms (Key Exchange): Die Schlüsselaustausch-Algorithmen für die symmetrische Verschlüsselung.
  • Ciphers Die Ciphers zur symmetrischen Verschlüsselung der Verbindung.
  • MACs (Message authentication codes): Nachrichten Authentifizierungsverfahren, um die Integrität zu sichern.
  • HostKeyAlgorithms Algorithmus welchen der Client verwendet

 

Durch alte bzw. gebrochene oder mangelhafte Verschlüsselung kann es zu Sicherheitslücken kommen, welche sich durch richtige Einstellungen vermeiden lassen.

Mit Hilfe des Kommandozeilen Tools ssh-audit lassen sich fehlerhafte SSH Einstellungen schnell ausfindig machen.

ssh-audit - OpenSSH Sicherheit testen und richtig konfigurieren

Das Programm liest die Version und Einstellungen von OpenSSH aus und zeigt im Ampelformat an, welche Algorithmen und Ciphers abgeschaltet werden sollten.

ssh-auditDazu werden zusätzliche Infos eingeblendet. Warum genau diese Cipher oder jener Algorithmus nicht mehr verwendet werden sollten.

In der aktuellen Programmversion 1.7.x werden folgende Hauptfeatures unterstützt.

  •     SSH1 and SSH2 protocol server support
  •     grab banner, recognize device or software and operating system, detect compression
  •     gather key-exchange, host-key, encryption and message authentication code algorithms
  •     output algorithm information
    • available since 
    • removed/disabled 
    • unsafe/weak/legacy, etc
  •     output algorithm recommendations
    • append or remove based on recognized software version;
  •     output security information
    • related issues
    • assigned CVE list, etc
  •     analyze SSH version compatibility based on algorithm information
  •     historical information from OpenSSH, Dropbear SSH and libssh
  •     no dependencies, compatible with Python 2.6+, Python 3.x and PyPy

Installation unter Ubuntu 16.04 und Python3

Die Installation ist relativ einfach, allerdings kann es sein, dass mit Ubuntu 14.04 und Python 2.7 und Ubuntu 16.04 mit Python 3 noch ein paar Handgriffe notwendig sind.

wget https://github.com/arthepsy/ssh-audit/archive/v1.7.0.zip

unzip v1.7.0.zip

cd ssh-audit-1.7.0/

Zum Starten des Audits muss Python Script und eine Serveradresse aufgerufen werden. Als ersten Test bietet sich localhost an.

Unter Ubuntu 16.04 muss allerdings darauf geachtet werden, dass Python 3 richtig eingerichtet ist. Darum sollte hier noch ein Symlink gesetzt werden, damit das Script richtig ausgeführt werden kann

$ python -V
-bash: /usr/bin/python: No such file or directory

$ sudo ln -s /usr/bin/python3 /usr/bin/python

$ ls -l /usr/bin/ |grep python
lrwxrwxrwx 1 root   root          16 Oct 29 19:29 python -> /usr/bin/python3

Danach kann das Audit Script den Ubuntu 16.04 Server auf schwache Einstellungen kontrollieren. Hier ein Auszug.

sudo ./ssh-audit.py localhost

# general
(gen) banner: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
(gen) software: OpenSSH 7.2p2
(gen) compatibility: OpenSSH 7.2+, Dropbear SSH 2013.62+
(gen) compression: enabled (zlib@openssh.com)

# key exchange algorithms
(kex) curve25519-sha256@libssh.org          -- [info] available since OpenSSH 6.5, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp256                    -- [fail] using weak elliptic curves
                                            `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp384                    -- [fail] using weak elliptic curves

# host-key algorithms
(key) ssh-rsa                               -- [info] available since OpenSSH 2.5.0, Dropbear SSH 0.28
(key) rsa-sha2-512                          -- [info] available since OpenSSH 7.2

# encryption algorithms (ciphers)
(enc) chacha20-poly1305@openssh.com         -- [info] available since OpenSSH 6.5
                                            `- [info] default cipher since OpenSSH 6.9.
(enc) aes128-ctr                            -- [info] available since OpenSSH 3.7, Dropbear SSH 0.52
(enc) aes192-ctr                            -- [info] available since OpenSSH 3.7
(enc) aes256-ctr                            -- [info] available since OpenSSH 3.7, Dropbear SSH 0.52

# message authentication code algorithms
(mac) umac-64-etm@openssh.com               -- [warn] using small 64-bit tag size
                                            `- [info] available since OpenSSH 6.2
(mac) umac-128-etm@openssh.com              -- [info] available since OpenSSH 6.2


 

OpenSSH Härtung (ab Version OpenSSH 6.7)

Bei der neuesten OpenSSH Version können verschiedene Sicherheitseinstellungen gesetzt werden.

Im Screenshot seht ihr eine laut Audit optimale Einstellung für einen Server zum jetzigen Zeitpunkt.

ssh-gehaertet


Die Einstellungen kommen wie folgt zu Stande: 

Zunächst zum Key Exchange. Elliptische Kurven vom National Institute of Standards and Technology (Nist) haben nicht den besten Ruf und sind durch Timingangriffe verletzbar. SHA1 zählt auch nicht mehr zu den besten Methoden unserer Zeit und kann ebenfalls deaktiviert werden.

Das heißt von den verfügbaren Möglichkeiten (siehe unten) bleiben nur noch curve25519-sha256 und diffie-hellman-group-exchange-sha256 als Auswahl übrig. 

  • curve25519-sha256: ECDH over Curve25519 with SHA2
  • diffie-hellman-group1-sha1: 1024 bit DH with SHA1
  • diffie-hellman-group14-sha1: 2048 bit DH with SHA1
  • diffie-hellman-group-exchange-sha1: Custom DH with SHA1
  • diffie-hellman-group-exchange-sha256: Custom DH with SHA2
  • ecdh-sha2-nistp256: ECDH over NIST P-256 with SHA2
  • ecdh-sha2-nistp384: ECDH over NIST P-384 with SHA2
  • ecdh-sha2-nistp521: ECDH over NIST P-521 with SHA2
Quelle

Für Mac, HostKeys und Ciphers gelten ähnliche Regeln. Auch hier sollten Einstellungen mit MD5/SHA1 oder CBC entfernt werden. Open SSH Audit hebt diese in roter Schrift hervor. Am Ende bleibt eine sichere Einstellung und folgende Angaben unter /etc/ssh/sshd_config.

Diese beispielhaften Einstellungen wurde so gewählt, dass eine Verbindung via Windows und PuTTY möglich ist.

debianbanner no

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

Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

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

HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,ssh-rsa

Fazit

open-ssh audit bietet eine einfache und schnelle Möglichkeit SSH Verbindungen zu testen und bei Bedarf auch zu härten. Das Tool erklärt dem Nutzer seine Wahl und ist somit recht verständlich.

Allerdings sollte immer auf die jeweilige Umgebung in Verbindung mit den Einstellungen geachtet werden. Auch sollte nach einer Änderung zwingend eine Testverbindung aufgebaut werden (SSH Dienst neu starten nicht vergessen).

Details zu weiteren Einstellungen und deren Funktion, welche der Audit zurzeit nicht bieten kann, sollten an anderer Stelle nachgelesen werden. Hier empfiehlt sich das Raven Wiki für einen ersten Überblick

ssh audit

Unsichere Add-Ons – Was ist noch sicher?

Gerade geistert das Gespenst der bösen Add-ons durch die Medien.
Der NDR hat recherchiert und festgestellt, dass die Erweiterung Web of Trust (wot) nicht nur Daten sammelt, sondern diese auch weiterverkauft.

Mich wundert dieses Verhalten ehrlich gesagt nicht. Add-Ons mit einer Firma im Hintergrund sind oft gewillt mit ihrer Software Geld zu verdienen.
Das ist nicht nur bei Web of Trust so, auch Add-ons wie AdblockPlus oder Ghostery sind da kritisch zu betrachten. 

Anwender solcher Erweiterungen machen sich selten die Mühe AGBs durchzulesen, auch bei WOT war in den Datenschutzbestimmungen nachzulesen, dass Daten erhoben werden.

wotDas Web of Trust Daten an Dritte weitergibt ist natürlich nicht schön, aber auch kein riesiger Skandal. Wer solche Add-ons verwendet, ist teilweise selbst Schuld. (Weitere Details zu diesem Thema können bei Kowabit nachgelesen werden).

Dank des offenen Quellcodes hätte jeder die genauen Abläufe des Add-ons nachvollziehen, vorausgesetzt er versteht, was da vor sich geht. Ich schätze die meisten Wot Anwender konnten dies nicht. Somit stellt sich die Frage, welchen Add-ons nun Vertrauen schenken?

Um in Zukunft solchen Enthüllungen aus dem Weg zu gehen, sind weiterhin OpenSource Add-ons zu empfehlen, hier kann jeder den Quellcode einsehen und eventuelle Datenweitergaben aufspüren.

Allerdings sollte ein wenig darauf geachtet werden, wer für die Entwicklung solcher Add-ons verantwortlich ist und was in den Datenschutzbestimmungen steht.

Die besten Open Source Sicherheits Add-ons für Firefox

Erweiterungen der Electronic Frontier Foundation können als relativ unbedenklich angesehen werden. 
Die EFF ist eine amerikanische Organisation, welche sich für Rechte im Informationszeitalter einsetzt. Bekannte Persönlichkeiten wie Bruce Schneier gehören der Organisation an.


PrivacyBadger  - von der Electronic Frontier Foundation, um Tracking zu umgehen bzw. zu blockieren.

privacybadger

 

HTTPS Everywhere - von der Electronic Frontier Foundation, um HTTPS zu nutzen.

HTTPS-Everywhere

uBlock Origin - um Werbung zu blockieren. Als Alternative zum bekannteren AdblockPlus.

ublock-origin

Self-Destructing Cookies  - um unnötige Cookies automatisch zu entfernen

selfdestructingcookies

 

User Agent Switcher - Damit können Webseiten andere Browser untergejubelt werden. Wer also seinen Fingerprint nicht hinterlassen möchte, der kann den Switcher nutzen.

User-Agent-switcher

Alle hier erwähnten Add-Ons können auf GitHub eingesehen und analysiert werden. Für ein einigermaßen absichertes Surfen sollten diese fünf Add-ons ausreichen. Natürlich gibt es noch weitere wie disconnect und Co, aber das darf jeder selbst entscheiden.
 

Wire Messenger für Linux - Das sichere Skype?!

Skype unter Linux das war und ist eine lange Geschichte. 
Der Skype Client ist immer noch im Alphastadium, kann inzwischen zwar Videotelefonie, wurde aber dennoch lange Zeit von den MS Entwicklern vernachlässigt.
Nicht nur aus diesem Grund ist der Chat Client unter Linux Usern nicht der beliebteste.

Doch es gibt auch andere Möglichkeiten unter Ubuntu und Co zu chatten.

Wire Messenger unter Linux

Inzwischen hat sich auf dem Messenger Markt einiges getan und neben WhatsApp, Facebook Messenger für Mobilgeräte oder Telegram und Signal, gibt es nun einen weiteren Messenger Client für Linux Systeme, welcher Verschlüsselung mitbringt und somit dem Nutzer etwas Sicherheit gibt.

wire-logo
Etwas Sicherheit muss hier gesagt werden, denn leider ist die Schweizer Firma nicht voll und ganz transparent.
Der Client selbst ist OpenSource und kann von jedem auditiert werden. Dennoch ist nicht ganz klar, wie es mit den bereitgestellten Verbindungsservern steht.

Eine Ende-zu-Ende Verschlüsselung der Nachrichten und Gespräche findet via Off-the-Record (OTR) bzw. Proteus statt, was eine Eigenkreation von Moxie Marlinspikes Axolotl Protokoll ist.
Wie sich die Firma finanziert ist ebenfalls unklar, niemand weiß, ob bald ein Premium Service eingeführt wird. Dies steht momentan nicht im Raum, aber die Frage sollte dennoch gestellt werden.

wire-login

Bis es soweit ist, bleibt Wire eine gute Skype Alternative unter Linux Systemen, gerade wenn Wert auf Sicherheit gelegt wird. 
Denn Linux Chat Clients, welche eine sichere Verbindung ermöglichen sind immer noch rar gesät. So bieten Telegram oder Tox ähnliche Funktionen an und sind für verschiedene Linux Distributionen verfügbar. Die meistens Programme tummeln sich aber weiterhin im Windows Umfeld

Installation des Wire Messenger unter Ubuntu

Dank fertigem Paket für 32bit und 64bit ist der Wire Messenger flink installiert.

wget https://wire-app.wire.com/linux/wire-2.11.2665-amd64.deb

sudo dpkg -i wire-2.11.2665-amd64.deb

Nach der Installation erfolgt eine einmalige Registrierung. Der Client selbst kann auf Deutsch umgeschaltet werden und bietet eine direkte Integration von YouTube Videos oder GIFs via Giphy. 

wire-chat

Die Oberfläche fühlt sich leider nicht so komfortabel an, wie bei anderen Messengern, aber hier entscheidet sicherlich auch der Geschmack. Dafür gibt es mit "Otto the Bot" einen Chatbot frei Haus, welcher in alle wichtigen Funktionen einführt.

Hervorheben kann sich der Client sicherlich durch die Integration von Audio und Video Chats, was nicht gerade viele Messenger unterstützen.

Bei der Oberfläche handelt es sich ähnlich wie bei Mattermost um einen Wrapper der Webversion, basierend auf Electron.

Fazit

Mit der Multimedia Integration und dem abgewandelten Axolotl Protokoll steht einer sicheren Kommunikation somit nicht mehr viel im Wege. Lediglich ein System, welches selbst gehostet werden kann, wäre wünschenswert.

Sicherer als Skype kann Wire auf jeden Fall bezeichnet werden, da es durch den Hauptsitz in der Schweiz einem anderen Recht unterliegt, als Übersee und wie schon erwähnt, eben Ende zu Ende verschlüsselt.

[Update]

Die Digitale Gesellschaft hat verschiedene Messenger verglichen und den Produktvergleich mit diversen Kriterien veröffentlicht. Wire schneidet mit gut ab, XMPP mit OTR sehr gut.

Produktvergleich: WhatsApp, E-Mail, SMS & Co. auf Sicherheit und Nachhaltigkeit bewertet