Fritz!Box Oberfläche durch eigenes Zertifikat absichern

Achtung! Dieser Artikel ist älter als ein Jahr. Der Inhalt ist möglicherweise nicht mehr aktuell!

Meine Fritz!Box strahlt zurzeit für die Wohnung unter mir ein WLAN Netzwerk aus. In diesem Netzwerk befindet sich eigentlich nur die WAN IP meiner Firewall. Hinter der Firewall beginnt erst mein gesichertes Netzwerk.

In der Wohnung unter mir wohnt für zwei Monate ein asiatisches Pärchen, die aktuell kein Internet haben. Deshalb haben sie mich gefragt, ob sie mein WLAN für die Zeit mitbenutzen dürfen. Da ich diese nicht in mein gesichertes Netzwerk lassen wollte, habe ich den Adressraum zwischen Fritz!Box und Firewall erweitert um Platz für die Untermieter zu schaffen.

Die Weboberfläche der Fritz!Box ist bei mir mit einem Passwort gesichert. Durch fehlende Verschlüsselung könnte aber jeder mit einfachsten Mitteln sich als Fritz!Box ausgeben und mein Passwort mitschneiden. Das wäre ungünstig, da ich dieses Passwort öfters verwende. Jaja, sollte man nicht machen, ist aber so.

Ich suchte also eine Möglichkeit meine Gegenstelle zu authentifizieren. Schön ist, dass die Fritz!Box den Einsatz eines eigenen SSL/TLS Zertifikats erlaubt.

Privater Schlüssel und das Zertifikat

Als erstes braucht man natürlich einen privaten RSA Schlüssel und ein passendes Zertifikat. Die Windows User müssen sich das Wissen selber ergoogeln. Die Linux-User haben es jetzt einfach, da sie einfach OpenSSL verwenden können:

:~$ openssl genrsa -out private.pem 2048
:~$ openssl req -new -key private.pem -out request.pem -sha256

Bei der Eingabe muss man aufpassen: Wenn man nach dem „Common Name“ gefragt wird muss man die Adresse der Fritz!Box eingeben. In meinem Fall ist das zum Beispiel 192.168.0.1.

Den daraus resultierenden Certificate Signing Request lässt man nun von einer CA unterschreiben. Sollte man aktuell keine CA zur Hand haben, kann man den Request auch selbst unterschreiben:

:~$ openssl req -x509 -new -key private.pem -out certificate.pem -sha256 -days 365

Danach ist das Zertifikat in der Datei certificate.pem gespeichert. Sollte man den Weg über die CA gehen muss man warten bis das Zertifikat zurück kommt. Damit die Fritz!Box den Schlüssel und das Zertifikat importieren kann muss man diese zuerst in einer Datei zusammen fassen:

:~$ cat private.pem certificate.pem > fritzbox.pem

Import in die Fritz!Box

Logge dich in der Fritz!Box ein und navigiere zu Internet -> Freigaben -> FRITZ!Box Dienste.

fritzbox_security_service

 

 

Diese Ansicht ist erst sichtbar, wenn man die Expertenansicht verwendet. Scrolle bis ganz nach unten bis zur Sektion „Zertifikate“:

fritzbox_security_services_certificates

 

Über den Button „Datei auswählen“ suchst du im Filesystem nach der Datei fritzbox.pem aus und klickst auf „Importieren“. Die Fritz!Box meldet dann, dass das Zertifikat importiert wurde. Nach einem Neustart wird das Zertifikat dann auch verwendet.

Eventuell muss man das neue Zertifikat noch als vertrauenswürdig im Browser akzeptieren.

Optional: HSTS Header manuell setzen

Durch „HTTP Strict Transport Security“ wird im Browser ein Vermerkt für SSL/TLS gesicherte Seiten gesetzt. Immer wenn man diese Seite dann aufruft wird automatisch Versucht eine gesicherte Verbindung aufzubauen. Das schützt vor Downgrade-Attacken.

Leider sendet die Fritz!Box keinen HSTS Header mit. Im Chrome kann man diesen aber manuell nachpflegen.

Öffne die URL chrome://net-internals/#hsts. Es taucht eine Maske auf, in der man die Einträge eintragen, löschen oder abfragen kann.

Trage bei „Add Domain“ im Textfeld Domain die Adresse der Fritz!Box ein und hake die beiden Checkboxen an.

chrome_hsts

Nach dem klicken auf „Add“ hat man den Eintrag manuell hinzugefügt.

Versucht man nun die Weboberfläche der Fritz!Box unverschlüsselt aufzurufen wird man automatisch auf die verschlüsselte Seite weitergeleitet.

Die Adresszeile sollte nun grün sein:

fritzbox_security_success

 

Further Reading


Du hast einen Kommentar, einen Wunsch oder eine Verbeserung? Schreib mir doch eine E-Mail! Die Infos dazu stehen hier.

🖇️ = Link zu anderer Webseite
🔐 = Webseite nutzt HTTPS (verschlüsselter Transportweg)
Zurück