[Code] Verbindung zu Server hinter Firewall ohne Forwarding

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von cable, 21. Mai 2012 .

  1. 21. Mai 2012
    Verbindung zu Server hinter Firewall ohne Forwarding

    Hey,

    vorweg: das Thema würde sicher auch gut in Netzwerk & Internet passen, aber da ich evtl später auch Umsetzungen brauche, poste ich es mal hier. Auch in der Hoffnung, dass sich vielleicht schon mal wer damit beschäftigte.

    Szenario ist folgendes: Es gibt Haushalte, in denen sog. MediaServer stehen, die TV und Video Stream bereitstellen und Steuerungsmöglichkeiten via HTTP. Befindet man sich im selben Subnetz, dann ist ein Zugriff problemlos möglich. Nun ist aber auch ein Zugriff via externem Netz gewünscht, so dass man Portforwarding benötigen würde, da die Server hinter einem Router hängen. Das ist aber nicht gewollt. Zu den MediaServern gibt es noch einen weiteren zentralen Server, der von überall zugänglich ist. Dieser könnte ggf als Vermittler zwischen und Clients und MediaServern dienen. Wie kann so etwas realisiert werden? Handelt sich um ein ähnliches Problem wie bei beispielsweise Skype oder TeamViewer.
    Mögliche Keywords sind: STUN, STUN-Server, Hole Punching, Tunneling.

    Falls ihr mir da helfen könntet (und ggf sogar Open Source Projekte nennen, die ähnliche Probleme behandeln), dann wäre ich euch sehr dankbar.

    greez
     
  2. 21. Mai 2012
    Zuletzt bearbeitet: 21. Mai 2012
    AW: Verbindung zu Server hinter Firewall ohne Forwarding

    Hi,

    wenn ich das richtig verstehe, dann soll der zentrale Server wirklich nur vermitteln und nicht Traffic weiterleiten? (Falls doch, dann OpenVPN o.Ä. auf dem zentralen Server installieren).

    Im Grunde hast du schon die richtigen Keywords genannt. Skype macht das z.B. mit UDP Hole Punching, d.h. über eine bestimmte Abfrage von Verbindungsanfragen wird ein Loch durch die NAT gebohrt. Das geht aber nur mit UDP, mit TCP funktioniert das nicht so gut AFAIK.

    Teamviewer hingegen sendet afaik alle Daten über einen Server von Teamviewer, da ist glaub ich nichts mit Hole Punching involviert.

    Ich würde dir aber empfehlen, nach fertigen (VPN)-Lösungen zu suchen, als da selbst was zu schreiben. Das sollte (falls es sowas gibt) schneller zum Erfolg führen.

    OpenSource-Projekte gibts einige die Daten über UDP tunneln können, allerdings weiß ich icht ob die UDP Hole Punching aktiviert haben. Es gibt auch einen SSH Client der Daten über UDP schickt (mosh). Dort gibt es auch eine Diskussion über Hole Punching: NAT busting when server is behind NAT · Issue #48 · keithw/mosh · GitHub

    edit:// pwnat dürfte interessant für dich sein
    pwnat - NAT to NAT client-server communication

    Ein Problem sehe ich auch noch: Je nach dem welche Daten du übertragen willst (TCP-Pakete z.B.), hast du ziemlich viel Arbeit die TCP-Daten in UDP-Pakete zu packen und z.B. Reliability zu implementieren. Du kannst dann aber auch selbst ein tun-Device erstellen und direkt IP übertragen (so macht das z.B. OpenVPN). Dann musst du keinen Reliability Layer einbauen, weil das ja TCP schon hat.
     
    1 Person gefällt das.
  3. 21. Mai 2012
    AW: Verbindung zu Server hinter Firewall ohne Forwarding

    bist du dir da sicher?
    die lassen doch nicht alle sessions auf der welt über server von ihnen laufen. was wäre wenn die farm down geht.
    ist es nicht eher so, dass sie als vermittler dienen und danach der traffic direkt zwischen den partner läuft?
     
  4. 21. Mai 2012
    Zuletzt bearbeitet: 21. Mai 2012
    AW: Verbindung zu Server hinter Firewall ohne Forwarding

    Es wird immer versucht so wenig wie möglich über den Server zu machen. Allerdings kann das nicht immer vermieden werden:

    Seite 2 @ http://www.teamviewer.com/images/pdf/TeamViewer_Sicherheitsstatement.pdf


    Seite 5 @ http://www.teamviewer.com/images/pdf/TeamViewer_Sicherheitsstatement.pdf

    So was geht nicht einfach mal "down". Das ist genauso als ob du davon redest, dass irgendein großer Webhoster einfach mal "down" geht.
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.