Beschreibung

ipfw (firewall and traffic shaper control program) ist eine Benutzer-Schnittstelle, mit der man die ipfw-Firewall und „dummynet“, einen leistungsfähigen Trafficshaper, konfigurieren kann. Die Konfiguration oder genauer gesagt ein Set von Regeln wird in einer Regelliste von 1 bis 65535 definiert.

ipfw ist ein mächtiger Paketfilter bzw. die Firewall des BSD-Unterbaus von Mac OS X. ipfw bezeichnet sowohl den Filter-Code im Kernel, als auch das Programm ipfw zum Einstellen der Filterregeln. Die Built-In Firewall von Mac OS X generiert Filterregeln für den ipfw Portfilter. Die Konfiguration war bis Mac OS X 10.2 nur über das Terminal zugänglich oder wird über grafische Frontends wie Flying Buttress, sunShield, WaterRoof oder Impasse ansprechbar.

ipfw ist ein bekannter FreeBSD Portfilter der u.a. IPv4 Pakete filtern kann. Das unter MacOS X verwendete ipfw2 soll auch IPv6 unterstützen. Stateful Filtering wird unterstützt. Der Funktionsumfang ist mit Linux netfilter vergleichbar, allerdings ist die Syntax um einiges schöner.

Die zugehörige Man Page erklärt wie man eine Konfiguration von ipfw vornimmt. Im Terminal muss man dazu man ipfw eintippen. Bemerkenswert ist das Keyword me, das dynamisch die Adresse des eigenen Rechners generiert!

Folgende Zeilen sind ein Beispiel wie man eine Konfiguration über ein ShellScript vornehmen könnte. Es werden Hin- und Rückrichtung einer SSH Session von einem konfigurierten Client zu einem SSH Server erlaubt.

SSH Connections nach aussen erlauben

 /sbin/ipfw add 02300 allow log tcp from any 22 to me in
 /sbin/ipfw add 02310 allow log tcp from me to any 22 out

SSH Connections nach innen erlauben

 /sbin/ipfw add 02320 allow log tcp from me 22 to any in
 /sbin/ipfw add 02330 allow log tcp from any to me 22 out

Beispiel

Für Benutzer, die anderen keine Dateien mit AFP o.ä. zur Verfügung stellen wollen. kurzes Firewall Script (ausführen mit sudo ./ipfw.sh)

 #! /bin/zsh
 /sbin/ipfw flush
 ## variables
 # variable mit Leerzeichen getrennt eigene DHCP Server hinzufügen
 DHCP=(192.168.1.1) 

 ## stateful inspection
 /sbin/ipfw add 00100 check-state
 ## loopback
 /sbin/ipfw add 01000 allow all from any to any via lo0
 ## deny spoofing loopback
 /sbin/ipfw add 01100 deny all from any to 127.0.0.0/8 in
 /sbin/ipfw add 01110 deny all from 127.0.0.0/8 to any in
 ## stateful inspection add state
 /sbin/ipfw add 01200 allow ip from me to any out keep-state
 # DHCP
 i=1
 while [ $i -le ${#DHCP} ] ; do
   /sbin/ipfw add 0200$i allow log udp from 0.0.0.0 68 to 255.255.255.255 67 out
   /sbin/ipfw add 0201$i allow log udp from $DHCP[$i] 67 to 255.255.255.255 68 in 
   i=$i+1
 done
 ## eigene Regeln ab hier (man braucht nur Services nach innen hinzufügen)

 ## eigene Regeln ende 
 ## ping von außen erlauben 
 /sbin/ipfw add 60000 allow log icmp from any to me icmptypes 8
 ## restriktive Regeln (keine Services nach aussen anbieten)
 /sbin/ipfw add 65000 deny log tcp from any to any 
 /sbin/ipfw add 65001 deny log udp from any to any 
 /sbin/ipfw add 65002 deny log igmp from any to any 
 /sbin/ipfw add 65003 deny log icmp from any to any 
 /sbin/ipfw add 65500 deny log ip from any to any

Sicherheitshinweis

  • Die Firewall wird durch das GUI in den Systemeinstellungen nicht ausreichend konfiguriert und sollte von Hand oder einfacher mit Bastille nach konfiguriert werden. Wer mehr über dieses Thema wissen möchte ist mit der PDF-Präsentation von Jay Beale (engl.) gut beraten.

Testmöglichkeiten

Der Schutz der Firewall kann z.B. auf dieser und den nachfolgenden Seiten getestet werden. Heise.de biete in Zusammenarbeit mit dem Datenschutzbeauftragten des Landes Niedersachen ebenfalls einen Test an: Heise Security Check

Verweise

Kategorie
Betriebssystem, Internet, Sicherheit

FooterBadgetsFct('Diskussion') FooterBadgetsFct('Rezension')

Zuletzt geändert am 07.08.2009 11:06 Uhr (2 Besuche)

© 2004 – 2020 ApfelWiki

Impressum - Datenschutz

cb