LDAPs von ownCloud auf LD-Server

Nicht nur die Anbindung des LD-Servers an eine externe DokuWiki Installation, sondern auch an ein externes ownCloud funktioniert über LDAPs und lässt sich wie folgt einrichten:

Der erste Schritt ist vom OC-Administrator vorzunehmen, der im Backend die LDAP App einschalten muss. Weiter muss auf dem ownCloud-Server auch php5-ldap installiert sein und in der folgenden Datei die Prüfung auf Zertifikate abgeschaltet werden, wenn man intern auf dem LD-Server für den eigenen LDAP nur selbst-signierte Zertifikate einsetzt (was in den meisten Fällen zutreffen dürfte – leider):

Als OC-Administrator lässt sich dann unter dem Menü-Eintrag /Administration die restliche Konfiguration vornehmen.

ocldap-server

In der Server-Registerkarte ist die URL (besser: IP) für den LD-Server zu hinterlegen. Danach klickt man einmal in Benutzer-DN, trägt aber nix ein, klickt einmal in Passwort, trägt aber nix ein und schreibt dann die DN Angaben in das letzte Feld. Bei BelWü-Kunden dürfte es sich hierbei um einen Eintrag in der folgenden Form handeln:

Dann klickt man auf Fortsetzen – wie auch bei allen anderen folgenden Registerkarten.

ocldap-userfilter

In der Nutzer-Filter-Registerkarte sollte inetOrgPerson vorausgewählt sein und ownCloud auch gleich alle internen Benutzer (und Workstations etc.) finden. Im Bild oben sind dies 1008 Benutzer. Das sind etwas viele, die sich anmelden dürften, weswegen man Beschränkungen vornehmen sollte. Im Folgenden beschränke ich die Nutzung für die Gruppe der Lehrer/innen.

ocldap-loginfilter

Die Beschränkung erfolgt schon bei der Anmeldung: Nur Mitglieder der Gruppe teacher werden akzeptiert. Die entscheidende Funktion wird durch vorauswählbare Einträge nicht scharf schaltbar, weshalb man selbst den Original-Filter bearbeiten muss, so dass dieser am Ende wie folgt aussieht:

Hinzugefügt wurde in die Voreinstellungen ein

ocldap-groupfilter

Der Gruppen-Filter von ownCloud bezieht sich nämlich nicht auf die Benutzerrechte im Anmeldekontext, sondern lediglich auf das Recht, innerhalb von ownCloud Gruppen bilden zu dürfen.

Was bei der Arbeit auf jeden Fall hilft, ist einmal auf dem LD-Server mit tshark zu gucken, ob überhaupt LDAPs Anfragen ankommen.

Weiter macht es Sinn mit

zu verfolgen, was alles bei den Anmeldeversuchen schief läuft. Man braucht mindestens einen Lehreraccount und einen Schüleraccount zum Testen – sonst wird man irre. Auch darf man damit rechnen, dass man mehrfach

auf dem ownCloud Server benötigt, weil sich dieser an den Einstellungen verschluckt hat. Das kann man gut in der owncloud.log verfolgen: Sollte diese im Sekundenabstand mit Zeilen gefüllt werden, die ungefähr diese Angaben enthalten, dann ist es mal wieder Zeit für einen Apache Restart und einen erneuten Versuch im OC-Backend:

Wer das alles für seine Linuxmuster.net Lösung haben will, wird im Wiki fündig. Wie immer sind die freien Schulserver-Lösungen bei der Dokumentation von Sonderwünschen und Erweiterungen vorbildlich.

SSL, Apache, Komfort und Sicherheit III

Der Weg zu einem A-Rating bei SSL-Labs ist steinig. Wie hier und da und dort schon geschrieben: Kompatibilität und Sicherheit lassen sich mit den folgenden Zeilen in der ssl.conf des Apache ganz ordentlich verwirklichen:

wenn man den Key richtig erstellt hat – z.B. damit:

