Java 1.6 und SSL im Jahre 2016: Could not generate DH keypair

Heute haben wir einem Kunden geholfen, mit seiner Java 1.6-basierten Applikation auf einen unserer Web Services zuzugreifen.

Auf der Seite des Kunden erschien folgende Fehlermeldung:

-1 Fatal transport error: java.lang.RuntimeException: Could not generate DH keypair: undefined

Da weder ein Update der Java Version, noch eine Änderung des Programmcodes oder der Java Installation in Frage kam, haben wir nach einiger Recherche, vor allem auf http://stackoverflow.com/questions/32230342/getting-could-not-generate-dh-keypair-exception und http://stackoverflow.com/questions/6851461/java-why-does-ssl-handshake-give-could-not-generate-dh-keypair-exception/33712120#33712120, sowie insbesondere http://serverfault.com/questions/693241/how-to-fix-logjam-vulnerability-in-apache-httpd/693244#693244 das Problem serverseitig gelöst.

Eine Antwort in letzterem Beitrag schlägt vor, zunächst eine eigene DH Parameter Datei zu generieren:

# openssl dhparam -out dhparam.pem 1024

Diese wird an das SSL-Zertifikat angehängt:

# cat dhparam.pem >> mycert.crt

Hierbei sollte mit Hilfe eines Editors sichergestellt werden, dass zwischen dem eigentlichen Zertifikat und dem DH-Teil (erkennbar durch den Einschluss in —–BEGIN DH PARAMETERS—– bzw. —–END DH PARAMETERS—–) ein Zeilenumbruch erfolgt.

In unserem Fall funktionierte die Lösung einwandfrei: Nach einem Restart des Webservers konnte die Java 1.6 Applikation des Kunden problemlos auf unsere Web Services zugreifen.

eigener Mozilla Sync Server 1.5

Firefox Einstellungen lassen sich „optimal in der Cloud“ speichern: Die Funktion Sync erlaubt es, einen kostenlosen Account anzulegen – und auf Knopfdruck hat man nach Anmeldung in jedem Firefox Browser die gleichen Lesezeichen. Dabei kann Sync weit mehr als nur Lesezeichen: Auch Passwörter, Browserverlauf und geöffnete Tabs werden auf Wunsch synchronisiert. Da das Sync System mit clientseitiger Verschlüsselung eine ausgeklügelte Sicherheitstechnologie nutzt und vom der renommierten Mozilla Organisation betrieben wird, besteht wenig Anlass zur Beunruhigung. Dennoch kann es in manchen Fällen sinnvoll sein, den sogenannten Sync-Server selbst zu hosten.

Mit der Version 1.5 wurde die gesamte Sync-Technologie umgestellt. Viele alte Anleitungen zum Installieren eines Sync-Servers sind daher nicht mehr aktuell. Mozilla stellt eine eigene, leicht verständliche Anleitung zur Verfügung, die im Optimalfall direkt zum Ziel führt.

In unserem Setup gab es mehrfach Schwierigkeiten:

  • Die mitgelieferten Tests (make test) ließen sich nicht fehlerfrei ausführen: raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 401 Client Error: Unauthorized
  • Der ebenfalls beim Test auftretende Fehler # Tokenserver tests currently broken due to incorrect file paths tauchte bei uns nur auf, weil wir versehentlich während des Ausführens des Tests eine andere Instanz des Dienstes betrieben haben
  • Wir sind erst zum Ziel gekommen, nachdem wir zunächst den Sync-Server direkt, ohne vorgeschalteten Web Server in Betrieb genommen haben
  • Wann immer wir die Sync-Server URL geändert haben (about:config > identity.sync.tokenserver.uri), mussten wir auch die Einstellung services.sync.clusterURL zurücksetzen und dann umgehend den Browser neu starten, bevor die Änderung aktiv wurde. Ohne Browserneustart erzeugte Firefox eine Cluster URL mit der jeweils alten Tokenserver Url.
  • Das Eintragen eines secret war bei uns notwendig; andernfalls gab es Fehlermeldungen bei der Umstellung von einer Server-URL auf eine andere, beispielsweise bei der Umstellung vom http:// zum https:// Protokoll.

