Peter Prockers <
peter.p...@googlemail.com> 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.