PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Statefull Filtering mit ipfw....



megamimi
16.08.2003, 09:44
Hallo,

Also meinen Router unter FreeBSD hab ich jetzt endlich zum laufen gebracht. Da ich als Paketfilter ipfw verwende und ipfw statefull rules kann, hab ich mir gedacht, das wäre doch was für mich:D

Folgendes kleine Skript hab ich mir zusammengeschustert:

#! /bin/sh

#Mach es leise
cmd="/sbin/ipfw -q"

#Erstmal alles loeschen
${cmd} -f flush

#local und im internen Netz ist alles erlaubt
${cmd} add allow all from any to any via lo0
${cmd} add allow all from any to any via rl0
${cmd} add allow all from any to any via rl1

#Die nicht lokale verwendung von 127.0.0.0/8 verbieten
${cmd} add deny all from any to 127.0.0.0/8
${cmd} add deny all from 127.0.0.0/8 to any

#gespoofte pakete verbieten
${cmd} add deny all from 10.0.0.0/8 to any in via tun0
${cmd} add deny all from 172.16.0.0/12 to any in via tun0
${cmd} add deny all from 192.168.0.0/16 to any in via tun0

#pruefen ob das paket zu einer aktiven verbindung gehoert
${cmd} add check-state

#fragmentierte pakete verbieten
${cmd} add deny all from any to any in via tun0 frag

#Alle TCP- pakete mit ACK flag die nicht zu einer verbindung gehoeren loeschen
${cmd} add deny tcp from any to any in via tun0 established

#netbios und anderer ms- shit ist verboten nach aussen
${cmd} add deny tcp from any to any 137-139 via tun0
${cmd} add deny udp from any to any 137-139 via tun0
${cmd} add deny tcp from any to any 445 via tun0
${cmd} add deny udp from any to any 445 via tun0
${cmd} add deny tcp from any 137-139 to any via tun0
${cmd} add deny udp from any 137-139 to any via tun0
${cmd} add deny tcp from any 445 to any via tun0
${cmd} add deny udp from any 445 to any via tun0

#wir duerfen sonst alle verbindungen aufbauen
${cmd} add allow all from any to any out via tun0 setup keep-state

#eDonkey ist erlaubt
${cmd} add allow tcp from any to any 4662 in via tun0 setup keep-state
${cmd} add allow udp from any to any 4665 in via tun0 keep-state

#alle anderen verbindungsversuche werden geblockt
${cmd} add deny tcp from any to any in via tun0 setup

#echo-request und redirect werden verboten
${cmd} add deny icmp from any to any in via tun0 icmptypes 5,8

# sonst ist alles icmp erlaubt
${cmd} add allow icmp from any to any via tun0

Das Dumme ist nur: es geht nicht. Ich hab jetzt alles 3 mal durchgelesen aber komme einfach nicht darauf was daran falsch ist...

Pingen kann ich, nur http, pop, dns etc geht nicht:(

Bitte helft mir...

cu mimi

megamimi
16.08.2003, 17:27
hi....

Durch trial and error hab ich das ganze jetzt zum laufen gebracht: Das Problematische war folgende Regel:

${cmd} add allow all from any to any out via tun0 setup keep-state

Weil Regel in denen "setup" vorkommt von ipfw automatisch mit tcp verbunden werden. Dadurch konnte ich keine udp Pakete senden, weshalb ich kein dns hatte.

Mit folgenden Regeln funzt alles prima:

${cmd} add allow tcp from any to any out via tun0 setup keep-state
${cmd} add allow udp from any to any out via tun0 keep-state

Danke trotzdem, mimi