In unserem Fall steht der Sync-Server nun hinter einem Apache 2.4 und einer Firewall und ist aus dem öffentlichen Internet nicht zu erreichen. Wir synchronisieren ausschließlich innerhalb der Firma als eine Art Backup. Die Kommunikation erfolgt mittels selbstsigniertem SSL-Zertifikat und dazugehöriger Ausnahme im Browser. Als Authentifizierungs-Server nutzen wir den öffentlichen Mozilla Service Firefox Accounts. Diese Konfiguration funktioniert einwandfrei.

Im Optimalfall würde der Firefox Accounts Service zur Erhöhung der Sicherheit noch durch einen internen Firefox Accounts-Server ersetzt werden. Wir haben das Risiko durch Nutzung des Firefox Accounts Service als relativ niedrig eingestuft: Zum einen hätte ein Angreifer nach Kompromittierung der Firefox Server kein Klartext-Passwort, zum anderen hätte er dadurch noch keinen Zugriff auf unsere eigentlichen Daten (z. B. Lesezeichen), weil diese innerhalb unseres Netzwerkes liegen.

Mannschaftsaufstellung auf der LED Bande

Fußballmannschaft – Aufstellung in der LED Banden Software

Wir präsentieren: die Line5 Fußballmannschaft. So etwas gab es noch nie – und praktisch haben wir sicherlich keine Chance. Virtuell aber malen wir uns beste Chancen am Markt aus. Die Mannschaft kommt auf der nagelneuen LED-Banden Software Demo 2016 zum Einsatz und hat damit das Potenzial, zu einer der bekanntesten Fußballmannschaften der Welt zu werden. Selbstverständlich können in der realen Software alternativ die echten Spielerfotos hochgeladen und angezeigt werden.

Wir nennen unsere Fußballmannschaft übrigens Die LED Bande, oder kurz „Die Bande“.

Business Software Checkliste

Viele kleine und mittelgroße Unternehmen bieten hervorragende spezialisierte Branchen- und Geschäftssoftware an. Von der Lagerverwaltung über CRM- und ERP-Systeme bis hin zur Projektmanagement Lösung tummeln sich unzählige Lösungen am Markt.

Im Verkaufsprozess werden Unternehmern von Vertrieblern beeindruckende Features vorgeführt – aber welcher Unternehmer fragt schon nach einer Lasttest Dokumentation? Man ist von den Branchenriesen unter den Software Herstellern trotz all der kleinen Macken eine grundsätzlich sehr hohe Qualität gewohnt. Eine Software, die nur von wenigen Dutzend Anwendern genutzt wird, kann allein aufgrund des deutlich geringeren Budgets nur sehr schwer eine ähnliche Qualität erreichen – und so geht mancher Unternehmer bei der Kaufentscheidung Kompromisse ein, von denen er nichts wusste. Werden diese Kompromisse relevant, kann es zu erheblichen Mehrkosten kommen, auf denen mangels Vereinbarung oft der Kunde sitzen bleibt.

Die beigefügte Checkliste kann als Leitfaden für kritische Fragen dienen. Wenn ein Unternehmer eine Software anschafft, dann entsteht eine gewisse Abhängigkeit zu dieser. Oder würden Sie sagen, dass Sie von Ihrem E-Mail Programm vollständig unabhängig sind? Eine gute Business Software fügt sich wesentlich nahtloser in Ihre Geschäftsprozesse ein und erzeugt dementsprechend im Optimalfall eine höhere Abhängigkeit.

Entsprechend wichtig ist es, das anzuschaffende Produkt sowie die Herstellerfirma auf Herz und Nieren zu prüfen. Hierbei müssen längst nicht alle Punkte der Checkliste erfüllt sein. Wichtig ist lediglich, die Grenzen der anzuschaffenden Software, sowie die Zukunftspläne des Herstellers im Wesentlichen erkennen zu können und die langfristige Vereinbarkeit mit den eigenen Bedürfnissen zu prüfen. Mit etwas Geschick und Zeit kann die Checkliste dabei helfen, die echten Juwelen unter den mittelständischen Softwareentwicklern zu entdecken.

Zur Checkliste Business Software

Line5 Hosting: Eigene Nameserver nutzen

Für Ihre bei Line5 gehosteten Domains sind nun auch eigene Nameserver einstellbar. Die neue Funktion im Hosting > Domains Menü ermöglicht die Integration in komplexe Systemlandschaften.

