pf firewall probleempje

Pagina: 1
Acties:

  • MadDog2K
  • Registratie: Augustus 2000
  • Laatst online: 13-03 22:51

MadDog2K

The Great Puppy Dog :>

Topicstarter
Oi,

Ik heb wat moeite om mijn pf firewall goed te krijgen in een wellicht niet alle daagse setup :)

Het gaat om 3 FreeBSD 6.2 machines, waartussen een OpenVPN verbinding ligt.
2 machines staan in het LAN, 1 machine staat bij een ISP.
De 2 LAN-machines fungeren als active/standby VLAN-gateway's dmv. vlan-interfaces en carp.
Vanaf de ISP machine route ik een publiek netwerkje over de VPN tunnel richting de 2 LAN-machines, welke het op hun beurt dmv. een static route afleveren bij een interne machine.
Die interne machine is dus via het internet bereikbaar met een publiek IP, dit heb ik gedaan door op de 2 LAN machines met ipfw danwel pf source-routing toe te passen.

Dat werkt als een tiet :)

Nu wil ik echter gaan firewallen ... en daar gaat het een beetje mis.

Wat ik heb gedaan, onderstaande rules werken...maar zijn volgens mij niet echt jofel :

# 172.16.0.0/27 is hierin het publieke netwerkje :)
# 192.168.128.0/24 en 192.168.192.0/24 zijn de LAN-netwerken (opgedeeld in subnets)
# vlan31 is het vlan waar de interne machine in leeft, waar de 172.16.0.0/27 heen geroute is
# 172.16.0.1 is het public ip van de interne machine

ext_if1 = "fxp0"
ext_if2 = "tun0"
ext_gw1 = "192.168.128.1"
ext_gw2 = "192.168.252.5"

table <lan_net> { 192.168.128.0/24, 192.168.192.0/24 }

SYN_ONLY="S/SAFR"
#SYN_ONLY="S/SA"

# Debug voor de logging :)
pass in log all
pass out log all

# block alles naar 172.16.0.0/27
block in log on $ext_if2 from any to 172.16.0.0/27
# ICMP toestaan, mag nog wat strakker wellicht
pass in on $ext_if2 proto icmp from any to 172.16.0.1/27
# inkomend verkeer op tun0 toestaan van any naar 172.16.0.1 op de public poorten
pass in log on $ext_if2 proto tcp from any to 172.16.0.1/32 port {25,80,110,143,443,993,995}
# uitgaand verkeer op vlan31 van iedereen -> 172.16.0.1/32
pass out log on vlan31 from any to 172.16.0.1/32 keep state

# source-routing : pakketjes vanaf 172.16.0.0/27 die NIET naar <lan_net> gaan redirecten naar tun0
pass out log on $ext_if1 route-to ($ext_if2 $ext_gw2) from $pub_net to ! <lan_net>

-------------------------------------------
Het gaat met name om deze 2 rules :

pass in log on $ext_if2 proto tcp from any to 172.16.0.1/32 port {25,80,110,143,443,993,995}
pass out log on vlan31 from any to 172.16.0.1/32 keep state

Ik sta dus tcp toe vanaf buiten op interface tun0 (OpenVPN tunnel interface) naar het public IP, op bovengenoemde poorten
Maar de pass out op het vlan interface begrijp ik niet echt.... ik moet daar ook verplicht keep state opgeven.

Onderstaande rules werken bijv. niet :

pass in log on $ext_if2 proto tcp from any to 172.16.0.1/32 port {25,80,110,143,443,993,995} flags $SYN_ONLY keep state
pass out log on vlan31 from any to 172.16.0.1/32

Wellicht kan iemand helpen om eea. te versimpelen/verbeteren ?