Was SSL Labs dann noch zu mockieren hatte, war die Key Chain, die unsichere Elemente enthielt und zum folgenden Rating führte:

1_kvfgeu

Die Keychain lässt sich jedoch einfach umbauen: Ein

holt die intermediären Zertifikate im richtigen Format an Bord. Und die folgenden Zeilen in der Apache default-ssl.conf

zusammen mit einem

schalten diese scharf. Dann erreicht man das folgende Rating bei SSL Labs:

2_kvfgeu

Hinweise und Links hier im StartSSL Forum.

In den Weihnachtsferien kommen dann die anderen Domains mit dickeren Keys dran. Bis dahin ist schlicht Land unter und außerdem muss ich bei StartSSL warten, bis das Zertifikat fast abgelaufen ist, will ich keinen revocation Prozess beginnen, der teuer ist.

Duplex mit LO und HL 5250DN

Vier Seiten später hab ich endlich rausgefunden, wie ich meinen Brother HL 5250-DN dazu bringe aus LibreOffice heraus Duplex zu drucken.

duplex1

Das Häkchen bei “Sortieren” darf drin bleiben.

Ein kontrollierender Blick auf die “Eigenschaften” des Druckers zeigt, ob Duplex aktiviert wurde.

duplex2

Long Edge ist der Standard und damit funktioniert es auch. Denn: Entscheidend ist die folgenden Einstellung für den Druck:

duplex3

Im Druckdialog von LibreOffice muss in der Registerkarte “Optionen” ein Haken bei “Einzelne Druckaufträge für sortierte Ausgabe erzeugen” gesetzt sein.

Dudle auf 14.04

Der Dienst Dudle ist datenschutzrechtlich eine saubere Alternative zu Doodle, das zwar in der Schweiz zu Hause ist, jedoch Google Analytics einsetzt und die Benutzer mit Werbung bewirft. Außerdem ist die Verwendung von Doodle für Beamte in Baden-Württemberg schlicht verboten.

Die Installation ist kein Zuckerschlecken, geht aber insgesamt dann doch eher freundlich als kompliziert über die Bühne. Das ganze Gefrickel lohnt nur dann, wenn man eine HTTPS Verschlüsselung für die eigenen Seiten schon am Laufen hat – wenn nicht, dann verwendet man besser den Dienst der TUD direkt.

Es kann durchaus sein, dass ich im folgenden ein paar Pakete zu viel an Bord hole – das mag dann bitte jeder selbst für sich prüfen. Außerdem kann es sein, dass einige Pakete nicht installiert wurden, weil diese auf meinem Zielsystem schon vorhanden waren. Anyway – so ging’s bei mir:

Bei mir kamen hierbei die Pakete ruby1.9.1-dev ruby-dev schon mit an Bord und auch die Symlinks von ruby auf ruby1.9.1 wurden eingerichtet.

Ein simples bzr branch https://dudle.inf.tu-dresden.de/ dudle bewirft den Benutzer mit Fehlermeldungen. So will es dann klappen:

Das Verzeichnis /var/www/dudle wird mittels des Befehls angelegt, gehört aber erst einmal root, was wir nicht wollen.

In die .htacces im Stammverzeichnis von Dudle sollte man bei der Nutzung von Ruby 1.9.1 (also auf einem 14.04 Server) hinzufügen:

Geschieht dies nicht, dann wirft Dudle Fehlermeldungen in die Apache error.log, die darauf hindeuten, dass Dudle seine Ruby Dateien nicht findet.

Wir holen uns noch die Sprachpakete für Dudle an Bord:

Die folgenden Schritte integrieren Dudle in den Webserver:

Dann die Sitekonfiguration des Apachen bearbeiten – das könnte je nach System z.B. in die folgende Datei sein: /etc/apache2/sites-available/default-ssl.conf

Nachdem die Voraussetzung nun geschaffen sind, Dudle zu installieren, kann der Compiler im Verzeichnis /var/www/dudle angeworfen werden:

