Erste Schritte mit Let’s Encrypt

Let’s Encrypt ist eine neue Zertifizierungsstelle (CA) welche gratis Zertifikate ausstellt. Dieses ist vor einiger Zeit in die öffentliche Beta gegangen. Ich wurde aber schon zur geschlossenen Beta eingeladen weshalb mein Zertifikat unter den ersten 120 zu finden ist https://crt.sh/?id=11766203. Die CA stellt nur Zertifikate aus welche 90 Tage gültig sind, was einen dazu zwingt, den ganzen Vorgang zu automatisieren. Hat den Vorteil, man muss sich nicht mehr darum kümmern und alles passiert vollautomatisch mit viel Magie 🙂

let's Encrypt Logo

Let’s Encrypt also lasst uns verschlüsseln

Es gibt viele Vorteile von Let’s Encrypt (LE) vor allem dass alles voll automatisiert passiert. Allerdings finde ich dass alte Zertifikat System etwas einfacher. Man sendete seinen Certificate Signing Request (CSR) an die CA welche einem eine Mail sendet, an die bei dem Domain Registrar hinterlegte Email und nach einer kurzen Überprüfung wird einem das Zertifikat erstellt. Bei LE muss man der CA vertrauen, dass sie keinen Unfug mit dem Code treibt. Bis ich dieses Zertifikat damals bekam, dauerte es mehrere Stunden. Es fehlt bis heute noch eine vernünftige Dokumentation über die Software. Da meine Seite mit HPKP abgesichert ist, muss ich hergehen und den vorhandenen Private Key nehmen.

Erstmal installieren wie den LE Client von Github https://github.com/letsencrypt/letsencrypt

Jetzt kopieren wir die OpenSSL Konfiguration. Dies wird aber nur benötigt, wenn man mehrere Domains und Subdomains in einem Zertifikat haben möchtet.

Tipp: Crtl+W in nano um nach [ req ] zu suchen und wir entfernen das # davor.

Wir suchen nun nach [ v3_req ] und schreibe folgendes rein.

Danach fügen wir wie unten gezeigt, alle Domains welche mit dem SAN/SNI Zertifikat abgedeckt werden sollen rein.

Solltest du noch kein HPKP nutzen, kannst du hiermit dein Zertifikat erstellen.

Nun erstellen wir den CSR und schauen ob alles stimmt.

Wenn schon HPKP verwendet wird, können wir hiermit überprüfen ob die Hashsummen zu unseren alten und jenen in den Headern passen.

Der Server von Let’s Encrypt erwartet die Daten im DER Format. Da unsere noch im PEM sind, müssen wir diese einmal umwandeln und prüfen die Ausgabe.

Nun richten wir Nginx so ein, das es die Anfragen vom Server auf Port 80 durchlässt.

Nun kommt der spannende Teil: Wir senden alles zur CA zur Überprüfung.

Während der Überprüfung, wird man aufgefordert bestimmte Daten in /PATH/TO/WEB/ROOT/.well-known/acme-challgenge/ bereit zu stellen. Die erforderlichen Befehle liefert der Client, wir benötigen nur eine eigene zweite Bash um sie auszuführen.

Nun stellen wir Nginx noch richtig ein. Vorher noch die Datei erstellen welche für die Forward Secrecy zuständig ist.

Let's Encrypt Zertifikat

Ihr solltet bei Qualys SSL Test nun ein A+ haben https://www.ssllabs.com/ssltest/

Hier könnt ihr auch euren Erfolg einmal testen https://ssldecoder.org/

Euer Zertifikat wird dann wie jedes andere hier zu finden sein https://crt.sh/?Identity=%25&iCAID=7395

Tor-Browser 4.5 ist erschienen

Das Tor Project hat seinen Tor-Browser in Version 4.5 herausgebracht und vieles daran verbessert. Es gibt eine neue Ansicht wo man sieht, wie man geroutet wird, einen Sicherheit’s Schieberegler und einen neuen Suchanbieter.

Vorweg, wer den Tor-Browser 4.5 jetzt schon verwenden möchte, muss diesen direkt herunterladen. Die automatischen Updates werden erste nach und nach ausgerollt. Bei mir hat das überschreiben aber wunderbar funktioniert.

Nutzer Verbesserungen

