Firewall Ipfilter

Hallo,

ich habe mir heute einmal IPFW angeschaut, was von Anfang an funktionierte und alles funktioniert bis auf NTPDATE. Es bleiben nur zwei Fragen:

1.) Könntet Ihr einmal die Regeln anschauen ob die korrekt sind.
* Vielleicht widersprechen sich Regeln oder so etwas in der Art

2.) Was bedeutet nach dem Handbuch die Anweisung setup und dann keep-state. Sollte man setup immer mit angeben bei TCP Verbindungen?

Code:
ipfw -q -f flush
#
IPF="ipfw -q add"
#
$IPF 10 allow all from any to any via lo0
$IPF 20 check-state
$IPF 30 deny all from any to any frag
$IPF 40 deny tcp from any to any established
$IPF 50 allow icmp from any to any
$IPF 60 allow tcp from any to any 53 out via em0 setup keep-state
$IPF 70 allow tcp from any to any 53 in via em0 setup keep-state
$IPF 80 allow udp from any to any 53 out via em0 keep-state
$IPF 90 allow udp from any to any 53 in via em0 keep-state
$IPF 100 allow tcp from any to any 37 out via em0 setup keep-state
$IPF 110 allow tcp from any to any 37 in via em0 setup keep-state
$IPF 120 allow udp from any to any 37 out via em0 keep-state
$IPF 130 allow udp from any to any 37 in via em0 keep-state
$IPF 140 allow tcp from any to any 123 out via em0 setup keep-state
$IPF 150 allow tcp from any to any 123 in via em0 setup keep-state
$IPF 160 allow udp from any to any 123 out via em0 keep-state
$IPF 170 allow udp from any to any 123 in via em0 keep-state
$IPF 180 allow tcp from any to any 22 out via em0 setup keep-state
$IPF 190 allow tcp from any to any 22 in via em0 setup keep-state
$IPF 200 allow tcp from any to any 25 out via em0 setup keep-state
$IPF 210 allow tcp from any to any 25 in via em0 setup keep-state
$IPF 220 allow tcp from any to any 80 out via em0 setup keep-state
$IPF 230 allow tcp from any to any 80 in via em0 setup keep-state
$IPF 240 allow tcp from any to any 10000 out via em0 setup keep-state
$IPF 250 allow tcp from any to any 10000 in via em0 setup keep-state
$IPF 500 deny log all from any to any

Das ist eine lokale VMWARE FreeBSD Installation. Vielen Dank.

MFG
Silvio
 
ipfw hat den gleichen Aufbau wie ipfilter oder iptables bloß die Unterschiede das die Regeln anders aussehen und eben auch etwas anders geschrieben werden.

1. Welcher Typ. open oder block im Kernel
2. Das was ich dir vorher geschrieben hab gilt auch für ipfw
3. etablished wird genehmigt, Rest Block, Drop oder reject
 
Hallo,


ich habe in der rc.conf folgendes eingetragen:

Code:
firewall_enable="YES"
firewall_logging="YES"
firewall_script="/etc/ipfw.rules"
firewall_quiet="NO"

Ist das Regelwerk so dann in Ordnung? Oder gibt es Einwende? Habt Ihr eventuell eine Buchempfehlung? Wenn möglich in deutsch, Englisch in der Schule nicht wirklich sehr gut aufgepasst (merkt man sicher auch) und die letzten 12 Monate lässt sich nicht viel nachholen.

@Tronar

Danke für den Link, war informativ.


Silvio
 
ich habe mir heute einmal IPFW angeschaut, was von Anfang an funktionierte und alles funktioniert bis auf NTPDATE.
Bei mir ist es eher umgekehrt. Ich habe mich in ipfw eingearbeitet, finde die Dokumentation dazu aber etwas schwerverständlich und will mich bald mal mit IPfilter anfreunden.

Was bedeutet nach dem Handbuch die Anweisung setup und dann keep-state. Sollte man setup immer mit angeben bei TCP Verbindungen?
"setup" ist das gleiche wie bei IPfilter das "flags S", also das SYN-Bit zum Initiieren einer Verbindung. Normalerweise gibst Du nur eine "pass"- bzw. "allow"-Regel für die Verbindungsaufnahme an (mit "setup" bzw. "flags S") und überläßt den Rest dem Automatismus mit Hilfe der Anweisung "keep-state". Letzteres sorgt nämlich dafür, daß intern eine dynamische Regel für die Dauer dieser Verbindung angelegt wird, die genau diese Verbindung durchschaltet, solange sie besteht. Daher ist es auch keine schlechte Idee, TCP-Pakete ohne "setup" bzw. "flags S" generell zu blockieren.
(Frage an die Anderen: "keep-state" geht nicht für UDP, GRE etc., oder?)

Was Deine Regeln betrifft, so solltest Du klarstellen, welche Dienste Dein Server selbst anbietet (allow ... in) und welche er seinerseits woanders in Anspruch nimmt (allow ... out). DNS bietest Du z. B. wohl nicht selbst an, also streich die "in"-Zeilen! (Die Antworten kommen dank "keep-state" ja trotzdem herein.) Beim Web-Server ist es umgekehrt, streich die "out"-Zeile!
Ach ja, und in den meisten Fällen solltest Du "from me to any" oder "from any to me" schreiben, nicht "from any to any".
Ach ja, und dann solltest Du noch alles blockieren, was "eigentlich" nicht sein kann, z. B. wenn aus dem Internet etwas von 10.0.0.0/8 oder 192.168.0.0/16 oder 172.16.0.0/12 kommt oder von Dir selbst. Flex6 hat das ja ausführlich dargelegt.

