PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zugriff auf das Heimnetz von außen und sicheres Surfen unterwegs



int 80h
23.03.10, 22:43
Hallo zusammen. :)

Ich habe hier einen kleinen Homeserver stehen auf dem Debian läuft. Diesen möchte ich jetzt von außen erreichbar machen und habe dazu 2 Fragen.

1)Es läuft ein OpenSSH Server der bisher "nur" über Passwort geschützt war. Ich überlege mir aber ob das sicher genug ist. (Anderer Port, kein root-login, AllowUser $ICH werden genutzt.) Über iptables zusätzlich noch einen erlaubten IP-Bereich einschränken geht nicht, da ich ja von überall aus zugreifen möchte.
Ich hatte da dann an One Time Passwords gedacht. Wäre das eurer Meinung nach sicher? (Wenn ich davon ausgehe dass sowohl der PC sowie das fremde Netzwerk von bösen Jungs überwacht wird.)

2)Hauptsächlich will ich mir das Ganze einrichten um von fremden PCs (an der Hochschule, Internetcafés, bei Freunden, öffentliches WLAN ...) aus sicher zu surfen. Sprich es muss verschlüsselt sein. Was würdet ihr mir da empfehlen?
(Eventuell auch mit One Time Passwords umsetzbar.)

Vielen Dank für Hinweise und Tipps.

Freundliche Grüße,
int 80h

ThorstenHirsch
23.03.10, 23:14
1) Besser wäre public/private-key-Authentifizierung, d.h. Einloggen per Passwort verbieten. Port würde ich auch nen anderen nehmen, sonst kommen so viele Skriptkiddies vorbei.

2) Hä? AndererPC --(SSH)--> HomePC --> Internet oder was? Wieso soll das sicherer sein? Der gefährdete Rechner (dem du nicht trauen kannst) ist doch der "AndererPC". Das machst du doch nicht wett, wenn du noch zusätzlich deinen HomePC einbindest.

int 80h
23.03.10, 23:26
Danke für die Antwort.

1)Aber könnte man dann nicht über den abgefangenen Key Zugriff haben? Ein One Time Passowort wäre selbst dann nutzlos, wenn es abgefangen würde, da es verfällt sobald ich mich damit einlogge.

2)Du hast natürlich Recht. Wenn wirklich etwas wie auf dem PC selbst läuft ist man da mehr oder weniger machtlos. Wenn ich jetzt aber von den PCs an der FH ausgehe werden diese nach jedem Neustart zurückgesetzt. Das Risiko würde also nur noch im Netzwerk lauern. Diese Gefahr von mitgesnifftem Netzwerkverkehr würde ich gerne durch das surfen über meinen Homeserver über eine verschlüsselte Verbindung minimieren.

Freundlich Grüße,
int 80h

Newbie314
23.03.10, 23:36
Wenn es nur darum geht zu surfen ohne dass jemand mitschnüffelt wäre evtl. die portable Version von dem hier ganz praktisch: http://anon.inf.tu-dresden.de/win/download.html

Oder: auf deinem PC einen Webserver mit ssl einrichten der dich dann weitervermittelt....

ThorstenHirsch
23.03.10, 23:52
1) Nee, das läuft anders: dein key wird gar nicht übertragen. Du gibst nur deinen public key an den server, aber das macht nix, den kannst du auch ins Internet stellen, denn der ist ja schließlich auch der *public* key.
Bei der Authentifizierung fragt dein Rechner dann den SSH-Server: "tach. ich bin's, der int 80h. darf ich rein?" Der Server sagt dann "hmm... nun, ich hab' hier deinen public key. Wenn du wirklich du bist, dann kannst du (als einziger) mir das hier entschlüsseln, was ich gerade mit deinem public key verschlüsselt habe: 9034uq5q3465t9ztnv..." - und das kannst in der Tat nur du mit dem private key entschlüsseln. client: "jup, hier ist's: blubber-die-blubb." server: "herzlich willkommen!"
Der String ist natürlich jedes mal ein anderer ...aber ich glaube, eine man-in-the-middle-attack wäre erfolgreich, wenn der Angreifer innerhalb eines bestimmten timeslots dein abgefangenes "blubber-die-blubb" an den Server sendet. Aber da bin ich mir nicht ganz sicher, müsste ich nachschauen. Die komplette Session, in der das abläuft ist ja auch nochmal symmetrisch verschlüsselt und über diese Kombination wird's einem man-in-the-middle nochmal schwerer gemacht.
Wichtig ist also erstmal, dass niemand Zugriff auf deinen private key hat.