Es wurde eine Option bei der Installation hinzugefügt welche eine Desktop Verknüpfung erstellt. Außerdem wurde das Tor Onion Menü um eine Funktion erweitert, welche einem zeigt wie man gerade geroutet wird innerhalb von Tor. Außerdem wird eine Route solange bei einer bestehenden Verbindung aufrecht erhalten, bis diese beendet wird. Das dürfte viele nervige Captchas ersparen. Bei neuen Verbindungen wird aber eine neue Route verwendet.

Das neue Tor Onion Menü
Das neue Tor Onion Menü

Sicherheits Verbesserungen

In den Privatsphäre und Sicherheitseinstellungen ist nun ein Schieberegler zu finden. Dieser ermöglicht es sehr bequem zu sagen, was genau erlaubt werden darf und was nicht. Dies findet ihr im Tor Onion Menü unter „Privacy and Security Settings“. Auch wurde von DiGiCert eine Hardware Signing Token gesponsert. Dieser ermöglicht es, die Software zu signieren sodass man nun weis, das die Daten auch wirklich vom Tor Project unverändert seinen Weg auf den PC gefunden haben. Dies soll auch Meldungen verhindern, welche besagen, das die Daten aus einer unbekannten Quelle kommen. Wer die Daten dennoch gegen die aus den originalen Binary gegenprüfen möchte kann dies mit dieser Anleitung tun.

Der neue Sicherheits schieberegeler
Der neue Sicherheits schieberegeler

Privatsphäre Verbesserungen

Die bereits vorhandene first party Isolation um third party tracking zu verhindern wurde verschärft. Somit soll verhindert werden, das Like Buttons, Werbung und vermaschte Inhalte euch verfolgen können. Außerdem wurde die Geräte Sensor und die Video Statistiken API deaktiviert. Auch wurde der Suchabieter gewechselt zu search.disconnect.me und viele Fehler behoben siehe die Changelog auf blog.torproject.org

 

WoSign Kostenloses SSL Zertifikat (SAN/UCC)

WoSign stellt kostenlose Multidomain SNI SSL Zertifikate mit sha256RSA mit einer Laufzeit von 3 Jahren aus.

Hier erkläre ich, wie man an ein Zertifikat kommt, wo die Tücken dabei sind und wo WoSign noch nachbessern muss. Zuerst sind gratis Zertifikate ja nun jetzt nichts neues auf dem Markt. StartCom stellt seit vielen Jahren, 1 Jahres Zertifikate aus, im September 2015 wird Let’s Encrypt kommen und CloudFlare verschlüsselt seit Ende September auch alles. Doch WoSign macht eines richtig, es stellt SNI Zertifikate nach rfc 6066 aus. Also 5 Domains passen auf ein Zertifikat, normalerweise müsste man dafür 5 eigenen IP Adressen buchen. Das ist bei den mehr und mehr ausgehenden IPv4 Adressen natürlich ein Problem. Auch ist das Zertifikat 3 Jahre gültig, man muss also nicht jedes Jahr an die Verlängerung denken. WoSign ist außerdem mit StartSSL Cross-signiert was es auf jedem System, welches StartSSL in seinem Trust Store hat gültig macht.

Wie bekomme ich das Zertifikat:

  • Besuche https://buy.wosign.com/free/
  • Schreibe in das Feld nun alle Domains und sub Domains welche Du in deinem Zertifikat haben möchtest. www.(*) ist in jedem Zertifikat automatisch enthalten.
  • Belasse alles auf den Standard Einstellungen. 3 Jahre Laufzeit, Englische Sprache und den SHA2 Algorithmus welches wichtig ist.
  • Bestätige nun, das die Domain(s) dir ist/sind durch eine Mail an den Webmaster oder das hochladen der .html Datei auf den Server.
  • Logge dich nun auf deinen Webserver per SSH an und generiere einen neuen SSL Schlüssel und den Certificate Signing Request (CSR). Dafür kannst du folgenden Befehl verwenden.
  • Wähle nun „Option 2:Generated by myself“ und kopiere dein Inhalt der .csr in das Feld. Benutzte bitte nicht das zweite Feld, mehr dazu unten.
  • Gebe nun deine Email Adresse in das Feld ein und ein sicheres Passwort – am besten mit einem Passwort Manager – falls du noch keinen Account hast.
  • Bestätige nun das Captcha und die Nutzungsbedingungen und klicke auf „Submit Request“.
  • Die nächste Seite bestätigt dir nun, das deine Anfrage bei WoSign eingegangen ist und man diese nun überprüfen wird. Beachte, das dies nur während den Geschäftszeiten von WoSign in Beijing passiert. Die ungefähre Uhrzeit steht aber auch auf der Bestätigungsseite.
  • Wenn deine Anfrage angesehen und bestätigt wurde von WoSign, erhälst du eine Email mit einem Link. Nach einem Klick auf den Link, siehst du nocheinmal die Daten deines Zertifikates und musst ein Captcha eingeben.
  • Nun erhälst du eine ZIP welche Ordner von Apach, Nginx und Co enthält. Je nach Webserver lädst du die .crt nun auf deinen Server hoch und richtest alles ein.

Warum nicht Option 1 und WoSign den Key erstellen lassen?

Das ist ganz einfach. Um das Zertifikat auf seinem Server verwenden zu können benötigt man diesen Key. Wenn nun WoSign den Key erstellt und daraus den CSR erstellt und diese beiden Dinge in die falschen Hände gelangen, hat jeder die Möglichkeit dieses Zertifikat zu verwenden. Wenn ihr den Key aber auf eurem Server erstellt und nur den CSR an WoSign übersendet, hat WoSign oder ein Angreifer keine Möglichkeit damit etwas anzufangen. Denn mit dem CSR kann man nur Zertifikate ausstellen sie aber nicht nutzen, das kann nur der mit dem richtigen Schlüssel zum Schloss 😉 Solltest du auf einem Sharehosting System sein frage bitte deinen Hoster ob er nicht so nett sei und für dich einen Schlüssel erstelle und das Zertifikat einbinde. Dies ist leider nicht immer kostenfrei und sollte einen vllt. zum wechseln anstoßen. Meine Empfehlung wäre hier Uberspace.de welcher einem eine Shell gibt und dazu viel Freiheit zu geringem Preis. Man muss allerdings gewillt sein das ganze auch zu lernen und zu verstehen. Ob dein Browser SNI unterstützt, kannst du übrigens hier testen sni.velox.ch.

Wo ist nun der Haken?

Jede Medaille hat zwei Seiten. WoSigns Server sind in China gelegen. Also in dem Teil der Welt wo Internetzensur groß geschrieben wird. Das ist ja soweit kein Problem StartCom hat seinen Sitz Israel. Das Problem ist nur, das deren Server und Routen dorthin recht langsam sind und bislang keine meiner OCSP Anfragen beantwortet haben. Zumindest ist meine Nginx Log recht Lang mit der Nachricht das ocsp6.wosign.com nicht oder zu lange benötigt zum antworten. Ein Freund hat herausgefunden, das man nicht zwangsläufig nur ein Zertifikat bekommt. Man kann auch hergehen und für jede Subdomain ein eigenes Beantragen. Die Limitierung dabei liegt bei lediglich 100 SNI Einträgen pro Zertifikat da es ansonsten einfach zu lange werden würde.

Meine Nginx SSL Konfiguration

Beachte, das du dies hier nur kannst wenn du deine Website auf deinem eigenen Server betreiben tust und nicht auf einem klassischen Share hoster dort bitte in die FAQ schauen oder solange nachfragen bis ihr SSL bekommt 😉

Hier findet ihr noch Mozillas Richtlinien um in den NSS zu kommen https://wiki.mozilla.org/CA:BaselineRequirements
Und hier findet ihr Mozillas Vorschläge für die perfekten SSL Server Einstellungen https://wiki.mozilla.org/Security/Server_Side_TLS

Debian 8 „Jessie“ ist da

Debian Logo Copyright: https://www.debian.org/
Debian Logo

Nach 2 Jahren fortlaufender Entwicklung veröffentlichte das Debian Projekt am 25. April 2015 die neuste stable Version Debian 8 alias „Jessie“. Der Sicherheits Support hierzu wird nun 5 Jahre betragen dank der Zusammenarbeit vom Debian Sicherheits Team und dem Debian LTS also dem Langzeit Support Team. Auch wurde im Hintergrund viel gewerkelt zum Beispiel kann man nun unter sources.debian.org den gesamten in Debian enthalten Quellcode ansehen.

Systemd als neuer Init Dienst und mehr UEFI Support

