Hallo,
mein Weihnachtsgeschenk an die VDR-Community ist eine Erweiterung von VDR Admin (Version 0.96) um eine TAN-Abfrage, um die Sicherheit zu verbessern.
Ist natürlich nur relevant, wenn man vom Internet auf den VDR zugreifen will.
Folgende Features habe ich eingebaut:
- TAN-Abfrage
- max. Anzahl aufeinanderfolgender Fehlversuche
- Lebenszeit einer TAN
Bitte unbedingt erst die Datei LIESMICH_TAN lesen!
Zweck der Erweiterung:
Die Sicherheit soll verbessert werden. Bei der Bedienung von VDR Admin werden Benutzername und Paßwort im Klartext übertragen. Aus diesem Grund verzichten wohl die meisten auf das verlockende Feature, den eigenen VDR aus dem Internet zu kontaktieren bzw. dies freizuschalten. Durch die Abfrage einer zusätzlichen TAN mit begrenzter Lebensdauer wird potentiellen Angreifern das Leben erschwert. Denkbare Angriffsszenarien wären Keylogger, Abhören des Netzverkehrs, Brutforce-Attacken, ...
Voraussetzungen:
Die Erweiterung basiert auf der Version 0.96 von VDR Admin. Andere Versionen wurden nicht getestet. Die Kenntnis von VDR Admin wird vorausgesetzt.
Installation und Konfiguration:
Falls noch nicht erfolgt, VDR Admin 0.96 installieren. Danach wird nur der Webserver vdradmind.pl ausgetauscht und eine neue Konfigurationsdatei erzeugt.
[1] vdradmind.pl beenden
[2] Sichern des Webserevers vdradmind.pl und der Konfigurationsdatei vdradmind.conf
[3] Ersetzen von vdradmind.pl
[4] "vdradmind.pl -c", generiert eine neue Konfigurationsdatei
[5] "vdradmind.pl -tc", generiert eine neue TAN-Liste
Es entstehen die Dateien "tan.md5" and "tan_print_and_delete.txt". Nur die erste wird vom Webserver benötigt, die zweite ist Ihre TAN-Liste. Drucken Sie die TAN-Liste aus und löschen Sie danach die Datei.
[6] vdradmind.pl starten
Das ist alles.
Funktion und Details:
Die folgenden zusätzlichen Einträge in der Datei vdradmind.conf ändern das bekannte Verhalten von VDR Admin.
-
AUTH=[pwd|tan]
pwd - Benutzer und Paßwort wie bisher
tan - Benutzer und Paßwort und TAN werden abgefragt
Paßwort und TAN werden im Paßwortfeld, getrennt durch ":", erwartet -
MAX_BAD_LOGONS=[0|N]
0 - keine Überprüfung von Fehlversuchen
N - maximal N aufeinanderfolgende Fehlversuche erlaubt
Überschreiten des Limits beendet den Webserver dauerhaft. Ein Neustart ist nur möglich, nach Löschen der Datei bad_logons.cnt, in der die Fehlversuche festgehalten werden. -
MAX_TAN_INACTIVITY=[N]
N - maximale inaktive Zeit in Sekunden einer Session
Bei Überschreiten wird die TAN ungültig und eine neue TAN wird verlangt. -
MAX_TAN_LIFETIME=[N]
N - absolute Lebenszeit in Sekunden einer TAN
Bei Überschreiten wird die TAN ungültig und eine neue TAN wird verlangt.
Bedienung:
Beachten Sie bei der Paßwortabfrage den Text in der Aufforderung. Hier wird mitgeteilt, welche TAN erwartet wird und wieviele TAN's noch verfügbar sind. Bei erschöpftem Vorrat an TAN's sollte rechtzeitig mit "vdradmind.pl -tc", eine neue Liste generiert werden.
Paßwort und TAN im Passwortfeld, durch ":" getrennt eingeben PWD:TAN
Tipps und Probleme:
- Firefox hat einen Bug. Bei einer neuen Abfrage einer TAN, ignoriert er die neu eingegebene und sendet die erste wieder. Startet man Firefox komplett neu, funktioniert es wieder, solange bis eine neue TAN gebraucht wird. Internet Explorer zeigt dieses Verhalten nicht.
- vdradmind.pl arbeitet mit 3 zusätzlichen Dateien (tan.md5, tan_print_and_delete.txt, bad_logons.cnt) und muß in diese auch schreiben können. Achten Sie deshalb auf die Rechte!
Abschließend:
Für manch einen ist alles folgende bereits bekannt, trotzdem möchte ich darauf hinweisen, daß Nichts auf dieser Welt Sicher ist. Die ganze Komunikation erfolgt immer noch im Klartext. Dies kann man natürlich mit einem ssh-Tunnel umgehen, allerdings muß dann auf dem "fremden" Rechner mitgebrachte Software ausgeführt werden, was meist nicht möglich ist und die Gefahr eines Keyloggers bestünde weiterhin. Der Webserver ist in Perl (und nicht von mir) geschrieben und von ihm und Perl selber hängt die Sicherheit natürlich auch ab.
Noch ein paar Empfehlungen zum eigenen VDR: vdradmind.pl mit eingeschränktem Benutzer ausführen (nicht als root), Port im fünfstelligen Bereich verwenden. Ganz wichtig, nur diesen einen Port nach draußen öffnen bzw. vom Router Pakete für diesen Port an VDR Admin forwarden.
Einen Wunsch hätte ich noch: vielleicht übersetzt jemand (der besser als ich Englisch kann) die Datei LIESMICH_TAN nach README_TAN, damit auch englischsprachige Benutzer eine Anleitung erhalten.
@admin des Forums: Ist dies die passende Stelle? Ich habe keine Homepage, um das Skript da zur Verfügung zu stellen. Vielleicht an die passendere Stelle schieben.
Grüsse,
Walter