Vorsicht ist jedoch geboten: Werden für eine Domain andere Nameserver als die von Line5 vorgegebenen verwendet, können die Line5 Hosting Services für diese Domain nicht mehr verwendet werden (z. B. E-Mail, Website). Die Einstellung sollte nur von Profis vorgenommen werden.

Migration von Exchange 2003 / SBS 2003 zu Office 365

Ein Erfahrungsbericht:

Die Migration ist nicht so einfach, wie es zunächst scheint. Wir waren auf der Suche nach einer pragmatischen Lösung – da der SBS 2003 kurz vor dem Zerfall stand, hatte eine schnelle Migration Vorrang vor einer komfortablen Lösung.

Wir haben uns letztlich dafür entschieden, vorerst nur die Exchange Postfächer in die Cloud umzuziehen und den On Premise Server vorerst weiterhin als Domänencontroller zu nutzen. Ddie Benutzerverwaltung in Office 365 ist völlig unabhängig von der Benutzerverwaltung auf dem On Premise Server. So hat ein Benutzer zwar möglicherweise zwei verschiedene Passwörter, dafür sind die Systeme jedoch unabhängiger voneinander.

Die Migration selbst wurde nach einigem Hin und Her so konzipiert, dass die Postfächer einzeln migriert werden können. Wir fanden es in unserem Fall praktisch, dass der Migrationszeitpunkt den Bedürfnissen der einzelnen Benutzer angepasst werden konnten, weil einige User auf Projekten unterwegs waren, und in der Regel auch eine Installation der mittlerweile völlig veralteten Microsoft Office Versionen durch den In-House Admin angebracht war.

Die Durchführung von Backups sollte vor einer solchen Migration selbstverständlich sein.

RPC over HTTP

Die gesamte Migration erfolgt per RPC over HTTP. Um dieses zu testen, bietet sich die Website https://testconnectivity.microsoft.com/ an, und zwar mit dem Outlook Connectivity Test.

Remote Connectivity Analyzer

Das korrekte Format der Einstellungen ist für einen erfolgreichen Test sehr wichtig. Insbesondere die manuellen Servereinstellungen für den RPC Proxy Server (= externer / öffentlicher FQDN des Exchange Servers) sowie den Exchange Server (= interner / privater FQDN des Exchange Servers) müssen korrekt angegeben werden.

remote-connectivity-analyzer-2

Erst wenn dieser Test erfolgreich ist, ist ein Fortsetzen des Migrationsprozesses sinnvoll, weil Office365 auf dieselbe Art und Weise Kontakt zum OnPremise Exchange Server aufnimmt, wie das Connectivity Test Tool.

Rechte des Migrationsbenutzers

Während oben der Zugriff eines Benutzers auf sein eigenes Postfach getestet wurde, wird für eine Migration in der Regel ein spezieller Administrator-Account (alternativ der Domänenadministrator) genutzt. Dieser hat jedoch in der Werkseinstellung keinerlei Zugriffsrechte auf fremde Postfächer, somit ist eine Migration zunächst unmöglich.

Im Exchange System Manager kann dies geändert werden (Vorsicht, Datenschutz – ggf. nicht erlaubt!!!). Receive As und Send As sollten nicht verweigert, sondern zugelassen werden.

administrator-zugriff-migration

Vorsicht Stolperstein: Möglicherweise ist für Gruppen, z. B. Domänen Admins die Verweigern Einstellung aktiv. Diese muss entfernt werden, weil die Verweigerung der Gruppe das Zulassen des einzelnen Benutzers überschreibt.

Sinnvoll kann es sein, dies durch den Remote Connectivity Analyzer überprüfen zu lassen. Hierfür in diesem Tool einfach die E-Mail Adresse eines beliebigen Benutzers, jedoch die Zugangsdaten des Migrationsbenutzers angeben. Ist das Ergebnis immer noch zufriedenstellend?

Los geht’s…

Die Mehrstufige Migration ist eine feine Sache: Es werden genau diejenigen Postfächer umgezogen, die in einer .csv-Datei angegeben werden. Die .csv-Datei kann sehr einfach per Editor erstellt werden:

EmailAddress,ForceChangePassword
max.mustermann@line5.de,FALSE
alfons.mueller@line5.de,FALSE

