Suche
Kategorien
Getaggte Artikel
Impressum
Max-Planck-Ring 6d
98693 Ilmenau
Tel./Fax: +49 3677 691929
info@fem.tu-ilmenau.de
www.fem.tu-ilmenau.de
Vertretungs-
berechtigter Vorstand:
Vorsitzender:
Adrian Schollmeyer
Stellvertretender Vorsitzender:
Robin Lehmann
Schatzmeisterin:
Anna Brede
Stellvertretender Schatzmeister:
Maximilian Klook
Registergericht:
Amtsgericht Ilmenau
Registernummer: 120483
Datenschutzerklärung
Verwaltung des Blogs
Tuesday, 3. November 2015
HowTo enable WiFi roaming with hostapd and VLANs
Roaming involves the following steps:
- Scanning for an other reachable AccessPoint (Probe)
- Disconnect from the old AP
- Changing the WiFi-channel
- Authentication and Association
- WPA-EAP-Handshake (only for 802.1X)
- 4-way WPA handshake
- Connection is ready again
These steps need time and the client is disconnected until he completed them, but there are some options available to speed things up:
"HowTo enable WiFi roaming with hostapd and VLANs" vollständig lesen
Friday, 30. October 2015
Accepting expired client certificates with apache 2.4
The solution was to install SSL client certificates, so clients could reliably be identified even across different IPv6 privacy extension addresses. These client certificates were automatically generated and signed by a local CA using HTML <keygen> and PHPseclib and only served to identify the browser instance.
Now these client certificates started to expire.
As our Firefox users had not cleared the "Remember this decision" flag when choosing their single client certificate to connect with, Firefox 41 continued to connect using an expired certificate. The "auto select client certificate" in Firefox does not do any better, thought. When the server rejects an SSL client certificate with ssl_error_expired_cert_alert, Firefox shows an error message to the user but does not offer him to reselect an other client certificate. So users started to puzzle about how to fix this error. Even installing a renewed client certificate (same subject, issuer and public key) ahead of expiration into Firefox 41 does not help, as that does not remove the old certificate which is still chosen for connecting with.
So the only place to fix this is the server. On server side, the list of accepting CAs could be changed. Though Firefox code looks like in "auto select client certificate" mode this would work, the "use remembered client certificate" lacks any client certificate issuer check. So this does not look promising (see ClientAuthDataRunnable::RunOnTargetThread), though it has not been tested. Next, trying to configure apache 2.4 (Debian Jessie) to accept expired client certificates (while still requesting - at least optionally - one) turns out to be impossibly. There just is no such option. Thought, patching and recompiling apache2 was to be avoided as the server should still be able to install Debian security updates without much manual intervention.
After digging through the source of apache 2.4 mod_ssl, it appears that it is making heavy use of OpenSSL certificate validation routines to check client certificates - including the expiration checks (in contrast to https proxy server certificate validation, where expiration time is checked in mod_ssl itself). Specifically, it uses ssl_callback_SSLVerify with SSL_set_verify to ignore some verification errors already.
LD_PRELOAD is a mechanism to load a shared library early during linking (starting) of an applicaton (like apache2). The linker will the prefer the functions provided by LD_PRELOAD libraries over those libraries indicated by the application itself - so it can be used to hook into library function calls. By writing a specifically crafted LD_PRELOAD library, SSL_set_verify can be hooked and the callback replaced. The new callback will filter out any X509_V_ERR_CERT_HAS_EXPIRED error before passing back control to the original ssl_callback_SSLVerify callback.
LD_PRELOAD can the be configured in /etc/apache2/envvars (used by apache2ctl and thus Debian init scripts) to load the new library.
# mysslverify.c
// gcc -Wall -D_GNU_SOURCE -fPIC -DPIC -shared -ldl -o mysslverify.so mysslverify.c
// use with LD_PRELOAD=/.../mysslverify.so
#include <openssl/ssl.h>
#include <dlfcn.h>
void (*orig_SSL_CTX_set_verify)(SSL_CTX *ctx, int mode, int (*verify_callback)(int, X509_STORE_CTX *)) = NULL;
void (*orig_SSL_set_verify)(SSL *s, int mode, int (*verify_callback)(int, X509_STORE_CTX *)) = NULL;
int (*orig_verify_callback)(int, X509_STORE_CTX *) = NULL;
int verify_callback(int ok, X509_STORE_CTX *ctx) {
if (!ok && X509_STORE_CTX_get_error(ctx) == X509_V_ERR_CERT_HAS_EXPIRED) {
X509_STORE_CTX_set_error(ctx, X509_V_OK);
ok = !ok;
}
return orig_verify_callback(ok, ctx);
}
void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, int (*cb)(int, X509_STORE_CTX *)) {
if (orig_verify_callback == NULL) orig_verify_callback = cb;
if (cb != NULL && cb == orig_verify_callback) cb = verify_callback;
if (!orig_SSL_CTX_set_verify) orig_SSL_CTX_set_verify = dlsym(RTLD_NEXT, "SSL_CTX_set_verify");
orig_SSL_CTX_set_verify(ctx, mode, cb);
}
void SSL_set_verify(SSL *s, int mode, int (*cb)(int, X509_STORE_CTX *)) {
if (orig_verify_callback == NULL) orig_verify_callback = cb;
if (cb != NULL && cb == orig_verify_callback) cb = verify_callback;
if (!orig_SSL_set_verify) orig_SSL_set_verify = dlsym(RTLD_NEXT, "SSL_set_verify");
orig_SSL_set_verify(s, mode, cb);
}
Sunday, 26. April 2015
Neuer Backup-Server für die FeM
Noch ein paar Daten und Fakten zum neuen System:
CPU: Intel Xeon E3-1231 v3
RAM: 16 GiB ECC DDR3
Betriebssystem-HDD: 2x 160 GB (gespiegelt)
Daten-HDD: 6x 2 TB (RAIDZ2)
Netto-Speicherkapazität: 7 TB
Betriebsystem: FreeBSD 10.1
Admins: Bammes, Michael
Wednesday, 4. March 2015
Zuse-Uplink-Migration am 24.02.2015
Pünktlich zu Heiligabend am 24.12.2014 war unser Switch im Zuse-NSP (Cisco WS-C3750G-24) ausgefallen. Dieser stellte den Uplink für alle vom Internet aus erreichbaren FeM-Dienste (Websites, E-Mail, Jabber, ...) zur Verfügung, welche damit nicht erreichbar waren. Bedingt durch die Feiertage konnten wir erst am 29.12. den defekten Switch durch eine spontane Leihgabe des Rechenzentrums ersetzen. Für uns ein Grund mehr, die schon länger fällige Migration in einen anderen Netzbereich des RZs anzugehen.
Am 24.02. um 13:00 wurde dann der Leih-Switch wieder ausgebaut und an das Rechenzentrum zurückgegeben. Die Server im Zuse-NSP wurden umgepatcht und stecken nun direkt auf einer Linecard eines Cisco 4500 des RZs. Dadurch steigt auch die Geschwindigkeit der Anbindung unserer Server von 1 Gigabit auf 2x10 Gigabit. Zeitgleich mussten auch im Medienlabor 2 einige Server, die IP-Addressen aus demselben Subnetz besitzen, migriert werden. Um 13:28 waren die Dienste im Großen und Ganzen wieder verfügbar, und kurz darauf waren auch alle verbleibenden Ruckler beseitigt.
Beteiligte: Bammes, Texec, Pegro, Rafi, Meineeiner, Michael
Hier stecken die Server noch auf dem geliehenen Switch... | Umpatchen auf das Patchpanel. | Ohne Plan is nix... (Bammes und Texec) | Männer, die auf Server starren... (Pegro, Meineeiner, Bammes) |
Monday, 1. December 2014
Goodbye Cisco - Der Auswanderer
Cisco-Umzug 24./25. November 2014
In der Nacht vom Montag den 24.11.14 auf Dienstag den 25.11.14 wurde der Kernrouter des
FeM-Netzes aus dem Block M in den Block H umgezogen.
Hintergrund: Beweggrund für den (temporären) Umzug ist der geplante
Einbau eines Fahrstuhls in den Block M, bei welchem die Wand, neben der der Cisco bislang stand,
durchbrochen werden muss. Um nun die empfindliche Netzwerktechnik diese Bauarbeiten
unbeschadet überstehen zu lassen, ist diese nun vorübergehend im H-Betriebsraum untergebracht
(genau genommen "übergebracht", da er nun über den sich dort befindenden
Servern hängt).
Der eigentliche Umzug:
Die FeM-Mitglieder wurden zuvor per E-Mail darauf hingewiesen, dass es in der Nacht von Montag auf Dienstag
ab 00:00 Uhr zu einem Netzausfall kommen würde, der sich auf einen
Zeitraum von ca. 3-4 Stunden erstreckt.
Gegen
22:40 trudelten so langsam alle Helfer im FeM-Office ein. Die üblichen
Verdächtigen waren schon fleißig am Werkzeug zusammensuchen,Doku ausdrucken etc..
Ziemlich genau um 23:00 Uhr trafen wir am Block M ein, der uns, dank des zuvor informierten Wachschutzes, offen stand.
Flib und hebbet begannen einige Block - Cisco Steckverbindungen zu dokumentieren, um später Zeit zu sparen. Die
günstige Gelegenheit, das Campusnetz auseinander zu nehmen wurde auch
gleich dazu genutzt, um diverse Strecken auf ihre 10GE-Fähigkeit zu
testen. Hierzu bereiteten Gerbi, Rafael und Meineeiner unter der
Anleitung von Pegro zwei HP 3800 Switches als "Paketbeschleuniger"[0] vor, um die tatsächlich vorhandene
Bandbreite zu testen und sich nicht nur auf das Aufleuchten der Link-LED zu verlassen.
Als das eigentliche Abpatchen begann, zeigte die Uhr gerade 23:57 Uhr.
Parallel dazu wurden die restlichen Steckverbindungen dokumentiert und die Patchkabel fein säuberlich aufgerollt.
Einer der beiden 38er Switche war bereits in Position gebracht und der zweite wurde um 00:02 von
Pegro, Rafael und Anton in den K-Betriebsraum verfrachtet.
Unterdessen
kümmerte sich Gerbi um das Verkabeln zweier Laptops, die als Paketquelle und -senke für die 10GE-Tests herhalten sollten. Um
exakt 00:08 Uhr ging der Uplink down und etwa 10 Minuten später wird
der Cisco mithilfe von Stefan (lost_sync) und Thorsten (Aaaarrrggh) zum
Block H gefahren (Achtung Gefahrensituation). Dort angekommen fiel auf,
dass der BR-Schlüssel vergessen wurde und Meineeiner durfte noch einmal
zurücklaufen und ihn holen.
00:41
Uhr war die BR-Tür dann endlich offen und Mank kommentiert: "Staubig
hier", woraufhin ihm lost_sync, auf den Feuerlöscher deutend, eine CO2-Party offerierte....
Der Cisco wurde anschließend in einer dafür vorgesehen Schale
in das Rack geschraubt. Dabei fiel auf, dass eben jene Schale nicht für
den Schrank im H-BR geeignet ist, da der Cisco in ihr zu stark auf den
darunterliegenden Servern auflag. Zum Glück zauberte Keksi aus dem
Nichts (niemand möchte wissen woher genau ) eine passende 1HE Platte,
die wie gemacht schien, um einen Cisco in einem Serverschrank zu fixieren.
Die Serverschranktür musste jedoch ausgebaut werden, da das Rack zu
weit vorne saß und man deshalb beim Schließen der Tür die Glaskabel
beschädigt würden. In
der Zwischenzeit haben hebbet und fabian die nötigen Patches im Haus M
gesteckt. Hebbet zog danach weiter in den L und patchte dort fröhlich
vor sich hin.
Schlag 01:04 war der zweite Versuch den Cisco einzubauen erfolgreich, dann begannen hebbet und texec
damit die Glaskabel auf den Cisco zu patchen, während meineeiner und phite in den M liefen,
um die übrigen Patchkabel zu organisieren.
Gegen 01:49 Uhr waren die Uplinks der einzelnen Blöcken gesteckt,
womit das Netz auf Nutzerseite wieder funktionsfähig war.
Um 02.57 Uhr und später noch einmal um 03.25 Uhr mussten die WLAN-APs
einzeln neu wieder aktiviert werden.
Das Sorgenkind war bis zuletzt war der Link Richtung ML2.
Dieser konnte erst nachmittags von Meineeiner und Pegro gefixt werden.
Friday, 17. October 2014
FeM-WLAN Ausbauplanung
Aktuell ist Haus P vollständig, im Haus I sind noch 2, im Haus H noch 4 und im Haus K noch 23 AccessPoints zu installieren; diese sind auch als Nächstes für den Ausbau eingeplant.
Voraussetzung für den Ausbau mit FeM-WLAN sind freie LAN-Kabel und die Unterstützung von Strom-über-LAN (POE). Im Haus A, C, D, E, Q, CJD ist POE verfügbar, allerdings fehlen noch Kabel. Im Haus B, L und N sind Kabel verfügbar, aber noch kein POE - was sich jedoch nachrüsten ließe.
Daneben gibt es an ausgewählten Standorten (beispw. in den Clubs) bereits jetzt FeM-WLAN zu empfangen.
Wenn du also Interesse hast, den Ausbau beispw. in deinem Block zu beschleunigen, dann komm doch einfach mal vorbei.
Donnerstags in ungeraden Wochen um 20:30 Uhr im Haus L, Eingang 6d, im Keller.
Tuesday, 12. August 2014
HTML5 WLAN-Speedtest
"HTML5 WLAN-Speedtest" vollständig lesen
Wednesday, 7. May 2014
FeM-WLAN Ausbau
Der WLAN-Ausbau auf dem Campus schreitet voran. Nach und nach werden die AccessPoints geliefert, die Software installiert und die Geräte verbaut.
Dafür sind wir auf eure Mithilfe angewiesen, da die AccessPoints in den Fluren der WGs installiert werden sollen! Wir werden euch daher in den kommenden Zeit bei Bedarf persönlich ansprechen oder anschreiben, sofern in eurer WG ein AccessPoint installiert werden soll.
Derzeit ist das Haus I an der Reihe. Außerdem gibt es in den Studentenclubs, im Keller des Haus A, im Interclub, im Haus P, im FeM-Office sowie bei einigen Administratoren bereits FeM-WLAN.
Thursday, 27. March 2014
Absicherung von Sitzungen mit HTTPS Client Zertifikaten
Kann ein Angreifer ein solches Ausspionieren oder erraten, kann er oft die gesamte Sitzung des eingeloggten Nutzers übernehmen und mit seinen Rechten die Webanwendung / Webseite nutzen.
Derartige Angriffe sind in der Vergangenheiten manigfaltig dokumentiert worden. Ein erster Schritt zum Schutz der Sitzungscookies ist die Nutzung von HTTPS.
Die Nutzung von HTTPS reicht jedoch nicht in allen Fällen aus, wie die BEAST, CRIME und BREACH Angriffe zeigen.
"Absicherung von Sitzungen mit HTTPS Client Zertifikaten" vollständig lesen
Thursday, 13. March 2014
802.1X Authentifizierung mit dynamischen RADIUS-VLANs per LAN
Bei der FeM bespielsweise an den APs für Veranstaltungsstreaming.
Die dafür notwendigen Änderungen am Linux-Kernel, an Bibliotheken und am hostapd finden sich nun auf http://git.fem.tu-ilmenau.de
- libnl: http://git.fem.tu-ilmenau.de/?p=fem-wlan.git;a=blob;f=package/libs/libnl/patches/0001-macvlan-add-support-for-source-mode.patch;h=4572e10f54bf809bdd3659bcda220d81dfbff63e;hb=6400346de8c49e2b45c6acaa2534f972921f75b9
- iproute2: http://git.fem.tu-ilmenau.de/?p=fem-wlan.git;a=blob;f=package/network/utils/iproute2/patches/999-iproute2-macvlan-add-source-mode.patch;h=0abcb39925efa12485fe0df2b5535eebbf6ab89c;hb=6400346de8c49e2b45c6acaa2534f972921f75b9
- linux kernel: http://git.fem.tu-ilmenau.de/?p=fem-wlan.git;a=blob;f=target/linux/generic/patches-3.10/998-add-macvlan-source-mode.diff;h=3862d393f19fd1b5e342024b8f15d7ca4bf9c0d2;hb=6400346de8c49e2b45c6acaa2534f972921f75b9
- hostapd: http://git.fem.tu-ilmenau.de/?p=fem-wlan.git;a=blob;f=package/network/services/hostapd/patches/905-add-wireng-vlan-driver.diff;h=d34519710e069eff9e86f3a4abda63f12217356f;hb=2ba3eff2d9ed3e573055bf8b1835b0da9265e7d1
Einrichtung im hostapd:
interface=eth2
driver=wired-ng
ieee8021x=1
# RADIUS
auth_server_addr=1.2.3.4
auth_server_shared_secret=MySharedPasswd
# VLAN
dynamic_vlan=2
vlan_tagged_interface=vpnuplink
vlan_bridge=brvlan
Die Deauthentifizierung erfolgt bei timeout oder wenn der Port offline geht.