IPFW und NAT sorry, aber schon wieder dieses lästige Thema :-)

HI Leute.

Ich hab nun mehrere Anläufe versucht, und hänge immer an der selben Stelle: Nat will nicht so wie es soll.

Möchte gern auf einen im internen Netz stehenden Webserver zugreifen.

Firewall: (BSD 4.8)
rl0 (intern) 192.168.24.254
rl1 (dsl if) 192.168.25.1
tun0 (dsl) logisch: dynamisch.

Hier meine Rules:
sysctl -w net.inet.ip.forwarding=1
ipfw add 10 permit all from any to any via lo0
ipfw add 20 permit tcp from any to rl0 22 in setup keep-state
ipfw add 30 permit udp from me to any 53 out keep-state
ipfw add 40 permit all from any to any keep-state
ipfw add 50 permit tcp from any to any 80 setup keep-state
ipfw add 60 drop log all from any to any

meine natd.conf wie folgt:
redirect_port tcp 192.168.24.1:80 80

und meine /etc/rc.conf
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="default"
firewall_enable="YES"
firewall_script="/etc/firewall/fire.sh"
natd_enable="YES"
natd_interface="tun0"
natd_flags="-dynamic -f /etc/firewall/natd.conf"
natd_program="/sbin/natd"

All das hab ich mir hier aus diversen Tutorials zusammengeklaub :-)

Ach ja, IPDIVERT, IPFIREWALL... u.s.w hab ich in der Kernel-
konfiguration natürlich drin.

Raus geht alles, aber rein kommt halt nix.

So, what's wrong?

Danke für Eure Hilfe

Hans-Gerd
 
Dein natd laeuft vielleicht, aber er bekommt keine Pakete zu gesicht, weil eine entsprechende divert Regel fehlt.

ipfw add 15 divert all from any to any via tun0

PS: Gib dem rl1 Interface keine IP Adresse!
 
Danke für die Antwort MrFixit.

Werde es heute abend probieren. Warum eigentlich dem rl1 keine
IP Adresse geben?

Danke und Gruß, Hans-Gerd
 
Weil Deine rl1 ja Deine NIC zum DSL "Modem" ist.
Also:

/etc/rc.conf:
ifconfig_rl1="up"
 
Komme der ganzen Sache schon etwas näher...

Hier meine geänderten Rules:

add_addr 192.168.24.254 255.255.255.0 rl0
add_addr 127.0.0.1 255.0.0.0 lo0

$IPFW -f flush

$IPFW add 1 check-state ip from any to any

#
# Rule 0(tun0)
# anti-spoofing Regel
#
$IPFW add 10 drop log all from me to any in recv tun0
$IPFW add 20 drop log all from 192.168.24.51 to any in recv tun0
$IPFW add 30 drop log all from 192.168.24.54 to any in recv tun0
$IPFW add 40 drop log all from 192.168.24.53 to any in recv tun0
$IPFW add 50 drop log all from 192.168.24.52 to any in recv tun0
$IPFW add 60 drop log all from 192.168.24.1 to any in recv tun0
$IPFW add 70 drop log all from 192.168.24.30 to any in recv tun0
#
# Rule 1(tun0)
# anti-spoofing Regel
#
$IPFW add 80 skipto 160 all from me to any out xmit tun0
$IPFW add 90 skipto 160 all from 192.168.24.51 to any out xmit tun0
$IPFW add 100 skipto 160 all from 192.168.24.54 to any out xmit tun0
$IPFW add 110 skipto 160 all from 192.168.24.53 to any out xmit tun0
$IPFW add 120 skipto 160 all from 192.168.24.52 to any out xmit tun0
$IPFW add 130 skipto 160 all from 192.168.24.1 to any out xmit tun0
$IPFW add 140 skipto 160 all from 192.168.24.30 to any out xmit tun0
$IPFW add 150 drop log all from any to any out xmit tun0
#
# Rule 0(lo0)
# Erlaube alle Verbindungen zur 'loopback'-Schnittstelle
#
$IPFW add 160 permit all from any to any via lo0
#
# Rule 0(global)
# Blockiere Fragmente
#
$IPFW add 170 drop log all from any to any frag
#
# Rule 1(global)
# Firewall verwendet DNS Server im I-Net
#
$IPFW add 180 permit udp from me to any 53 out keep-state
#
# Rule 2(global)
# Update DynDNS
#
$IPFW add 190 permit log tcp from me to any 80 out setup keep-state
#
# Rule 3(global)
# Debugging
#
$IPFW add 200 permit icmp from me to any icmptypes 8 out keep-state
#
# Rule 4(global)
# SSH Verbindung zur Firewall
#
$IPFW add 210 permit tcp from 192.168.24.51 to 192.168.24.254 22 setup keep-state
$IPFW add 220 permit tcp from 192.168.24.54 to 192.168.24.254 22 setup keep-state
$IPFW add 230 permit tcp from 192.168.24.53 to 192.168.24.254 22 setup keep-state
$IPFW add 240 permit tcp from 192.168.24.52 to 192.168.24.254 22 setup keep-state
$IPFW add 250 permit tcp from 192.168.24.1 to 192.168.24.254 22 setup keep-state
$IPFW add 260 permit tcp from 192.168.24.30 to 192.168.24.254 22 setup keep-state
#
# Rule 5(global)
# 'masquerading' Regel
#
$IPFW add 270 permit all from 192.168.24.51 to any keep-state
$IPFW add 280 permit all from 192.168.24.54 to any keep-state
$IPFW add 290 permit all from 192.168.24.53 to any keep-state
$IPFW add 300 permit all from 192.168.24.52 to any keep-state
$IPFW add 310 permit all from 192.168.24.1 to any keep-state
$IPFW add 320 permit all from 192.168.24.30 to any keep-state
$IPFW add 325 divert natd all from any to any via tun0
$IPFW add 326 allow log tcp from any to any 80 setup
#
# Rule 6(global)
# Loggen lohnt nicht. Gibt leider zu viel davon
#
$IPFW add 330 drop tcp from any to any 4661-4662
$IPFW add 340 drop udp from any to any 4665
#
# Rule 7(global)
# Catch all Rule
#
$IPFW add 350 drop log all from any to any
#
# Rule fallback rule
# fallback rule
#
$IPFW add 360 drop all from any to any

Leider spuckt mir nun /var/log/security.log folgendes aus:

Sep 4 20:55:45 idefix /kernel: ipfw: 350 Deny TCP 195.125.56.130:38737 192.168.24.1:80 in via tun0


Funktioniert hat das ganze zwar schon mit dem Tutorial, das ich hier gefunden hab allerdings konnte damit mein interner Nameserver keine Namensauflösung mehr durchführen.

Danke für Eure Hilfe

Hans-Gerd
 
Zuletzt bearbeitet:
Zurück
Oben