In den hier auftauchenden Fehlermeldungen (eigentlich sollten keine mehr kommen – die obigen Schritte integrieren alles, was ich habe lernen müssen) kann man sehen, was Dudle noch fehlt. Zumindest so ungefähr. Meistens, so musste ich erfahren, hilft nur eine Suchmaschine weiter, weil die Ruby-Fehlermeldungen etwas kryptisch für mich waren.

Ging alles glatt – den Apachen neu starten:

Der Rest ist Anhübschungskram – z.B. durch Anpassung der Dateien im Verzeichnis dudle/css. Empfehlenswert ist das folgende Stylesheet:

Ich hab dann noch das Logo ausgetauscht, die Rechte wieder angepasst und beschlossen, dass nun erst einmal alles gut ist.

Dudle legt neue Abfragen im Stammverzeichnis /dudle/ unter jeweils recht kryptisch anmutenden Namen als Ordner an, die alle Umfragedaten (Benutzer, Passwörter derselben, Zeiten etc.) enthalten. Die Passwörter landen gehashed in .htdigest Dateien.

Meine Schule wäre versorgt – andere können den Dienst bei der TUD (Link siehe oben) oder auch gerne das Dudle auf dem Lehrerforbildungsserver nutzen:

https://lehrerfortbildung-bw.de/dudle/

SSH trouble

Schlichte Meldung meines Clients beim ersten Anmeldeversuch:

Mein erster Versuch war in .ssh/config mit einer Veränderung ServerAliveInterval und ServerAliveCountMax zum Erfolg zu kommen, aber als es mit

immer noch nicht klappen wollte, war auch mir klar, dass die Ursache an einer anderen Stelle zu suchen sein muss. Schließlich kam die Verbindung überhaupt nicht zustande. An den Alive-Werten zu spielen macht demnach keinen Sinn.

Die Ursache für das Verbindungsproblem ist, dass ssh zuerst jeden DSA/RSA identity file in .ssh/ durchprobiert, bevor es am Ende auf den default password authentication zurückfällt.

Wenn jedoch auf Serverseite der SSHD nach 5 Verbindungsversuchen (das scheint der default unter Ubuntu zu sein) dicht macht, lokal aber mehr als 5 ID Dateien vorhanden sind … läuft man vor die Wand. Die Lösung ist einfach: Man teilt SSH mit, dass man ohne ID Datei verbinden will:

und dann klappt es.

Atto, TinyMCE und Moodle 2.7.x

Mit der Schule bin ich gestern erst auf die Moodle 2.7.2er Reihe von 2.6.5 aus umgestiegen. Da etwas länger zu warten bringt am Ende weniger Bugs und Ärger. Abgesehen von einer Anpassung der Aufgabenformate ist mir aufgefallen, dass nun Atto als Default-Editor keinen Schalter für Emoticons mehr zeigte. Dieser lässt sich aber nachrüsten:

atto1

Unter /Plugins /Texteditoren /Texteditor Atto /Einstellungen findet man eine Liste der Editorenfunktionen und darunter ein Feld, in das man seine Ergänzungen eintragen kann oder über das man die Reihenfolge der Knöpfe verändert.

atto2

Ein emoticon = emoticon fügt Atto den wichtigsten Knopf im System wieder hinzu.

editoreninmoodle

Will man lieber gleich zum mächtigeren TinyMCE wechseln, dann schiebt man diesen unter /Texteditoren /Übersicht über Atto.

tinymce

Da ist dann der Emoticon-Schalter gleich wieder mit dabei.

Nebenwirkungen

TinyMCE verwendet DragMath als Formeleditor. Das bedeutet Java Plugins müssen im Browser aktiviert werden können (IcedTea). Atto nutzt hierfür MathJAX. Das klappt zwar ohne Java – dafür lädt sich dieser Formeleditor Code aus den USA nach und was dabei in die andere Richtung über den Atlantik geht, weiß wieder keiner.

