Aus Linux-Magazin 08/2016

Aus dem Alltag eines Sysadmin: Testssl.sh

Abbildung 1: Testssl.sh fühlt sogar den Mailserver-Zertifikaten auf den Zahn.

Charly Kühnast kann sich noch gut an die Zeit erinnern, als das Einbinden und die Funktionsprüfungen eines SSL-Zertifikats eine einfache Sache war. Jetzt hat er ein Shellskript gefunden, das trotz des Wirrwarrs an Schlüsselprotokollen und Ciphers klare Auskünfte erteilt.

Es ist absehbar, dass Webserver mit SSL-Zertifikat die Regel werden. Im selben Maße steigt die Verantwortung der Admins, zu überblicken, welche SSL- und TLS-Einstellungen auf welchen Servern noch up to date sind. Ich lasse mir dabei von Testssl.sh helfen, denn das Shellskript ist ein Tausendsassa. So löst

testssl -U https://Server

Scantests auf gängige Sicherheitslücken wie Heartbleed, Poodle und Crime aus (Listing 1). Jede Testoption kann ich auch einzeln auslösen. Um zu erfahren, ob ein Server anfällig für Logjam ist, genügt:

Listing 1

testssl -U https://Server

01 Service detected:       HTTP
02 Testing vulnerabilities
03
04 Heartbleed (CVE-2014-0160)              not vulnerable (OK) (timed out)
05 CCS (CVE-2014-0224)                     not vulnerable (OK)
06 Secure Renegotiation (CVE-2009-3555)    not vulnerable (OK)
07 Secure Client-Initiated Renegotiation   not vulnerable (OK)
08 CRIME, TLS (CVE-2012-4929)              not vulnerable (OK)
09 [...]
testssl.sh --logjam Adresse

Mit »testssl -P Adresse« prüfe ich, ob der Server seine Ciphers in einer definierten Reihenfolge (von stark zu schwach) anbietet, denn das sollte er. Testssl.sh zeigt das stärkste Verschlüsselungsverfahren, das er aushandeln konnte (Listing 2). Mit »testssl.sh -Y Adresse« finde ich zusätzlich heraus, ob der Server HTTP/2 unterstützt. Der antwortet dann vielleicht mit:

Listing 2

testssl -P <I>Adresse<I>

01 Testing server preferences
02
03 Has server cipher order?   yes (OK)
04 Negotiated protocol        TLSv1.2
05 Negotiated cipher          ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH
06 Cipher order
07 [Eine längliche Liste der angebotenen Ciphers]
Service detected:       HTTP
HTTP2/ALPN http/1.1 (offered)

Die Tests sind nicht auf HTTPS beschränkt. Einen Mailserver teste ich mit

testssl.sh --starttls smtp Adresse

und bekomme genauso gute Analysen wie beim Webprotokoll – in diesem besonders ausführlich, denn wenn ich keine Parameter angebe, prüft sich Testssl.sh einmal durchs ganze Regal (Abbildung 1).

Abbildung 1: Testssl.sh fühlt sogar den Mailserver-Zertifikaten auf den Zahn.

Abbildung 1: Testssl.sh fühlt sogar den Mailserver-Zertifikaten auf den Zahn.

Ach so: Aha

Zum Schluss ein Tipp vom Testssl-Entwickler: Wer zusätzlich das Tool »aha« [2] installiert, kriegt die Konsolenausgabe ganz einfach in HTML gewandelt:

testssl.sh Adresse | aha > /Pfad/servertest.html

In ein kleines Shellskript gewickelt, checke ich so schnell per Cron einmal wöchentlich den TLS- und SSL-Status meiner Server.

Infos

  1. Testssl.sh: https://github.com/drwetter/testssl.sh
  2. Aha: https://github.com/theZiz/aha und in den Repositories vieler Distributionen

Der Autor

Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein. Zu seinen Aufgaben gehören Sicherheit und Verfügbarkeit der Firewalls und der DMZ.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben