NAT zu NAT Verbindungen (z.B. SSH) (STUN, chownat, pwnat)

15/09/2011 - 15:47 von Peter Prockers | Report spam
Hallo,

ich suche derzeit eine Möglichkeit Verbindungen von Client zu Server
einzurichten, auch wenn sich beide hinter einem NAT befinden. (kurzer
Hintergrund: PC über UMTS online, Handy auch über UMTS online, in
beiden Fàllen kann kein Portforwarding eingerichtet werden)

Habe bereits zwei Hacks gefunden, chownat scheint genau das zu machen,
nur das da dem Client und dem Server gegenseitig die IP bekannt sein
muss.

Bei pwnat fàllt dieser Nachteil raus, nur begreife ich da nicht ganz
die Beschreibung. Ist das nun nur ein Proxyserver, oder kann auch
dieses Programm genau wie chownat, beliebige Serverdienste beim der
Überwindung von NAT zu NAT helfen?

Habe online ziemlich wenig darüber gefunden...

Gibt es noch Alternativen? STUN würde sich auch anbieten. Irgendwelche
Stunserver im Netz kann ich ja auch legal und kostenlos nutzen.

Da ich bisher noch keine SSH Implementierung gefunden habe, die auch
STUN mit eingebaut hat, suche ich weiter nach àhnlichen Programmen wie
chownat/pwnat, die universell alle Serverdienste auf NAT zu NAT
aufrüsten können.

Vorschlàge?
 

Lesen sie die antworten

#1 Stefan Nobis
15/09/2011 - 16:30 | Warnen spam
Peter Prockers writes:

Bei pwnat fàllt dieser Nachteil raus, nur begreife ich da nicht ganz
die Beschreibung. Ist das nun nur ein Proxyserver, oder kann auch
dieses Programm genau wie chownat, beliebige Serverdienste beim der
Überwindung von NAT zu NAT helfen?



Wie man unter

http://samy.pl/pwnat/

nachlesen kann, ist pwnat eine Erweiterung zu chownat, insbesondere,
soweit ich das verstanden habe, kan pwnat im Prinzip alles was chownat
kann.

Die Grundidee ist relativ simpel und alt: Per UDP werden Löcher in den
Paketfilter gebohrt. UDP ist stateless und daher kann der Paketfilter
nicht sehr viel mehr machen, als IP:Port Paare zu verfolgen. Also
schickt der pwnat Server bestàndig ganz bestimmte UDP Pakete raus,
damit der Paketfilter Antworten darauf auch wieder herein làsst.

Ein Client baut jetzt passende Fake-Pakete, die der Paketfilter des
Servers als Antwort ansieht und somit an den Server durchlàsst. Auf
diese Weise erfàhrt der Server die IP des Clients. Der Client muss die
IP des Server vorher wissen, sonst funktioniert der Verbindungsaufbau
nicht.

Der Rest funktioniert wie bei chownat, d.h. bei senden quasi mal ein
paar Pakete einfach so Richtung des anderen, bis beide Paketfilter
brav die Pakete durchlassen.

Der Verbindungsaufbau ist alles andere als effizient und schnell, aber
am Ende hat man die nötigen Löcher im Paketfilter und eine
UDP-Verbindung, über die man dann alles andere tunneln kann.

Gibt es noch Alternativen?



Wenn die Voraussetzung ist, dass keine dritte Stelle beteiligt ist,
beide Systeme hinter einem NAT liegen, kein Port-Forwarding möglich
ist und auch nur einer der beiden System die IP des anderen kennt,
dann hat man IMHO nicht mehr so wirklich viele Alternativen.

Ich persönlich würde überlegen, ob man nicht evtl. eine dritte Stelle
(z.B. einen Root-Server, auf den man Zugriff hat) involvieren
kann. Dann ist man wieder deutlich flexibler.

Stefan.

Ähnliche fragen