Man hat demnach die Wahl zwischen Java und NSA. Super.

SSL, Apache, Komfort und Sicherheit II

scolis.de.2014.11

Kompatibilität und Sicherheit lassen sich mit den folgenden Zeilen in der ssl.conf des Apache ganz ordentlich verwirklichen:

Getötet werden damit die Browser IE6 und IE8 unter Windows XP sowie BingBot und YahooSlurp, die alle noch kein SNI können und deswegen auf Scolis sowieso auf die Schnauze fallen.

Ich denke, ich hab nun erst einmal einen ordentlichen Kompromiss gefunden.

Via | Beachte: Update des Beitrags!

Selemannsküche, Kolkloch und Klufthalle

IMG_20141102_150142

Selemannsküche

Von Wilflingen kommend und der L268 folgend findet man direkt am Waldrand einen Weg in ein Tal auf dessen rechter Talseite man einen Felsen findet, der wie Schweizer Käse aussieht.

https://www.openstreetmap.org/#map=16/48.1258/9.3385

Die Höhle(n) in diesem nennen sich Selemannsküche. Woher der Name kommt, muss ich noch recherchieren. Ein Fels mit sieben Löchern, die teilweise miteinander verbunden sind – so war die Beschreibung im Binder nicht, sonst hätte ich mich dort schon viel früher eingefunden.

IMG_20141102_144656

In unmittelbarer Nachbarschaft zur Selemannsküche befindet sich auch das Kolkloch – eine Höhle auf zwei Stockwerken, die über einen kleinen Kamin miteinander verbunden sind. Steht man in der unteren Höhle kann man den Kopf in der oberen haben. Ein Körper in zwei Höhlen – nett.

IMG_20141102_144910

Zu Recht nicht einmal erwähnt wird eine weitere, ca. 2m lange / kleine Klufthöhle auf dem Weg vom Kolkloch nach Unten zum Weg. Auch am Hand gegenüber der Selemannsküche hat es noch (mindestens) zwei derartige Kleinstlöcher, die zumindest für kleinere Kinder Möglichkeiten zum Schlufen bieten.

Klufthöhle

Folgt man dem Weg weiter talaufwärts findet man hinter der nächsten Kurve, rund 50m weiter, auf der linken Talseite eine weitere Höhle – die Klufthalle.

Klufthalle - gotisches Törle

Hinter einem hübschen, gotisch anmutendem Eingangstor befindet sich eine kleine Halle. Nach links geht ein Gang wieder nach Außen, nach rechts endet ein Gang entlang einer Kluft bald im Versturz.

Die Länge der Klufthalle ist im Binder, wie auch die Länge aller anderen Höhlen in diesem hübschen Tal, sehr optimistisch angegeben. Sehenswert sind die Karstformen hier aber auf jeden Fall.

IMG_20141102_143603

Schon ganz zu Beginn des Weges an der L268 findet man auf der linken Seite des Weges ein Gebiet, das ich abwechselnd als Höhlenruinen, Dolinen oder Steinbruch deuten wollte. Steinbruch trifft wohl am ehesten zu. Ein schöner Einstieg in einen kurzen Spaziergang zu all den anderen “Spielplätzen”.

Cubian X1

Die Installation von Cubian X1 mit Mate-Desktop ist gegenüber Cubian mit LXDE-Desktop [1,2] noch einmal vereinfacht worden, was vor allem auch daran liegt, dass a) eine menügeführte Konfiguration nach dem ersten Boot (cubian-config) vorhanden ist und b) Mate von Haus aus Interventionen des mausverwöhnten Benutzers erleichtert.

Configuration Editor_001

Ein paar Anmerkungen zur Konfiguration:

Wer die Fensterknöpfe lieber links haben will, kann sich diese mit Hilfe des dconf-editors dort hin legen.