Nach einem langen Zoff innerhalb dem Debian Projekt und einigen Entwicklern, die das Projekt verlassen haben, gibt es nun doch das neue Systemd als Ablöser von SysV-Init dem alten Init Dienst, welcher Dienste startet und beendet. Dieser wird allerdings nur bei einer Neuinstallation aktiviert bestehende Installationen welche von Wheezy auf Jessie updaten bleibt SysV-Init aktiv, solange man dies nicht explizit ändert. Dadurch bleibt auch das altbekannte /etc/network/interfaces erst mal erhalten und ein Remote Server bootet nach dem Upgrade auch wieder. Wer wechselt hat tolle neue Features wie eine schnellere Bootzeit, cgroups für Dienste und die Möglichkeit teile eines Dienstes vom System zu isolieren.

Der UEFI Support welcher in Debian 7 Wheezy eingeführt wurde, wurde stark erweitert. Es wurden Workarounds implementiert für bekannte Firmware Bugs von Mainboards, UEFI Support für 32-Bit-Installationen und Support für 64 Bit Installationen auf UEFI’s die eigentlich nur 32 Bit unterstützen hinzugefügt.

Linux Kernel 3.16 und frische Software

Neu ist auch das ein so aktueller Kernel mit der Version 3.16.7-ctk9 mitgeliefert wird. Dies ist sehr erfreulich da dies einige Probleme mit Notebooks beheben soll und auch wird nun Docker nativ unterstützt. Vorher musste man sich den Kernel immer erst aus den Debian Backports besorgen. Der Standard-Desktop ist Gnome 3.14. Wer etwas anderes möchte, kann sich zwischen Xfce, KDE, Cinnamon, Made und LXDE entscheiden. Bei dem Datenbankserver hat man nun die Auswahl durch MySQL 5.5.42, MariaDB 10.0.16 oder PostgreSQL 9.4.1. Standard Software wie Apache, Nagios, OpenJDK, PHP, Samba, Xen und weiter 43.000 Softwarepakete aus 20.100 Quellenpaketen wurden auf neuere Versionen aktualisiert. Außerdem wurde jede Software ohne Support für SSLv3 erstellt. Somit ist es nicht mehr möglich eine Verbindung, zu dem Server über dieses alte Protokoll herzustellen.

Auch neu ist die Unterstützung von 64Bit ARM Systemen (arm64) leider sind auch einige entfallen wie ia64 durch den Wegfall einiger Entwickler. Wer dem Ganzen einen Blick geben möchte, kann die Images von den Debian Servern laden. Die Ankündigung ist hier zu finden, die Anleitung für Installationen und Upgrades hier sowie die Veröffentlichungshinweise.

WhatsSpy – Jeden überwachen mit WhatsApp

WhatsSpy Tracker Übersicht
WhatsSpy Tracker Übersicht

WhatsSpy nutzt seit dem 7.2.2015 eine Möglichkeit aus, um die kaputten WhatsApp Privatsphäre Einstellungen auszunutzen und seitdem ist bei WhatsApp nichts passiert.

WhatsSpy ist ein Open-Source-Tool, welches von Maikel Zweerink als Proof of Concept entwickelt wurde, welches diese Lücke nutzt um zu zeigen, das dieses Problem (weiterhin)-besteht und man damit prinzipiell jeden überwachen kann nur durch die einfache Kenntnis seiner Handynummer. Das Tool speichert, wann der Kontakt online und offline geht, seine Privatsphäre Einstellungen, sein Profilbild oder seine Status Nachrichten ändert – letztere beiden jedoch nur, wenn diese auf „Jeden“ stehen. Das Tool ist aus einem WhatsApp Bot Projekt entstanden. Für genauere Informationen hat Maikel in seinem Blog das Problem genauer erklärt.

Seit 4 Monaten bekannt

Öffentlich bekannt wurde das Problem Anfang Dezember durch die Friedrich-Alexander-Universität. Dies ist nun 4 Monate her und seit dem hat sich an dem Problem nichts geändert selbst nach dem viele Medien darüber berichtet haben. Man wiegt den Nutzer hier in der Sicherheit, das man nur gewissen Personen oder sogar keinem diese Informationen bereitstellt dies ist aber nicht so. Dies hat die Universität Friedrich-Alexander-Universität unter https://www.onlinestatusmonitor.com sehr gut erklärt mit genauen Hintergrund Beschreibungen des Problems.

Leicht einzurichten

