Re: port forwarding ipfw natd: kann mich jemand aufklären? : )

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Sun, 1 Jun 2003 22:39:50 +0200

On Sun, Jun 01, 2003 at 09:49:04PM +0200, Paul wrote:
> Hallo Leute,
>
> Ich versuche meinem Router zu sagen das er eine anfrage von draussen auf
> einen bestimmten port auf einen anderen rechner schickt etc. zwecks stream.
>
> Ich hab schon diverse Seiten gesucht und durchgelesen und auch die man pages
> von ipfw, natd und divert durchgelesen, nur in den mans verstehe ich die
> syntax nicht und auf den seiten im inet steht verdammt nochmal immer was
> anderes....
>
> also was ich auch vom Handbuch her weiss ist das natd das wirkliche
> portforwarding macht, das hab ich so eingegeben:
>
> natd -dynamic -n tun0 -redirect_port tcp 192.168.1.50:8000 8000
>
> das soll alle anfragen auf port 8000 an 192.168.1.50 an port 8000 schicken.
>
> OK, nur funktioniert das nicht, meiner meinung nach "schlicht und einfach"
> nicht, weil meine firewall es "nicht erlaubt"

Wie kommst du da drauf?
Die einzigen deny sehe ich in Bezug auf antispoofing.
Gibt es entsprechende Meldungen - wenn ja welche?

> so sieht meine momentane firewall aus:
> ipfw="/sbin/ipfw"
> externalif="tun0"
> $ipfw -q flush
> $ipfw -q zero
> $ipfw -q add deny all from 192.168.0.0/16 to any recv $externalif
> $ipfw -q add deny all from 10.0.0.0/8 to any recv $externalif
> $ipfw -q add deny all from 172.16.0.0/12 to any recv $externalif
> $ipfw -q add deny all from 127.0.0.0/8 to any recv $externalif
> $ipfw -q add reset tcp from any to me 111,1022,1023,2049,3306,137,138,139
> via $externalif
> $ipfw -q add unreach port udp from any to me 514 via $externalif
> $ipfw -q add divert natd all from any to any via $externalif
> $ipfw -q add allow all from any to any

Sieht doch soweit recht gut aus.

> Jetzt hab ich verschiedene Dinge versucht ihm bei zu bringen das er das
> erlaubt was ich möchte, den größten GAU erlebte ich als ich eine Zeile mit
> fwd reinpackte, ich vermute das er ALLE anfragen dann an die 192.168.1.50
> geschickt hatte.

fwd überstimmt die Entscheidung der Routingtabelle - das willst du
bestimmt ganz bestimmt nicht, da die Ziel-IP ja nach dem nat eigendlich
OK sein sollte.

> dann hab ich verschiedene rules ausm netz versucht von wegen divert natd all
> from any to 192.168.1.50 8000 via tun0
> und vom 192.168.1.50 wieder nach draußen.
>
> nur hat das nichts gebracht. Ich konnte mich immernoch nicht von draußen
> direkt an 192.168.1.50 wenden.

Das muß einen anderen Grund haben.
Hast du natd mal mit -v gestartet und abgewartet, was er dazu meint.
Was sagt tcpdump auf tun0 und dem internen Interface dazu?

> nach den man pages müßten die rules, wenn ich die syntax richtig verstanden
> habe so aussehen:
> $ipfw -q add divert natd all from any to me 8000 to 192.168.1.50 8000

Das macht keinen Sinn - wenn das Ziel bereits 192.168.1.50 ist, dann
war das Packet schon beim natd.

> $ipfw -q add divert natd all from 192.168.1.50 to any 8000 via $externalif

>
> und dann hab ich im inet noch diese regeln gefunden:
>
> $ipfw pass tcp from any any to $oip 8877 in via $oif
> $ipfw pass tcp from any any to xxx.xxx.xxx.xxx 8877 out via $iif
>
> die mir aber nicht ganz einleuchten...
>
> Meine Frage:
>
> Welche Zeilen muss ich hinzufügen und wo, dass der das macht was ICH möchte
> und für die vielen male die das nicht funktioniert, kann man nachvollziehen
> wo die anfrage die ich mache hingeht um nach zu vollziehen was richtig ist
> und was nicht?

Fehler einkreisen - ich finde in deiner Config momentan auch keinen.
Welche OS Version - evtl ist das ja der geheimnissvolle Bug, der hier
letztens zitiert wurde - wobei das in den Griff zu bekommen sein
sollte - bei mir funktoniert es ja auch.

-- 
B.Walter                   BWCT                http://www.bwct.de
ticso(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 01 Jun 2003 - 22:40:01 CEST

search this site