Frage port forwarding mittels pf.conf

bsd4me

Well-Known Member
Hallo,

ich habe 2 Server hier, der erste ist ein "öffentlicher", der zweite (mein eigener PC) nur intern erreichbar. Ich hätte gerne einen Port forgewarded. Das geht, wenn ich die Webseite auf meinem eingen rechner aufrufe und es kommt die Webseite angezeigt. Woanders leider nicht wie gewünscht. Ach, der Service "APP" läuft in einer jail...

prinzipiell soll folgendes passieren:

Internet --> server 1 port xyz -> server 2 port 3838 --> und wieder raus...

der aufruf geht dann mit: server1.domain.de:xyz

Auf Server 1 ist pf.conf:
PUB_IF="igb0"
PUB_IP="xxx.xxx.xxx.xxx"
JAIL_NET="192.168.1.0/24"
APP_IP="yyy.yyy.yyy.yyy" # öffentliche IP hinter server1.domain.de
APP_PORT="{xyz}" # öffentlicher Port
APP_PORT_L="3838"
...
scrub in all
nat pass on $PUB_IF from $JAIL_NET to any -> $PUB_IP
nat pass on $PUB_IF from $APP_IP to any -> $PUB_IP
rdr pass on $PUB_IF proto tcp from any to $PUB_IP port $APP_PORT -> $APP_IP port $APP_PORT_L
...

Auf meinem PC / Server 2:
PUB_IF="igb1"
PUB_IP="zzz.zzz.zzz.zzz"
JAIL_NET="192.168.1.0/24"
APP_IP="192.168.1.60"
APP_PORTS="{50060,3838}"
...
scrub in all
nat pass on $PUB_IF from $JAIL_NET to any -> $PUB_IP
nat pass on $PUB_IF from $APP_IP to any -> $PUB_IP
rdr pass on $PUB_IF proto tcp from any to $PUB_IP port $APP_PORTS -> $APP_IP
...

Kann mir jemand helfen? Das wäre super!! :)

Viele Grüße, Norbert
 

double-p

BOFH
Ich verstehe APP_IP auf server1 nicht .. was heisst "hinter"?

Fix erstmal die logik der 'rdr', das 'nat' ueberuebrigt sich bei reinen Antworten schon wegen stateful.
 

bsd4me

Well-Known Member
Sorry, ich bin leider nicht der grosse Netzwerk guru :) Dafür aber das "Mädchen-für-alles"... Eine Frage: was meinst Du mit rdr fixen? Bestimmt habe ich da was nicht gut verstanden und meine Umsetzung ist nicht korrekt...

also nochmals: internet --> server 1 mit ip xxx.xxx.xxx.xxx port xyz --rdr--> server 2 mit ip yyy.yyy.yyy.yyy port 3838 --rdr--> jail in server 2 mit ip zzz.zzz.zzz.zzz port 3838. Mein Ziel ist es von aussen kommend den port xyz auf die jail in server 2 port 3838 zu "mappen"...

und ich sehe gerade, dass ich mich mit den Abkürzungen xxx.xxx... yyy.yyy... und zzz.zzz... in der ersten mail doch ziemlich vergallopiert hatte. ;-)

Danke Dir! :)
 

bsd4me

Well-Known Member
Ich habe mal auf dem server 2 das logging eingeschaltet:

xxx.xxx.xxx.xxx.54165 > zzz.zzz.zzz.zzz.3838: Flags [P.], seq 1338:1358, ack 150, win 1027, options [nop,nop,TS val 4078908863 ecr 2122726857], length 20
yyy.yyy.yyy.yyy.3838 > xxx.xxx.xxx.xxx.54165: Flags [.], cksum 0x2032 (incorrect -> 0xf34b), ack 1359, win 1027, options [nop,nop,TS val 2122726903 ecr 4078908863], length 0
xxx.xxx.xxx.xxx.54165 > zzz.zzz.zzz.zzz.3838: Flags [P.], seq 1358:1364, ack 150, win 1027, options [nop,nop,TS val 4078909398 ecr 2122726903], length 6
yyy.yyy.yyy.yyy.3838 > xxx.xxx.xxx.xxx.54165: Flags [P.], seq 150:154, ack 1365, win 1027, options [nop,nop,TS val 2122727397 ecr 4078909398], length 4
yyy.yyy.yyy.yyy.3838 > xxx.xxx.xxx.xxx.54165: Flags [F.], cksum 0x2032 (incorrect -> 0xef3b), seq 154, ack 1365, win 1027, options [nop,nop,TS val 2122727397 ecr 4078909398], length 0
xxx.xxx.xxx.xxx.54165 > zzz.zzz.zzz.zzz.3838: Flags [.], cksum 0xe49a (correct), ack 155, win 1027, options [nop,nop,TS val 4078909399 ecr 2122727397], length 0
xxx.xxx.xxx.xxx.54165 > zzz.zzz.zzz.zzz.3838: Flags [F.], cksum 0xe499 (correct), seq 1364, ack 155, win 1027, options [nop,nop,TS val 4078909399 ecr 2122727397], length 0
yyy.yyy.yyy.yyy.3838 > xxx.xxx.xxx.xxx.54165: Flags [.], cksum 0x2032 (incorrect -> 0xef3a), ack 1366, win 1026, options [nop,nop,TS val 2122727397 ecr 4078909399], length 0
yyy.yyy.yyy.yyy.3838 > xxx.xxx.xxx.xxx.61065: Flags [F.], cksum 0x2032 (incorrect -> 0x15e7), seq 397, ack 1153, win 1027, options [nop,nop,TS val 3142935235 ecr 85883436], length 0
xxx.xxx.xxx.xxx.61065 > zzz.zzz.zzz.zzz.3838: Flags [.], cksum 0xf7cf (correct), ack 398, win 1027, options [nop,nop,TS val 85888419 ecr 3142935235], length 0
xxx.xxx.xxx.xxx.61065 > zzz.zzz.zzz.zzz.3838: Flags [F.], cksum 0xf7ce (correct), seq 1152, ack 398, win 1027, options [nop,nop,TS val 85888419 ecr 3142935235], length 0
yyy.yyy.yyy.yyy.3838 > xxx.xxx.xxx.xxx.61065: Flags [.], cksum 0x2032 (incorrect -> 0x0270), ack 1154, win 1026, options [nop,nop,TS val 3142935235 ecr 85888419], length 0

das sind viele incorrects drin...
 

bsd4me

Well-Known Member
ich konnte es heute lösen: die nat regel war falsch...

nat pass on $PUB_IF from any to $APP_IP port $APP_PORT_L -> $PUB_IP
 
Oben