Dabei ist es spielend leicht, das ganze einzurichten da alles Open-Source in PHP geschrieben ist und es sogar ein fertiges Raspberry Pi Image gibt. Auch ist der Ressourcen Verbrauch sehr gering, da man lediglich einen funktionierenden WebServer mit PostgreSQL benötigt welcher dir WhatsApp Api anspricht und diese bereitwillig alle Informationen zurückliefert – ein wirkliches Limit scheint es da auch überhaupt nicht zu geben man fragt danach und die WhatsApi liefert bereitwillig alles zurück, was man so möchte. Man benötigt lediglich eine eigene Telefonnummer für den Tracker, da ansonsten die Sessions andauernd getrennt wird und ein Gerät, welches 24/7 online ist – wie z.b. ein Raspberry Pi – dies sollte also kaum ein Problem darstellen.

XPenology raw Disk image mounten

Mein HP Microserver Gen8 mit verschlüsselter Festplatte (dm-crypt – LUKS), Proxmox VE 3.4 und XPenology hatte vor ein paar Wochen seinen Abgang gemacht durch eine over provisioning der Festplatte. Daher hier die Anleitung wie ich es hinbekommen habe, das ganze auf eine externe Festplatte zu sichern da das System unbenutzbar wurde und währen dem kopieren die kvm sich verabschiedete oder das System die externe Platte trennte. Diese Anleitung ist nach besten Wissen erstellt, sollte es zu einem Fehler kommen der nachweislich mit der Anleitung zu tun hat, bitte ich um Meldung in den Kommentaren und verweise darauf das ich keine Haftung für etwaige Schäden oder Folgeschäden übernehme.

Ich verwende hier einen HP Microserver gen8 mit Proxmox 3.4, einem raw Image Container und XPenology DSM 5.1-5022 update 2.

Zugriff auf das XPenology wenn das Hauptsystem noch geht

Wenn das XPEnology noch geht man aber Zugriff auf die Daten möchte wenn keine Dienste laufen für einen fsck muss man folgendes auf der XPEnology in die Kommandozeile eingeben. Man sollte beachten, das auch der SSH Server beendet wird in der aktuellen Version. Man muss das ganze also zwingend mit Telnet machen und darauf achten, das die Verbindung nicht getrennt wird denn ein paar GB / TB zu kopieren kann seine Zeit dauern 😉

Zuerst werden alle Dienste und Programme beendet, dann das Raid und das Logic Volume wieder gestartet und dann kann man die Platte entweder einmal mit fsck prüfen oder sie mounten.

syno_poweroff_task
mkdir /etc/mdadm
mdadm –examine –scan >> /etc/mdadm/mdadm.conf
mdadm -A /dev/md2
vgchange -a y
fsck.ext4 -nv /dev/vg1000/lv
mount /dev/vg1000/lv

Zugriff auf das XPenology wenn das Hauptsystem nicht geht

Hier noch die Vorgehensweise, wie man mit Ubuntu Live 14.04.02 LTS die Daten vom XPEnology sichert. Zuerst wird die Festplatte gemountet, dann der .raw Image Container, das Raid wieder gestartet, die Volumen Group aktiviert und das ganze nach /volume1/ gemountet. Bei Bedarf kann man mit einem fsck noch versuchen defekte des Filesystems wieder zu reparieren. Wenn man wie ich das ganze mit der iLo von HP macht sollte man den Idle Connection Timeout unter Administration / Access Settings auf infinite stellen sonst trennt sich die Verbindung zur iso und das Live System macht seinen Abgang und etwas Zeit einplanen und evtl. ein paar Koffein Getränke 😉

apt-get install mdadm lvm2 screen
cryptsetup luksOpen /dev/sda5 lukscrpyt
root@ubuntu:~# vgs
VG  #PV #LV #SN Attr      VSize    VFree
pve 1       2     0      wz–n- 931,27g 0
vgchange -ay
2 logical volume(s) in volume group „pve“ now active
mkdir /mnt/pve-root
mount /dev/mapper/pve-root /mnt/pve-root
cd /mnt/pve-root/PFAD/ZUR/vm-100-disk-1.raw
losetup /dev/loop0 image.raw
Wenn losetup: /dev/loop0: device is busy kommt einfach eine andere Verwenden
kpartx -a /dev/loop0
mdadm –examine –scan >> /etc/mdadm/mdadm.conf
mdadm -Asf /dev/md2
mdadm: /dev/md2 has been started with 1 drive.
vgchange -ay vg1000
1 logical volume(s) in volume group „vg1000“ now active
mkdir /volume1/
mount /dev/mapper/lv1000-lv /volume1/
cd /volume1/ und schon sind die Daten da 🙂
rsync -avPE /volume1/ /media/ubuntu/My\ Passport/hp/syno/volume1/