pf NAT

MrMarv

Well-Known Member
Hallo!

Ich hab ein Setup im dem ein FreeBSD Gateway/Firewall per NAT Internetzugang verteilt.

Code:
# Deklaration
ext_if = "le0"
int1_if = "le1"
int2_if = "le2"

rechner1 = "10.10.1.10"
rechner2 = "10.10.1.20"

set skip on lo0
scrub in all

# NAT
nat on $int1_if from $int1_if:network to any -> $ext_if

# Filter
block return in on $ext_if   
pass out on $ext_if      
pass in quick on $ext_if proto tcp from any to $ext_if port 2201

Von der inneren Kiste komme ich nun aber nicht ins äußere Netz.

ein tcpdump -i le0 auf dem Gateway (also das externe Interface) fliegen nun auch Pakete raus. zB dieses hier:
Code:
18:56:36.249680 IP 10.10.1.10 > host.example.com: ICMP echo request, id 17169, seq 7, length 64
Es kommt aber kein Paket zurück.
Kann das denn überhaupt so sein? Das auf dem externen Interface (also nach dem NAT durch PF) die lokale IP Adresse auftaucht und nicht die des Gateways? Die lokale Adresse wird ja spätestens am nächsten Router nicht mehr weitergereicht...

Hab ich was übersehen?


Danke schon mal und schöne Grüße!

MrMarv
 
Musst du nicht eher ein NAT auf das ext_if machen anstatt auf dem int1_if?

HTH

PS: Ich gehe davon aus, dass du auf den Clients jeweils die IP des FreeBSD-Gateways als Standardgateway eingetragen hast.
 
moin!

nat auf ext_if. Hast Du IP-Forwarding aktiviert? Startest Du pf wie vorgeschrieben? Um das letzte ext_if Klammern setzen, damit eine IP-Adressänderung auf ext_if bemerkt wird (wenn dynamischer IP-Bezug). -> ($ext_if)

Hoffe das hilft irgendwie.

Viele Grüße
swaf
 
Danke für eure Tips!

Es lag tatsächlich da dran, dass ich anstatt dem externen das interne interface in der Regel verwurstelt hatte... Naja, nun läufts! :-)

Forwarding hatte ich über den rc.conf Eintrag aktiviert und pf starte ich per pfctl... macht man das bei FreeBSD nicht so? Achja das mit den Klammer brauche ich nicht da es eine feste IP Adresse ist.

Danke und beste Grüße!
 
pf kannst du automatisch per rc.conf starten lassen:
Code:
pf_enable="YES"
pf_rules="/etc/pf.conf"

Forwarding aktiviert man über /etc/sysctl.conf:

Code:
net.inet.ip.forwarding=1
 
Zurück
Oben