Jeder zu migrierende User muss bei dieser Migrationsvariante bereits – mit derselben E-Mail Adresse – in Office365 vorhanden sein. Nach Anlage der User geht es per Empfänger > Migration zum Migrationsassistenten, der die .csv-Datei entgegennimmt und den Migrationsendpunkt abfragt. Für den Migrationsendpunkt sollten dieselben Daten angegeben werden, die auch im Remote Connectivity Analyzer (s.o.) zu einem Erfolgserlebnis geführt haben. Und dann … startet die Migration.

Vorsicht: Während der Migration werden die User auf dem OnPremise Server automatisch so umgestellt, dass alle neuen E-Mails direkt an das Office365 Postfach weitergeleitet werden.

Interne E-Mails von Office365 zum OnPremise Server

Werden der interne E-Mail Server und der Office365 Server gleichzeitig und ohne Hybridbereitstellung unabhängig voneinander betrieben, weist der Online Exchange Server solche E-Mails an Adressen, die vom OnPremise E-Mail Server verwaltet werden, zurück.

Beispiel: max.mustermann@line5.de nutzt sein Postfach auf dem OnPremise Server, lisa.mustermann@line5.de ist bereits auf den Office365 Server umgezogen. Versucht Lisa, eine E-Mail an Max zu senden, schlägt dies fehl, weil der Office365 Server Max noch nicht kennt. Versendet Max dagegen eine E-Mail an Lisa, erhält sie diese, weil der Migrations-Task den Parameter TargetAddress in Lisas Benutzer auf lisa.mustermann@meinefirma.onmicrosoft.com gesetzt hat.

Um interne E-Mails vom Office 365 System zum OnPremise Server zuzulassen, sind zwei Einstellungen notwendig:

  • Ein ausgehender Connector vom Office 365 System
  • Die Domain muss als Internes Relay statt autoritativ eingestellt werden

Outlook und die Endbenutzer

Es mag praktisch sein, im Zuge der Migration gleich die aktuelle Office Version zu installieren. Wenn allerdings das alte Exchange Konto noch in Outlook vorhanden ist, kommt es nach der Installation von Office365 möglicherweise zu einer Fehlermeldung, weil sich manche Office365 Versionen nicht mit einem OnPremise Exchange verbinden lassen.

Am sichersten ist es, das Outlook Profil bereits vor dem Deinstallieren von Office zu löschen – und dann Office komplett neu zu installieren. Hierbei sollte man jedoch beachten, dass Daten verloren gehen könnten – beispielsweise eingebundene Archivdateien, oder private POP3 / IMAP Accounts. Unter Umständen empfiehlt es sich, das Office Upgrade gemeinsam mit dem User einzeln durchzuführen.

Rückgängig…

Falls aus irgend einem Grunde die E-Mail Weiterleitung vom OnPremise Server zu Office365 abgeschaltet werden soll, kann mittels des Tools ADSIEdit.msc (Teil der Windows Server 2003 Support Tools) der Parameter TargetAddress für den spezifischen User entfernt werden. Die E-Mail Weiterleitung wird sofort inaktiv. Denkbar ist die Notwendigkeit für diesen Schritt, falls eine Migration rückgängig gemacht oder der User nach durchgeführter Migration doch wieder auf dem OnPremise Server arbeiten soll.

Migrationsberichte

Nach Abschluss der Migration (Status: synchronisiert) besteht die Möglichkeit „Details zu übersprungenen Elementen“ anzusehen und abzulegen. Ebenso kann der „Bericht für diesen Benutzer“ heruntergeladen werden.
Achtung!: Im weiteren Verlauf wird der Status des Migrationsbatches automatisch auf beendet gesetzt und später gelöscht. Details zu übersprungenen Elementen oder der Bericht können dann nicht mehr eingesehen werden.

s.: https://technet.microsoft.com/de-de/library/jj898488%28v=exchg.150%29.aspx#managebatches

Website-Verwaltung im Kundenmenü

Kunden mit Webhosting Paket können ab sofort im Kundenmenü selbst Websites anlegen, löschen oder verändern. Jeder Website können beliebige bei Line5 gehostete Domains und Subdomains zugeordnet werden. DNS-Einträge werden automatisch erstellt, sofern die Domain nicht vom Kunden auf „manuell“ gestellt wurde.

Mittels dieser Funktion ist alternativ eine einfache Einrichtung von Weiterleitungen möglich: Zusätzlich zum Verzeichnis auf dem Server kann die Url des Weiterleitungszieles angegeben werden.