MfG
Tronar
 
Hallo,


vielen Dank für deine Antwort. Ipfilter an sich nicht schlecht, nur scheint es nicht zu arbeiten. Ich habe Mysql zum Beispiel einmal freigegeben, bei IPFW erscheint er nicht einmal, bei Ipfilter kann ich darauf zugreifen.

Mit Ipfw bin ich heute schon den ganzen Tag am probieren, ich habe das "Script" jetzt auf den produktiven Server hochgeladen, soweit scheint es zu arbeiten, allerdings ist ein Zugriff auf Ports über 12000 nicht möglich, obwohl die Ports frei sind.

Ich finde die Firewalls im allgemeinen sind irgendwie schlecht dokumentiert, zumindest wenn man englisch nicht korrekt verstehen kann. Ich habe zwar viele Beispiele gefunden, aber alles zusammen suchen hat mir beim Apache schon einmal mehr Probleme gebracht als mir lieb war.

Vielleicht hat ja einer einen Tipp:
Code:
ipfw -q -f flush
#
IPF="ipfw -q add"
#
$IPF 10 allow all from any to any via lo0
$IPF 20 check-state
$IPF 30 deny all from any to any frag
$IPF 40 deny tcp from any to any established
#DHCP
$IPF 50 allow udp from any to any 67 in via re0 keep-state
$IPF 55 allow udp from any to any 68 in via re0 keep-state
#TimeServer
$IPF 60 allow tcp from any to any 37 out via re0 setup keep-state
$IPF 70 allow tcp from any to any 37 in via re0 setup keep-state
$IPF 80 allow udp from any to any 37 out via re0 keep-state
$IPF 90 allow udp from any to any 37 in via re0 keep-state
$IPF 100 allow tcp from any to any 123 out via re0 setup keep-state
$IPF 110 allow tcp from any to any 123 in via re0 setup keep-state
$IPF 120 allow udp from any to any 123 out via re0 keep-state
$IPF 130 allow udp from any to any 123 in via re0 keep-state
#Nameserver
$IPF 140 allow udp from me to 213.133.98.98 53 out via re0 keep-state
$IPF 150 allow udp from me to 213.133.99.99 53 out via re0 keep-state
$IPF 160 allow udp from me to 213.133.100.100 53 out via re0 keep-state
$IPF 170 allow udp from 213.133.98.98 to me 53 in via re0 keep-state
$IPF 180 allow udp from 213.133.99.99 to me 53 in via re0 keep-state
$IPF 190 allow udp from 213.133.100.100 to me 53 in via re0 keep-state
#Mailserver 
$IPF 200 allow tcp from any to any 25 out via re0 setup keep-state
$IPF 210 allow tcp from any to any 25 in via re0 setup keep-state
$IPF 220 allow tcp from any to any 465 in via re0 setup keep-state
$IPF 230 allow tcp from any to any 465 out via re0 setup keep-state
$IPF 240 allow tcp from any to any 993 out via re0 setup keep-state
$IPF 250 allow tcp from any to any 993 in via re0 setup keep-state
$IPF 260 allow tcp from any to any 995 out via re0 setup keep-state
$IPF 270 allow tcp from any to any 995 in via re0 setup keep-state
#SSH
$IPF 285 allow tcp from any to any 12000 out via re0 setup keep-state
$IPF 295 allow tcp from any to any 12000 in via re0 setup keep-state
#Webserver
$IPF 300 allow tcp from any to any 80 out via re0 setup keep-state
$IPF 310 allow tcp from any to any 80 in via re0 setup keep-state
$IPF 320 allow tcp from any to any 443 out via re0 setup keep-state
$IPF 330 allow tcp from any to any 443 in via re0 setup keep-state
#Webmin
$IPF 340 allow tcp from any to any 12500 out via re0 keep-state
$IPF 350 allow tcp from any to me 12500 in via re0 keep-state
#Pyzor
$IPF 350 allow tcp from any to any 24441 out via re0 setup keep-state
$IPF 360 allow tcp from any to any 24441 in via re0 setup keep-state
#Razor
$IPF 370 allow tcp from any to any 2703 out via re0 setup keep-state
$IPF 380 allow tcp from any to any 2703 in via re0 setup keep-state
#DCC
$IPF 390 allow udp from any to any 6277 out via re0 keep-state
$IPF 400 allow udp from any to any 6277 in via re0 keep-state
#CSUP
$IPF 410 allow tcp from any to any 5999 out via re0 setup keep-state
#PING
$IPF 420 allow icmp from any to any out via re0 keep-state
#Whois
$IPF 430 allow tcp from any to any 43 out via re0 setup keep-state


Ich werde die Regeln erst einmal nach deinen Erklärungen anpassen. Schweres Thema, manchmal nicht richtig zu verstehen. Vielleicht sollten sich ein paar Anwender einmal zusammen setzen und eine Deutsche Anleitung schreiben.


MFG
Silvio
 
Zurück
Oben