Grüezi zammä, als kleiner Hobbyparanoiker bin ich auf der Suche nach einer Möglichkeit, einen möglichst sicheren Fernzugang zu einem heimischen Server herstellen zu können. Bisher verwende ich dazu OpenVPN. Der Server selber kann keine sonstigen Verbindungen aufbauen bzw. annehmen, da bis auf den einzelnen OpenVPN UDP-Port alle Ports in den IP-Sicherheitsrichtlinien gesperrt sind. Als Hardware-Sicherheit befindet sich zwischen Server und DSL-Router derzeit ein weiterer Router mit einer durchaus umfangreich konfigurierbaren Firewall (keine simplen NAT-Settings), die ebenfalls so eingestellt ist, dass sie nur Datentransfer auf diesem einen UDP-Port in beide Richtungen zulässt. Ich gehe einmal davon aus, dass dies schon ein gewisses Maß an Sicherheit bietet. Ist jemand anderer Meinung? Was mich nun aber noch stört ist die Tatsache, dass ich gelegentlich auch einmal von anderer Leute Rechner aus auf den Server möchte. Natürlich setzt dies voraus, dass dort OpenVPN installiert sowie OpenVPN Config-/Keyfile und Passwort vorhanden sein müssen – prinzipiell alles Dinge, die mittels Keylogger und sonstiger verstecker Tools unbemerkt in die Hände des Besitzers des Rechners fallen könnten, auch wenn ich sie nach dem Logout wieder entferne. Mir fehlt also ein Stück Hardware, das ich mit mir führen kann und ohne dessen Vorhandensein keine VPN-Verbindung möglich ist. Was mir nun vorschwebt ist folgendes: Der (nennen wir ihn mal) Firewall-Router wird ersetzt durch eine frei programmierbare Hardware mit zwei Ethernet-Ports (ich tendiere zum ATNGW100). Diese bekommt eine recht einfache Aufgabe: - Wenn ein Paket mit einer Anforderung für eine Challenge empfangen wurde, erzeuge eine Challenge und sende sie an den Absender zurück. - Wenn ein Paket mit einer Response empfangen wurde, vergleiche diese mit der zugehörigen Challenge. Bei Übereinstimmung füge IP des Absenders mit einem Timeout von X Sekunden in die Whitelist ein. - Wenn auf einem der Ethernet-Ports ein UDP-Paket mit der OpenVPN-Portnummer empfangen wurde und die externe IP auf der Whitelist steht, leite das Paket an den anderen Ethernet-Port weiter, ansonsten verwerfe das Paket. - Wenn Timeout eines Whitelist-Eintrags abgelaufen ist, lösche diesen Eintrag. Das zugehörige Gegenstück besteht aus einem selbstgebastelten USB-Stick, auf dem ein AVR mit AVRUSB-Firmware sein Dasein fristet. Dort sind die gleichen Algorithmen zur Challenge-/Response-Berechnung (sei es z.B. AES256) sowie die zugehörigen Keys vorhanden wie auch im ATNGW100. Außerdem ist noch ein kleines PC-Tool erforderlich, das die Vermittlung zwischen USB-Stick und entferntem ATNGW100 übernimmt. Vor dem eigentlichen Aufbau der OpenVPN-Verbindung muss nun also zusätzlich der USB-Stick vorhanden sein. Clientseitig fordert das PC-Tool nun eine Challenge beim entfernten ATNGW100 an. Nach deren Erhalt leitet es sie an den USB-Stick weiter. Dieser antwortet mit der passenden Response, die das Tool dann wiederum zum ATNGW100 sendet. Dies gibt daraufhin den OpenVPN-Port zum Server hin frei. Dieser Vorgang wiederholt sich alle X Sekunden, so dass spätestens X Sekunden nach Abziehen des USB-Sticks die VPN-Verbindung unterbrochen wird. Lange Rede, kurzer Sinn: Was haltet Ihr von dieser Idee? Sieht jemand Schwachstellen? Gibt es vielleicht schon etwas Ähnliches zu bescheidenen Preisen käuflich zu erwerben? Was ich bisher gefunden habe ist kostenmäßig eher nur von mittelgroßen Firmen tragbar. Vielen Dank! Tobias
und wenn du den stick verlierst? zufällig bei dem rechner mit dem keylogger?
Ich wär ja für Einweg-Kennwörter. Außerdem fällt mir grad kein Grund ein wieso ich von fremden Computern auf meinen (auch nicht ständig laufenden) Computern zugreifen muss. Dafür gibts Webspace/Dedicated Server
Bezueglich Sicherheit siehe auch http://de.wikipedia.org/wiki/Challenge-Response-Authentifizierung. Jenachdem wie gewieft die Person dessen Rechner du benutzt ist (bzw. wie interessiert sie daran ist deine Sicherheitsmaßnahmen zu umgehen) koennte deine Verbindung auch lokal im Netz redirected und somit gesnifft werden). Einwegpassen waeren bestimmt eine gute aber keinesfalls sichere Alternative (s. TCP/IP-Hijacking). Auch koennte von deinem USB-Stick invisible ein Image erzeugt werden. Das ist allerdings nur theoretischer Natur. Ich finde allerdings dass sich dein Vorhaben interessant anhoert. Die Sicherheit kann auch waerend der Projektphase oder nachhinein getestet und eventuell zusaetzliche Sicherheitsmechanismen implementiert werden. MfG Manuel Gebele
Das ganze klingt erstmal sehr sicher. Aber das heutzutage noch Angriffe von aussen kommen ist sehr unwahrscheinlich, selbst die MS-Firewall verhindert das zu 100% wenn man keine Ausnahmen definiert. Wenn jemand etwas von dir will, dann versucht er lücken im Browser/Plugin(java,flash,pdf) auszunutzen. Dabei hilft dir auch dein STück hardware nicht mehr. Man sollte also nicht versuchen die Sicherheit zu einseitig auszulegen.
Ja allerdings scheint Tobias vorallem auch gegen lokale (im Bezug auf den Rechner sowie das Netz) Angriffe gewappnet sein zu wollen. MfG Manuel Gebele
na ja, stromstecker rausziehen, dann kommt sicher keiner mehr rein.
ja aber auch keiner mehr raus :) MfG Manuel Gebele
> und wenn du den stick verlierst? zufällig bei dem rechner > mit dem keylogger? Dafür müsste dann schon eine ganze Kette ungünstiger Umstände eintreten. Hier sehe ich aber die Möglichkeit, dem Stick noch ein paar kleine Taster zu verpassen, über die nach dem Einstecken eine PIN eingegeben werden muss. > Außerdem fällt mir grad kein Grund ein wieso ich von > fremden Computern... Was nicht heißt, dass anderen nicht doch welche einfallen. > koennte deine Verbindung auch lokal im Netz redirected und > somit gesnifft werden Was gäbe es denn da noch zu sniffen? Die VPN-Daten sind verschlüsselt und die Challenges/Responses später nutzlos. > Auch koennte von deinem USB-Stick invisible ein Image erzeugt > werden. Würde es sich um einen einfachen Speicherstick handeln, könnte ich das nachvollziehen. Wie erwähnt sitzt aber ein Controller darauf, auf dessen Keys und Algorithmen der PC keinerlei Zugriff hat. > Wenn jemand etwas von dir will, dann versucht er lücken > im Browser/Plugin(java,flash,pdf) auszunutzen. Darum geht es ja in diesem Fall nicht. Der einzige Zugang, den der Server zur Außenwelt haben wird, ist über den VPN-Port. Er wird niemals einen reinen Internetzugang haben. Tobias
Hallo, aus einer ähnlichen Motivation heraus entwickle ich gerade ein ähnliches System im Rahmen meiner Technikerarbeit - Einmalpasswörter werden mit einem Mobiltelefon erzeugt und können benutzt werden, um sich unter anderem mit PAM zu authentisieren. PAM kann auch von OpenVPN verwendet werden, um Benutzer zu authentifizieren. Die Authentifizierung geschieht dann so, dass der Benutzer ein Programm auf seinem Mobiltelefon startet, welches das jeweils aktuelle Einmalpasswort für einen Zugang anzeigt. Jedes Passwort ist nur einmal und nur für 60 Sekunden gültig. Das Programm auf dem Telefon kann mit einem Passwort geschützt werden, auch gegen Keylogging auf dem Telefon habe ich mir etwas überlegt. PAM-Modul, Mobiltelefon-Programm und weitere Implementierungen sind bereits fertig, eigentlich arbeite ich nur noch an der Dokumentation. Falls dich das System interessiert, ist hier die vorläufige Dokumentation zu finden: http://folko.solhost.org/abschluss.pdf Bei Interesse kannst du dich gerne hier melden, dann schicke ich dir alles zu. Später wird es sowieso OpenSource. Gruß Folke
Zweiwegeloesung: Wenn von DEINEM Mobiltelefon mit Rufnummeruebermittlung ein bestimmter Abschluss angerufen wird, dann besteht fuer 2 Min. die Chance, sich einzuloggen. Gast3
Gast3 wrote: > Zweiwegeloesung: > Wenn von DEINEM Mobiltelefon mit Rufnummeruebermittlung ein bestimmter > Abschluss angerufen wird, dann besteht fuer 2 Min. die Chance, sich > einzuloggen. Alternativ gibts mindestens für Linux die Alternative "Port-Knocking", sprich: nur wenn bestimmte Ports in bestimmter Reihenfolge "angefragt" werden (müssen dazu nicht offen sein) schaltet der PC einen bestimmten Port frei. Aber das würde ja nicht verhindern das jemand auf dem fernen PC deine Tastatureingaben mitloggt.
Zur urspruenglichen Frage. 1)Ohne meinen notebook geh ich auch nicht ausm Haus. 2)Mein Server ist hinter einem Router, welcher durch noch einen Router von LAN getrennt ist.Der erste Router hat zB nur SSH offen. Der zweite Router ist zu. Was war das Problem nochmals ?
1234 wrote: > Zur urspruenglichen Frage. > 1)Ohne meinen notebook geh ich auch nicht ausm Haus. > 2)Mein Server ist hinter einem Router, welcher durch noch einen Router > von LAN getrennt ist.Der erste Router hat zB nur SSH offen. Der zweite > Router ist zu. > > Was war das Problem nochmals ? Das hieße ja das du den Server von außen gar nicht ansprechen kannst und nur der Server von sich aus Verbindungen aufbauen kann.
1234 (Gast) wird wohl folgendes laufen haben:
1 | WWW----Router1--+--Router2----Lan |
2 | | |
3 | Server |
Auch eine Lösung währe mit Zertifikaten zu arbeiten und nach einen erfolgreichen Tunnelaufbau das Client-Zertifikat für ungültig zu erklären. Ein 2. Login mit gleichem Zertifikat ist dann nicht mehr möglich. Und für den SSH zugang gibt es mittels PAM mindestens 2 OTP lösungen. Ansonsten kann ich 1234 (Gast) nur zustimmen: Es gibt Netbooks.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.