2) Ah, okay... wobei du natürlich auch einfach darauf achten kannst, dass du per https verbunden bist, wenn du geheime Passworte eingibst. Und solche Webseiten meidest, die das nicht anbieten. Aber wenn du's durchziehen willst, reicht eigentlich schon die SSH-Verbindung zu deinem HomePC, denn die ist ja verschlüsselt. Dann rufst du einfach deinen Browser auf dem HomePC auf (X11 muss geforwardet werden). Ist allerdings nicht so performant wie wenn du nur den Netzwerk-Verkehr (und nicht noch die GUI) tunnelst, d.h. wenn du den Browser auf dem anderen PC nutzt, aber dem noch sagst, dass er über die SSH-Verbindung ins Internet soll ...also vielleicht per VPN oder nen Proxy auf deinem HomePC ...keine Ahnung, bin da kein Fachmann.

Newbie314
24.03.10, 00:24
@Thorsten: wenn ich das Verfahren richtig verstanden habe (korrigiert mich bitte wenn nicht) schickt der Server seinen public key + die "blablub" Nachricht mit dem public key des Benutzers verschlüsselt an den PC des Benutzers. Dann entschlüsselt der Nutzer die Nachricht und verschlüsselt das "blablubb" wieder mit dem Public key des Servers.

Wenn der "man in the middle" nun die verschlüsselte Antwort abfängt und seinerseits weiterreicht nützt ihm das nichts, weil er weder die Nachrichten des Servers an den PC noch die Antworten des PCs an den Server entschlüsseln kann.

Bei ssl etc. könnte also theoretisch ein "man in the middle" dem PC gegenüber den Server vorspielen ... . und dem Server den PC wenn der public key nicht irgendwo kontrolliert wird (z.B. per Zertifikatserver).

Für die private Nutzung sollte sich das Problem so lösen lassen dass der Benutzer seinen public key auf dem Server hinterlegt... dann flöge ein "man in the middle" sofort auf weil der public key nicht stimmt.

=> theoretisch einfach, aber fragt mich bloß nicht wie man das in der Praxis aufsetzt ;-)

int 80h
24.03.10, 00:30
Ich glaube ich habe mir das ganze zu kompliziert gedacht.

Wäre es nicht am einfachsten mit Hilfe der Option -D von ssh (OpenSSH Client) einen SSH-Tunnel aufzubauen und den so entstandenen "pseudo-Socks-Proxy" auf localhost zum surfen zu nutzen?
Das kombiniert mit Public/Private Key und/oder One Time Passwords müsste dann doch sehr sicher sein.

Freundliche Grüße,
int 80h

ThorstenHirsch
24.03.10, 11:05
Na das hört sich doch super an. Kannte ich noch nicht, hab's gerade hier (http://www.lug-jena.de/veranstaltungen/ssh.html) nachgelesen.

edit: @Newbie ...ja, kann auch sein. Bin gerade nicht so motiviert, das genauer zu erforschen, sorry. ;)

John W
24.03.10, 15:15
Bei ssl etc. könnte also theoretisch ein "man in the middle" dem PC gegenüber den Server vorspielen ... . und dem Server den PC wenn der public key nicht irgendwo kontrolliert wird (z.B. per Zertifikatserver).

Der Client bekommt ja generell einen Fingerprint, den kurz mir einem aufgeschriebenen vergleichen sollte kein großes Problem sein.

Für die private Nutzung sollte sich das Problem so lösen lassen dass der Benutzer seinen public key auf dem Server hinterlegt... dann flöge ein "man in the middle" sofort auf weil der public key nicht stimmt.

Der Public Key muss meines Wissens im Server vorhanden sein (unter ~/.ssh/identity oder unter ~/.ssh/id_[dr]sa, je nach Authentifikationsmethode).

=> theoretisch einfach, aber fragt mich bloß nicht wie man das in der Praxis aufsetzt ;-)
Obige Info hab ich mal kurz aus "man ssh-keygen" gefischt, da steht sicherlich noch mehr dazu drin :rolleyes:.

Windoofsklicker
25.03.10, 19:04
Ich habe folgendes Konstrukt:

SSH-Server mit Key-Auth auf dem normalen Port. Ich habe auch erst mit Portverschiebung gearbeitet, bin da aber teilweise an fremden Firewalls hängen geblieben. Wenn auf deinem Server kein HTTPS läuft könntest du ja noch auf Port 443 verschieben, der aber auch ein Std.-Port ist. Besser: Den SSH-Server mit Fail2Ban absichern.

Dann habe ich einen Proxy laufen, auf den ich per SSH-Tunnel zugreife. Mit Foxy-Proxy kann ich dann ganz bequem im Firmen-Intranet oder über das private Netz surfen.