Ein Autologin kann im Loginmanager SLiM unter /etc/slim.conf eingestellt werden. Die Datei ist so gut durchkommentiert, dass sich weitere Hinweise verbieten.

Mein Logitech K400r Keyboard mit Touchpad wurde wieder reibungslos erkannt, das nur nebenbei, als ich eine 102 Tasten-Tastatur einstellte.

Die Verwaltungssoftware ajenti habe ich – wie auch einen vorinstallierten apache, gleich gestoppt und deinstalliert. Ich will das lieber selbst in der Hand behalten.

Positiv anzumerken ist viel:

Z.B. dass Cubietruck nun die volle HD Auflösung des TVs über HDMI zu nutzen weiß. Das ist für Bilderfluten gut – für die Arbeit auf der Shell jedoch weniger. Hier muss man sich entscheiden, ob man über STRG + die Zeichengröße anpasst oder gleich einen größeren Font für das Terminal einstellt.

Oder dass der als Standardbrowser vorinstallierte Chromium so konfiguriert ist, dass man Flash-Filmchen abspielen kann. Nett – wenn auch auf dieser Geräteklasse eher ermüdend. Einen Klick auf “Vollbild” sollte man sich sparen.

GIMP und Libreoffice bleiben auch unter Cubian X1 Mate bedienbar und selbst Icedove oder Iceweasel kann man nutzen, wenn man an Add-ons spart. Bei Ausflügen ins Netz muss man sich jedoch gedulden und das Öffnen vieler Tabs sollte man sich ebenfalls sparen. Als Bürorechner kann ich einen Cubietruck also nicht empfehlen. Eine “richtige Lösung” (z.B. eine ZBox oder einen NUC mit kleiner SSD und 4GB RAM) kostet zwar mindestens doppelt so viel, aber funktioniert dafür auch reibungslos im Alltag.

Eine ganze Weile habe ich mich an einem zerschossenen CUPS abgearbeitet. Nachdem die Installation von cups-pdf fehlschlug und hierbei CUPS mit in den Abgrund riss fanden netstat und nmap zwar Port 631 von CUPS auf TCP und UDP belegt – aber der CUPS-Server war trotzdem nicht auf localhost im Browser zu erreichen. Bis ich mal auf die Idee kam, /etc/network/interfaces daraufhin zu überprüfen, ob überhaupt eine derartige Schnittstelle definiert ist … Nachdem dann also lo und eth0 der Verwaltung des Gnome network-manager entzogen waren lief CUPS brav im Browser. Der Networkmanager ist in /etc/NetworkManager/NetworkManager.conf auf “Mischbetrieb” vorkonfiguriert, so dass eine /etc/network/interfaces mit dem folgenden Inhalt reichte:

# Loopback Interface
auto lo
iface lo inet loopback

# Not managed by NWM
allow-hotplug eth0
iface eth0 inet dhcp

Sollte CUPS dann noch immer zicken, lohnt der Versuch, /etc/hosts auf das Vorhandensein einer Zeile 127.0.0.1 localhost hin zu checken (hier war bei mir nur der Hostname aus /etc/hostname zu finden) und in der /etc/cups/cupsd.conf versuchsweise das

Listen localhost:631

durch

Listen 127.0.0.1:631

zu ersetzen und dann im Browser dezidiert diese Adresse aufzurufen.

Zu sicher

Beachte: Update des Beitrags!

Nach den Anpassungen der Apache Configuration in Folge des Poodle Bugs erhielt ich zu Beginn der Woche eine Rückmeldung einer Vista Nutzerin aus dem Kollegium, dass sie nicht mehr auf unsere Seiten zugreifen könne. Ich nahm das zuerst nicht weiter ernst, tippte auf lokale Probleme. Dann stellte ich unter Cubian X fest, dass Chromium nur noch einen 113er Fehler anzeigte, der für

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

steht und Iceweasel merkte an

ssl_error_no_cypher_overlap

