Fragen zu IPFW

I.MC

Watt soll denn hier hin?
Hi!

Ich stelle gerade alles auf ipfw um, habe jedoch Problem mit Stateful Regeln.
Wofür gibt es check-state? Sobald keep-state in einer Regel auftaucht wird doch eh gegen das dyn. Set geprüft!? Wozu also diese extra Aufforderung?

Wie stelle ich es nun an, dass Verbindungen nur mittelsdem "Startpaket" aufgebaut werden können? Etwa mit "setup keep-state"?

Gruß, incmc
 
habe mal wegen deiner frage zu keep-state und check-state nachgelesen
und muss sagen, dass das mich auch verwirrt :D

aber in man ipfw machen die das genauso wie ich und das hat mich dann beruhigt:
tcp: (erlaubt nur verbindungen die von dir gestartet werden (tcpflags syn,!ack))
Code:
ipfw add check-state
ipfw add allow tcp from my-subnet to any setup keep-state
ipfw add deny tcp from any to any
udp:
Code:
 ipfw add check-state
ipfw add allow udp from my-subnet to any keep-state
ipfw add deny udp from any to any
wenn du tcp und udp dynamisch machen willst, benötigst du natürlich nur ein check-state

hoffe ich habe dir geholfen
 
Last edited:
OK, war ja klar, dass das in die Hose geht. Ich habe alles in einem Durchgang versucht von ipf auf ipfw umzustellen. Tja, da ich von ipfw nicht die Ahnung habe muß ich wohl Mist gebaut haben, denn ich bin offline :-)

Also wenn jemand mal Lust hat sich dadurch zu kämpfen und mir zu sagen wieso das NAT nicht geht, wäre ich dankbar!

Code:
#Variablen setzen
fwcmd="/sbin/ipfw"
dsl_extern="ng0"
dsl_intern="fxp0"
lan_fest="sis0"
lan_funk="rl0"

#Pipes und Queues
${fwcmd} pipe 1 config bw 142Kbytes/s
${fwcmd} pipe 2 config bw 47Kbytes/s
${fwcmd} queue 1 config pipe 1 weight 100  #Downlod wichtig
${fwcmd} queue 2 config pipe 1 weight 50   #Download nicht so wichtig
${fwcmd} queue 3 config pipe 2 weight 100  #Upload wichtig
${fwcmd} queue 4 config pipe 2 weight 50   #Upload nicht so wichtig


#Allgemeines fuer ng0 Verbindung zum Internet
${fwcmd} add deny all from any to 192.168.0.0/16 out via ${dsl_extern}
${fwcmd} add deny all from any to 172.16.0.0/12 out via ${dsl_extern}
${fwcmd} add deny all from any to 10.0.0.0/8 out via ${dsl_extern}
${fwcmd} add deny all from any to 0.0.0.0/8 out via ${dsl_extern}
${fwcmd} add deny all from any to 127.0.0.0/8 out via ${dsl_extern}
${fwcmd} add deny all from any to 169.254.0.0/16 out via ${dsl_extern}
${fwcmd} add deny all from any to 192.0.2.0/24 out via ${dsl_extern}
${fwcmd} add deny all from any to 204.152.64.0/23 out via ${dsl_extern}
${fwcmd} add deny all from any to 224.0.0.0/3 out via ${dsl_extern}
${fwcmd} add deny all from 192.168.0.0/16 to any in via ${dsl_extern}
${fwcmd} add deny all from 172.16.0.0/12 to any in via ${dsl_extern}
${fwcmd} add deny all from 10.0.0.0/8 to any in via ${dsl_extern}
${fwcmd} add deny all from 127.0.0.0/8 to any in via ${dsl_extern}
${fwcmd} add deny all from 0.0.0.0/8 to any in via ${dsl_extern}
${fwcmd} add deny all from 169.254.0.0/16 to any in via ${dsl_extern}
${fwcmd} add deny all from 192.0.2.0/24 to any in via ${dsl_extern}
${fwcmd} add deny all from 204.152.64.0/23 to any in via ${dsl_extern}
${fwcmd} add deny all from 224.0.0.0/3 to any in via ${dsl_extern}