Diverse Browser unter Android 4.0.3 (Lightning, Tint Browser, Zirco) wollten ebenfalls nicht mehr meine eigenen HTTPS verschlüsselten Seiten aufrufen. Während unter Android der Firefox noch einsetzbar war, so ging auf meinem Spielkistchen mit Cubian X gar nichts mehr. Die Software auf diesem System lässt sich nicht einfach aktualisieren – meine Apache-Konfiguration war für das Ding schlicht “zu sicher”.

Ich kam dann irgendwann auf Idee, die unterstützten Cipher Suiten miteinander zu vergleichen. Das geht direkt bei Qualys SSL Labs – oder für den Browser auch hier: https://cc.dcsec.uni-hannover.de/check . Die Schuppen fielen dann endlich von den Augen.

Sichere Konfiguration

Eintrag:

SSLProtocol all -SSLv2 -SSLv3

SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:!LOW:!SSLv2:!SSLv3:!EXPORT

Ergebnis unter Debian:

kvfgnet_debianssl

Unterstützte Browsersuiten:

Handshake Simulation
Android 2.3.7   No SNI 2 Protocol or cipher suite mismatch Fail3
Android 4.0.4 Protocol or cipher suite mismatch Fail3
Android 4.1.1 Protocol or cipher suite mismatch Fail3
Android 4.2.2 Protocol or cipher suite mismatch Fail3
Android 4.3 Protocol or cipher suite mismatch Fail3
Android 4.4.2 TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)   FS 256
BingBot Dec 2013   No SNI 2 Protocol or cipher suite mismatch Fail3
BingPreview Jun 2014 Protocol or cipher suite mismatch Fail3
Chrome 37 / OS X  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)   FS 128
Firefox 24.2.0 ESR / Win 7 Protocol or cipher suite mismatch Fail3
Firefox 32 / OS X  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)   FS 128
Googlebot Jun 2014 Protocol or cipher suite mismatch Fail3
IE 6 / XP   No FS 1   No SNI 2 Protocol or cipher suite mismatch Fail3
IE 7 / Vista Protocol or cipher suite mismatch Fail3
IE 8 / XP   No FS 1   No SNI 2 Protocol or cipher suite mismatch Fail3
IE 8-10 / Win 7  R Protocol or cipher suite mismatch Fail3
IE 11 / Win 7  R TLS 1.2 TLS_RSA_WITH_AES_128_CBC_SHA256 (0x3c)   No FS 128
IE 11 / Win 8.1  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   FS 256
IE Mobile 10 / Win Phone 8.0 Protocol or cipher suite mismatch Fail3
IE Mobile 11 / Win Phone 8.1 TLS 1.2 TLS_RSA_WITH_AES_128_CBC_SHA256 (0x3c)   No FS 128
Java 6u45   No SNI 2 Protocol or cipher suite mismatch Fail3
Java 7u25 Protocol or cipher suite mismatch Fail3
Java 8b132 TLS 1.2 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)   FS 128
OpenSSL 0.9.8y Protocol or cipher suite mismatch Fail3
OpenSSL 1.0.1h TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)   FS 256
Safari 5.1.9 / OS X 10.6.8 Protocol or cipher suite mismatch Fail3
Safari 6 / iOS 6.0.1  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   FS 256
Safari 7 / iOS 7.1  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   FS 256
Safari 8 / iOS 8.0 Beta  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   FS 256
Safari 6.0.4 / OS X 10.8.4  R Protocol or cipher suite mismatch Fail3
Safari 7 / OS X 10.9  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   FS 256
Yahoo Slurp Jun 2014   No SNI 2 TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)   FS 256
YandexBot Sep 2014 TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)   FS 256
(1) Clients that do not support Forward Secrecy (FS) are excluded when determining support for it.
(2) No support for virtual SSL hosting (SNI). Connects to the default site if the server uses SNI.
(3) Only first connection attempt simulated. Browsers tend to retry with a lower protocol version.
(R) Denotes a reference browser or client, with which we expect better effective security.
(All) We use defaults, but some platforms do not use their best protocols and features (e.g., Java 6 & 7, older IE).

Überarbeitete Konfiguration

Eintrag:

SSLProtocol all -SSLv2 -SSLv3

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

Ergebnis unter Debian:

debianssl

Unterstützte Browsersuiten:

Handshake Simulation
Android 2.3.7   No SNI 2 TLS 1.0 TLS_RSA_WITH_RC4_128_SHA (0x5)   No FS   RC4 128
Android 4.0.4 TLS 1.0 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)   FS 256
Android 4.1.1 TLS 1.0 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)   FS 256
Android 4.2.2 TLS 1.0 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)   FS 256
Android 4.3 TLS 1.0 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)   FS 256
Android 4.4.2 TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)   FS 256
BingBot Dec 2013   No SNI 2 TLS 1.0 TLS_RSA_WITH_AES_128_CBC_SHA (0x2f)   No FS 128
BingPreview Jun 2014 TLS 1.0 TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x39)   FS 256
Chrome 37 / OS X  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)   FS 128
Firefox 24.2.0 ESR / Win 7 TLS 1.0 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)   FS 256
Firefox 32 / OS X  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)   FS 128
Googlebot Jun 2014 TLS 1.0 TLS_ECDHE_RSA_WITH_RC4_128_SHA (0xc011)   FS   RC4 128
IE 6 / XP   No FS 1   No SNI 2 Protocol or cipher suite mismatch Fail3
IE 7 / Vista TLS 1.0 TLS_RSA_WITH_AES_128_CBC_SHA (0x2f)   No FS 128
IE 8 / XP   No FS 1   No SNI 2 TLS 1.0 TLS_RSA_WITH_RC4_128_SHA (0x5)   No FS   RC4 128
IE 8-10 / Win 7  R TLS 1.0 TLS_RSA_WITH_AES_128_CBC_SHA (0x2f)   No FS 128
IE 11 / Win 7  R TLS 1.2 TLS_RSA_WITH_AES_128_CBC_SHA256 (0x3c)   No FS 128
IE 11 / Win 8.1  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   FS 256
IE Mobile 10 / Win Phone 8.0 TLS 1.0 TLS_RSA_WITH_AES_128_CBC_SHA (0x2f)   No FS 128
IE Mobile 11 / Win Phone 8.1 TLS 1.2 TLS_RSA_WITH_AES_128_CBC_SHA256 (0x3c)   No FS 128
Java 6u45   No SNI 2 TLS 1.0 TLS_RSA_WITH_RC4_128_SHA (0x5)   No FS   RC4 128
Java 7u25 TLS 1.0 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)   FS 128
Java 8b132 TLS 1.2 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)   FS 128
OpenSSL 0.9.8y TLS 1.0 TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x39)   FS 256
OpenSSL 1.0.1h TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)   FS 256
Safari 5.1.9 / OS X 10.6.8 TLS 1.0 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)   FS 128
Safari 6 / iOS 6.0.1  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   FS 256
Safari 7 / iOS 7.1  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   FS 256
Safari 8 / iOS 8.0 Beta  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   FS 256
Safari 6.0.4 / OS X 10.8.4  R TLS 1.0 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)   FS 256
Safari 7 / OS X 10.9  R TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   FS 256
Yahoo Slurp Jun 2014   No SNI 2 TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)   FS 256
YandexBot Sep 2014 TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)   FS 256
(1) Clients that do not support Forward Secrecy (FS) are excluded when determining support for it.
(2) No support for virtual SSL hosting (SNI). Connects to the default site if the server uses SNI.
(3) Only first connection attempt simulated. Browsers tend to retry with a lower protocol version.
(R) Denotes a reference browser or client, with which we expect better effective security.
(All) We use defaults, but some platforms do not use their best protocols and features (e.g., Java 6 & 7, older IE).