#NAT
${fwcmd} add divert natd all from any to any via ${dsl_extern}

#Interne Kommunikation
${fwcmd} add pass all from any to any via lo0
${fwcmd} add deny all from any to 127.0.0.0/8
${fwcmd} add deny ip from 127.0.0.0/8 to any
${fwcmd} add allow all from any to any via $lan_fest
${fwcmd} add allow all from any to any via $lan_funk


#Allgemeines fuer NIC zum DSL Lan
${fwcmd} add allow all from any to 172.16.0.0/16 out via ${dsl_intern} keep-state                       #Zugriff auf DSL Lan erlauben wegen DHCP etc
${fwcmd} add allow all from 172.16.0.1/32 to any in via ${dsl_intern} keep-state                        #Zugriff vom Internet GW erlauben wegen DHCP etc


#Anfang eigene Regeln, obige sind immer noetig um Grundsicherheit zu bekokommen
${fwcmd} add allow icmp from any to any icmptypes 8 in via ${dsl_extern}                                #Anpingen lassen
${fwcmd} add queue 4 all from 10.0.0.4 to any out via ${dsl_extern} keep-state                          #Upload durch Server
${fwcmd} add queue 4 all from 10.0.0.5 to any out via ${dsl_extern} keep-state                          #Upload durch Server
${fwcmd} add queue 4 all from 10.0.0.6 to any out via ${dsl_extern} keep-state                          #Upload durch Server
${fwcmd} add queue 2 tcp from any to 10.0.0.6/32 22 in via ${dsl_extern} setup keep-state          #SSH Zugang auf Spiel-Jail
${fwcmd} add queue 2 tcp from any to 10.0.0.4/32 443 in via ${dsl_extern} setup keep-state              #HTTP Server SSL
${fwcmd} add queue 2 tcp from any to 10.0.0.5/32 465 in via ${dsl_extern} setup keep-state         #SMTP Server SSL
${fwcmd} add queue 2 tcp from any to 10.0.0.3/32 563 in via ${dsl_extern} setup keep-state              #NNTP Server SSL
${fwcmd} add queue 2 tcp from any to 10.0.0.5/32 993 in via ${dsl_extern} setup keep-state      #IMAP Server SSL
${fwcmd} add queue 2 tcp from any to 10.0.0.4/32 2121 in via ${dsl_extern} setup keep-state     #FTP  Server SSL - Command Channel
${fwcmd} add queue 2 tcp from any to 10.0.0.4/32 40000-40020 in via ${dsl_extern} setup keep-state #FTP  Server SSL - PASV Modus
${fwcmd} add queue 2 tcp from any to 10.0.0.6/32 4661 in via ${dsl_extern} setup keep-state        #Emule Ports
${fwcmd} add queue 2 tcp from any to 10.0.0.6/32 4662 in via ${dsl_extern} setup keep-state        #Emule Ports
${fwcmd} add queue 2 udp from any to 10.0.0.6/32 4665 in via ${dsl_extern} keep-state              #Emule Ports
${fwcmd} add queue 3 all from any to any out via ${dsl_extern} keep-state                               #Upload durch Clients
${fwcmd} add queue 1 all from any to any in ${dsl_extern} keep-state                                    #Download durch Clients


#Anfang temporaere Testregeln
#Ende eigene Regeln


${fwcmd} add deny all from any to any  #Alles blocken, was nicht vorher erlaubt wurde

Die 10.0.0.3-6 sind Server, die eine niedrigerere Prirität haben sollen, als die restlichen Rechner im selben Netz. Soviel zu meinem ersten Versuch...
Noch kurz zu den Einträgen zu 172.16.0.1, das ist mein Einwahlgateway, über das man sich in's Dsl einwählt per pptp.

Gruß, incmc
 
Ok, einiges mehr verstanden inzwischen. Dennoch habe ich IPFW wieder weggeschmissen. Sobald es komplexer wird, ist es einfach ziemlich unlogsich aufgebaut und wird für mich unnachvollziehbar zu konfigurieren. Da ist IPF 10x einfacher und logischer unterteilbar.
Tja, dann warte ich halt doch bis 5.x stable wird und damit pf kommt. Jedem das seine ...

Gruß, incmc
 
Back
Top