IPFW und NATD

asg

push it, don´t hype
IPFW und NATD (FORWARD bei IPFW2)

Hallo.

Da das Thema "Sicherheit" kaum ohne das geflügelte Wort "Firewall" daherkommt und immer mehr User eine solche haben wollen, aber nicht wissen wie dies anzustellen ist, hier mal eine Vorgehensweise für IPFW und NATD.

1. KERNEL
Die hier angegebenen options bitte in den Kernel übernehmen und diesen neu bauen.

1.1 PPPoE (bei Benutzung von DSL)

options NETGRAPH
options NETGRAPH_ETHER
options NETGRAPH_SOCKET
options NETGRAPH_PPPOE

1.2 IPFW und NATD

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPDIVERT

NETGRAPH kann, wenn es gebraucht wird (bei DSL), auch als Modul geladen werden. Dazu muss in der /boot/loader.conf folgender Eintrag gemacht werden:

ng_pppoe_load="YES"

ACHTUNG!
Entweder oder heisst es hier. Entweder als Modul laden oder in den Kernel eincompilieren. Wenn man beides macht kann keine Verbindung mit DSL aufgebaut werden. Mehr zu "DSL" steht in anderen anderen howto.

2. VOR dem reboot nach Kernel-Bau

ACHTUNG!
Wenn Du obiges in den Kernel eingebaut wird, dann wird auch eine Regel aktiviert, ohne das man eigene IPFW Rulesets angelegt hat. Diese Regel lautet:

65534 add deny ip from any to any

Sollte man den Rechner einfach rebooten, so wird diese Regel aktiviert.
Das geringste Übel dabei wäre, dass man nicht mehr nach aussen kommt (Intranet/ Internet), da viel schlimmere aber ist, das auch niemand mehr auf den Rechner zugreifen kann, da JEDER Zugriff durch diese Regel untersagt wird.
Schön blöd wenn man die Box nicht physikalisch bei sich stehen hat.

Daher, um sich nicht selbst ins Knie zu schiessen, setze auch folgendes ind die /etc/rc.conf ein:

firewall_type="OPEN"

Sind erstmal eigene Rules geschrieben worden, MUSS dieser Eintrag wieder gelöscht werden, da die Regeln sonst nicht greifen, die Firewall bliebe offen.


3. Einträge in die /etc/rc.conf

3.1 IPFW

firewall_enable="YES"
firewall_script="/etc/firewall/fwrules"
firewall_logging="YES"

Die zweite Zeile kann entsprechend angepasst werden, hier wird der Pfad und die Datei angegeben in der die Firewall Rules liegen.

3.2 NATD

natd_program="/sbin/natd"
natd_enable="YES"
natd_interface="tun0"
natd_flags="-dynamic -f /etc/firewall/natd.conf"

In der letzten Zeile wird die Datei angegeben die die NAT Rules beinhaltet.

3.3 Gateway

Dient der Rechner als Gateway, so muss noch

gateway_enable="YES"

in die /etc/rc.conf aufgenommen werden.
So ist es den Clients möglich über diesen Rechner in das Internet zu gelangen.

Ich lege die firewall rules Datei und die für NAT immer in ein Verzeichnis, das macht das configurieren einfacher.


4. IPFW Rules schreiben

Ich gehe davon aus das die Datei für die IPFW Rules /etc/firewall/fwrules ist. Diese Datei sollte auch nur von root lesbar, schreibbar und ausführbar sein.

WICHTIG! Die hier angegebenen interfaces sind meine. Ihr müsst diese also entsprechend ändern, da ich diese statisch eingetragen habe. Irgendwann werde ich diese auch dynamisch einbinden.
xl0 ist mein internes Interface welches zum HUB geht und welches das Gateway vom internen Netz zum Internet darstellt.

#!/bin/sh
# Damit NATD auch funktioniert
ipfw add 10 divert natd all from any to any via tun0

# Blockiert den port 6000 (X)
ipfw add deny log tcp from any to any 6000 in recv tun0

ipfw add allow ip from any to any via lo0
ipfw add allow ip from any to any via xl0

# Erlaubt alle Verbindungen welche von hier initiiert wurden
ipfw add allow tcp from any to any out xmit tun0 setup

# Wenn die Verbindung einmal hergestellt wurde, erlaube dieser offen zu stehen
ipfw add allow tcp from any to any via tun0 established

ipfw add allow log tcp from any to any 80 setup
ipfw add allow log tcp from any to any 22 setup
ipfw add allow log tcp from any to any 25 setup
ipfw add allow log tcp from any to any 21 setup
ipfw add allow log tcp from any to any 1022 setup

# This sends a RESET to all ident packets.
ipfw add reset log tcp from any to any 113 in recv tun0

# Erlaubt ausgehende DNS queries NUR auf die beiden angegebenen Server
ipfw add allow udp from any to 195.20.224.234 53 out xmit tun0
ipfw add allow udp from any to 194.25.2.129 53 out xmit tun0
ipfw add allow udp from any to 217.5.99.105 53 out xmit tun0

ipfw add allow tcp from any to 195.20.224.234 53 out xmit tun0
ipfw add allow tcp from any to 194.25.2.129 53 out xmit tun0
ipfw add allow tcp from any to 217.5.99.105 53 out xmit tun0

# Erlaubt die Antwort der DNS Nachfragen
ipfw add allow udp from 195.20.224.234 53 to any in recv tun0
ipfw add allow udp from 194.25.2.129 53 to any in recv tun0
ipfw add allow udp from 217.5.99.105 53 to any in recv tun0

ipfw add allow tcp from 217.5.99.105 53 to any in recv tun0
ipfw add allow tcp from 194.25.2.129 53 to any in recv tun0
ipfw add allow tcp from 217.5.99.105 53 to any in recv tun0

# Loggt ICMP Anfragen (echo und dest. unreachable) == script kiddies
ipfw add allow log icmp from any to any in recv tun0 icmptype 3
ipfw add allow log icmp from any to any in recv tun0 icmptype 8
# ICMP erlauben
ipfw add allow icmp from any to any

# Blockiert alle Anfragen auf ports unter 1000
ipfw add deny log tcp from any to any 0-1000 in recv tun0 setup
# 2049 == NFS
ipfw add deny log tcp from any to any 2049 in recv tun0 setup

# Loggt netbux connections
ipfw add deny log tcp from any to any 12345 in recv tun0
ipfw add deny log tcp from any to any 20034 in recv tun0

# Alles andere verbieten
ipfw add deny ip from any to any

Geloggt werden alle Rules in denen das Wort "log" vorkommt (wohin diese geloggt werden, dazu gleich mehr...).

Falls Ihr mal alle rules geflushed habt, oder eine neue hinzugefügt, so könnt Ihr einfach mit:

./fwrules

diese rules neu einlesen.

5. Loggen von IPFW

Es wurde in der /etc/rc.conf angegeben das IPFW geloggt werden soll. Ebenso wurde in den Rules angegeben welche von diesen geloggt werden sollen, nur wohin?

Ganz einfach.
Dazu bitte folgendes in die /etc/syslog.conf übernehmen:

# IPFW
!ipfw
*.* /var/log/firewall.log

Hier wird gesagt, das alles in die Datei "firewall.log" geloggt werden soll.


6. NATD Rules

NATD ist wirklich sehr einfach zu bedienen. In /etc/rc.conf wurde schon gesagt wo die natd.conf zu finden ist, in diese trägt man Rules wie die folgenden ein:

redirect_port tcp 192.168.0.203:80 80
redirect_port udp 192.168.0.203:80 80
redirect_port tcp 192.168.0.202:22 22
redirect_port udp 192.168.0.202:22 22
redirect_port tcp 192.168.0.203:21 21
redirect_port udp 192.168.0.203:21 21

Hier werden Anfragen an den Port 80 (HTTP) auf die interne IP 192.168.0.203 (eine jail bei mir) weitergeleitet.
Bei den anderen Einträgen verhält es sich dementsprechend.

NEU:

Wenn IPFW2 genutzt wird, kann man das forwarding direkt in den Rules machen. Damit wird NATD obsolet.

Folgendes ist dabei zu beachten:

a) Kernel neu bauen
Um IPFW2 zu nutzen sollte der Kernel mit folgender Option neu gebaut werden:

options IPFW2

b) /etc/make.conf ändern
Damit bei einem make world Lauf auch IPFW2 gebaut wird muss folgendes in die angegeben Datei eingetragen werden:

IPFW2=TRUE

c) IPFW FORWARD Rules schreiben
Diese können direkt zu den anderen Rules geschrieben werden.
Beispiel:

add 1200 fwd 127.0.0.1,26 tcp from any to mail-server 25 out

Mehr erfährt man unter "man ipfw"


Links
Hier einige links die einem das Erstellen von IPFW Rules erleichtern können:
http://www.freebsd-howto.com/HOWTO/Ipfw-HOWTO
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls.html


Da diese howto "aus der Hüfte heraus" entstanden ist, könnte dies evtl. die einen oder anderen Fehler beinhalten. Was ich selbstverständlich nicht hoffe.
Für Anregungen was man noch aufnehmen könnte, was Verbesserungswürdig erscheint, bin ich offen.

Ansonsten, viel Spass.
 
Zuletzt bearbeitet:
Super Howto!
Wollte so eins auch immer mal schreiben, aber hab irgendwie noch nie die Zeit und Lust dazu gefunden ;)
Danke!
 
Um mal ein paat Anglizismen zu nutzen, wo diese mal wieder nicht angebracht wären:
You are welcome.

Falls jemandem etwas fehlt, falls man Fehler findet, das eine oder andere nicht klar ist, oder sonstwas verbessert werden sollte, bitte mir schreiben. Danke.
 
noch eins was hier evtl. mit rein kann

ich bin nämlich auch grad auf der suche wie ich das realisieren soll....

hab ne dsl-flatrate und krieg ja alle 24h ne neue ip - um dyndns zu aktualisieren hab ich den ddclient.
nun muss ich den aber immer dann anstarten wenn ich ne neue ip bekommen habe....

was ich bisher gefunden habe müsste das eigentlich mit den entsprechendem aufruf in

/etc/ppp/ip-up
bzw.
/etc/ppp/ip-down

funktionieren. da diese files standardmässig nicht existieren bin ich mir etz aber au nit so sicher darüber....

bitte um verbesserung falls das so nit stimmt - habs ansatzweise so im netz gefunden
 
Moin.

ddclient nutze ich zwar nicht, sondern ddup, aber das Prinzip sollte das gleiche sein wie Du das Problem lösen könntest. Hmm, könnte ja mal ein Howto schreiben von wegen dyndns und ddup. Ja, werde ich beizeiten mal machen.

Aber zu Deinem Problem.
Schreibe doch ein Script, welches via cronjob alle X Minuten aufgerufen wird, und überprüft ob die IP gleich geblieben ist, oder nicht. Wenn nicht, rufe ddclient auf und aktualisere dyndns, wenn doch, mache nichts.

Beispiel (für ddup, sollte aber bei ddclient nicht grossartig anders sein):

Legt unter /usr/local/etc/rc.d ein Skript mit dem Namen "020.ddup_start.sh" und dem Inhalt an:

#!/bin/sh

case "$1" in
start)
[ -x /etc/periodic/ddup_update.sh ] && /bin/sh /etc/periodic/ddup_update
.sh && echo -n ' dyndns_update_complete'
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
;;
esac

exit 0




Pack das Script mit dem Namen "ddup_udate.sh" nach /etc/periodic/

#!/bin/sh

#Variablen
host_net="deine.dynadresse.net"
host_com="deine.dynadresse.com"
host_org="deine.dynandresse.org"
interface="tun0"
email="deinemail@adresse.de"
oldfile="/var/log/dyndns/ddclient_OLD"
newfile="/var/log/dyndns/dddclient_NEW_temp"

# die nachfolgenden 2 anpassen an ddclient
ddclient_cmd="/usr/local/sbin/ddup"
ddclient_flags="--wildcard"

#bestehende Konfiguration in newfile packen
/sbin/ifconfig $interface | /usr/bin/grep inet > $newfile

if [ -r "$oldfile" ]; then
# wenn oldfile vorhanden haben wir infos

# wenn oldfile und newfile identisch, dann loesche newfile
/usr/bin/cmp -s $oldfile $newfile && /bin/rm -f $newfile
date
# wenn dem nicht so ist dann:
# -starte ddclient
# -sende eine email
# -yberschreibe oldfile mit newfile
if [ -r "$newfile" ]; then
$ddclient_cmd $ddclient_flags --host $host_net
$ddclient_cmd $ddclient_flags --host $host_com
$ddclient_cmd $ddclient_flags --host $host_org
/usr/bin/mail -s "$host_net $host_com $host_org update" $email < $newfile
/bin/mv -f $newfile $oldfile
fi

else

# der erste Lauf oder keinerlei Info

$ddclient_cmd $ddclient_flags --host $host_net
$ddclient_cmd $ddclient_flags --host $host_com
$ddclient_cmd $ddclient_flags --host $host_org
/usr/bin/mail -s "$host_net $host_com $host_org update" $email < $newfile
/bin/mv -f $newfile $oldfile
fi


Füge in Deine /etc/crontab folgendes ein:
*/5 * * * * root /etc/periodic/ddup_update.sh >> /var/log/dyndns/dyndns.log

Und lege unter das Verzeichnis "dyndns/" unter /var/log an (schreibrechte für root).

Dort werden Deine logs gelagert, wie ich sie oben im script angegeben hatte.
 
Servus.

Moonlook, man kann ja nicht alles kennen ;).

Aber nach jahrelangen Recherchen, in denen ich weder Kosten und Mühe gescheut habe, findet man so einiges :-)
 
sooo, habe das script von grunix ein wenig angepasst und "dynamisiert". funktioniert bei mir hier primstens.

die xxx - Einträge müssen natürlich von euch angepasst werden!
viel spass damit.

++ SNIP /etc/firewall/fwrules

#!/bin/sh
#

# Mach "Quiet"
fwcmd="/sbin/ipfw -q"

# Erstmal alles saubermachen bevor wir anfangen
${fwcmd} -f flush

# Das setzen unserer eigenen Variabeln
int_interface="dc0" # ${int_interface} Internes Interface
natd_interface="dc3" # ${natd_interface} Externes Interface
dns_server="80.69.98.110" # ${dns_server} DNS-Server
open_ports="20,21,22,25,80,49152-65535" # ${open_ports} Offene Ports

# Hiermit dürfen alle ins Internet
${fwcmd} add 50 divert natd all from any to any via ${natd_interface}

# Erlaubt Loopbackverbindungen
${fwcmd} add allow ip from any to any via lo0
#${fwcmd} add 100 pass all from any to any via lo0
#${fwcmd} add 200 deny all from any to 127.0.0.0/8
#${fwcmd} add 300 deny ip from 127.0.0.0/8 to any

# Erlaubt internen Verkehr
${fwcmd} add allow ip from any to any via ${int_interface}

# Erlaubt alle Verbindungen welche von hier initiiert wurden
${fwcmd} add allow tcp from any to any out xmit ${natd_interface} setup

# Wenn die Verbindung einmal hergestellt wurde, erlaube dieser offen zu stehen
${fwcmd} add allow tcp from any to any via ${natd_interface} established

# Erlaubte Dienste die ausm Internet erreicht werden dürfen
${fwcmd} add allow tcp from any to any ${open_ports} setup

# This sends a RESET to all ident packets.
${fwcmd} add reset tcp from any to any 113 in recv ${natd_interface}

# Erlaubt ausgehende DNS queries NUR auf angegebenem DNS-Server
${fwcmd} add allow udp from any to ${dns_server} 53 out xmit ${natd_interface}
${fwcmd} add allow tcp from any to ${dns_server} 53 out xmit ${natd_interface}
${fwcmd} add allow udp from ${dns_server} 53 to any in recv ${natd_interface}
${fwcmd} add allow tcp from ${dns_server} 53 to any in recv ${natd_interface}

# Loggt ICMP Anfragen (echo und dest. unreachable) == script kiddies
${fwcmd} add allow log icmp from any to any in recv ${natd_interface} icmptype 3
${fwcmd} add allow log icmp from any to any in recv ${natd_interface} icmptype 8

# ICMP erlauben
${fwcmd} add allow icmp from any to any

# Alles andere verbieten (Wird nicht geloggt)
${fwcmd} add deny ip from any to any
 
Zuletzt bearbeitet:
Original geschrieben von AndreasG
noch eins was hier evtl. mit rein kann

ich bin nämlich auch grad auf der suche wie ich das realisieren soll....

hab ne dsl-flatrate und krieg ja alle 24h ne neue ip - um dyndns zu aktualisieren hab ich den ddclient.
nun muss ich den aber immer dann anstarten wenn ich ne neue ip bekommen habe....

was ich bisher gefunden habe müsste das eigentlich mit den entsprechendem aufruf in

/etc/ppp/ip-up
bzw.
/etc/ppp/ip-down

funktionieren. da diese files standardmässig nicht existieren bin ich mir etz aber au nit so sicher darüber....

bitte um verbesserung falls das so nit stimmt - habs ansatzweise so im netz gefunden

/etc/ppp/ppp.linkup
bzw.
/etc/ppp/ppp.linkdown
:)
 
ich steig da nicht richtig durch. wenn ich mich an das howto vom anfang halte und das nette dynamisierte script benutze ist meine netz-kommunikation voellig tot.

gibts das was was ich noch beachten muss?
ich hab hier nur ein notebook das ins i-net ueber ein router geht, demnach keine gatewayfunktion o.ae braucht.

gruss
eeknay

edit:
muss ich die sachen ins kernel packen UND die anpassungen in der rc.conf machen?
ich hab ausserdem noch eine /etc/rc.firewall
was ist das?
 
Zuletzt bearbeitet:
Original geschrieben von eeknay
ich steig da nicht richtig durch. wenn ich mich an das howto vom anfang halte und das nette dynamisierte script benutze ist meine netz-kommunikation voellig tot.

gibts das was was ich noch beachten muss?
ich hab hier nur ein notebook das ins i-net ueber ein router geht, demnach keine gatewayfunktion o.ae braucht.

gruss
eeknay

edit:
muss ich die sachen ins kernel packen UND die anpassungen in der rc.conf machen?
ich hab ausserdem noch eine /etc/rc.firewall
was ist das?

find ich ne gute frage mit dem "tot" kann da jemand weiterhelfen? ich hab meins auch getotet
 
Hallo?

Ich habe zu der ganze Geschichte 3 kleine Bemerkungen:

1) Respekt - nach sowas hatte ich frueher immer gesucht....

2) Warum sollte man denn RESET zu alle ident packeten schicken. Kann man die nicht auch einfach verschwinden lassen und gar nix antworten?

3) Hab so ein aehnliches Setup bei mir auch laufen. Aber der DNS Teil geht bei mir auch ohne das ich irgentwelche TCP optionen festlege. Fuer was speziell sind die denn gut?
zB: ipfw add allow tcp from any to 195.20.224.234 53 out xmit tun0

DANKE
 
@eeknay
Was ist wenn Du nicht die dynamiche Rules von marzl nimmst, sondern die die ganz oben mit dabei stehen?
Was heisst tot? Ping geht nicht mehr? Was sagt "ifconfig"? Gibts tun0?
Was sagt das log?

Die Anpassung in der rc.conf musst Du machen. Das einzige wo Du aufpassen musst ist, das Du ENTWEDER Module lädst, oder aber das genannte in den kernel kompilierst.
Mach es so wie beschrieben, dann sollte das wunderbar funktionieren, so ist dies hier zumindest der Fall.
 
Original geschrieben von eeknay
ich hab ausserdem noch eine /etc/rc.firewall
was ist das?

Das ist ein firewall script welches per default dabei ist.
Wir nehmen unser eigenes FW Script:

firewall_script
(str) If you want to run a firewall script other than
/etc/rc.firewall, set this variable to the full path to
that script.
 
Original geschrieben von FierceOne

2) Warum sollte man denn RESET zu alle ident packeten schicken. Kann man die nicht auch einfach verschwinden lassen und gar nix antworten?

Wir sind freundlich ;-).
Wenn es sich um ein TCP Paket handelt wird ein RST versendet, ansonsten wird das Paket verworfen.

Du kannst sicher auch "reject" nehmen...

3) Hab so ein aehnliches Setup bei mir auch laufen. Aber der DNS Teil geht bei mir auch ohne das ich irgentwelche TCP optionen festlege. Fuer was speziell sind die denn gut?

Wenn eine DNS Antwort grösser ist als das maximum der Grösse die für ein UDP Datagram zur Verfügung steht, wird TCP nutzen.
 
oha wieder was gelernt.
naja dann werde ich das mal noch dazuschreiben.
Also ein wenig freundlicher und offener fuer DNS Antworten. :)
 
soo, ich hab das dyn-script noch etwas erweitert und verfeinert. hinzugekommen ist stateful-inspection und antispoofing.
aber seht selbst:

bei irgendwelchen fehler oder ergänzungen schreibt mir ne pm, dann änder ich das hier ab.

Code:
#!/bin/sh
#

# Erstmal alles saubermachen bevor wir anfangen
# Also die Regeln auf "Null" stellen
/sbin/ipfw -q -f flush

# IPFW-Kommando "Quiet"
fwcmd="/sbin/ipfw -q add"

# Das setzen unserer eigenen Variabeln
int_interface="dc0"             # ${int_interface} Internes Interface
natd_interface="tun0"           # ${natd_interface} Externes Interface
dns_server1="212.185.253.136"   # ${dns_server1} 1. DNS-Server des ISP
dns_server2="194.25.2.129"      # ${dns_server2} 2. DNS-Server des ISP
open_ports="20,21,22,25,80,443,465,993"  # ${open_ports} Offene Ports

# Erlaubt Loopbackverbindungen
${fwcmd} 00100 allow ip from any to any via lo0

# Hiermit dürfen alle ins Internet
${fwcmd} 00150 divert natd all from any to any via ${natd_interface}

# Stateful Packet Inspection
${fwcmd} 00200 check-state

# Erlaubt internen Verkehr
${fwcmd} 00210 allow ip from any to any via ${int_interface} keep-state

# Anti-Spoofing
${fwcmd} 00220 deny log ip from 10.0.0.0/8 to any in via ${natd_interface}
${fwcmd} 00230 deny log ip from 172.16.0.0/12 to any in via ${natd_interface}
${fwcmd} 00240 deny log ip from 192.168.0.0/16 to any in via ${natd_interface}

# Fragmentiert Packete werden verworfen
${fwcmd} 00250 deny all from any to any frag in via ${natd_interface}

# Ack Packete ohne vorheriges Req werden geblockt
${fwcmd} 00260 deny tcp from any to any established in via ${natd_interface}

# Erlaubt alle Verbindungen welche von hier initiiert wurden
${fwcmd} 00300 allow tcp from any to any out via ${natd_interface} setup keep-state

# Wenn die Verbindung einmal hergestellt wurde, erlaube dieser offen zu stehen
${fwcmd} 00310 allow tcp from any to any via ${natd_interface} established

# Erlaubte Dienste die ausm Internet erreicht werden dürfen
${fwcmd} 00400 allow tcp from any to any ${open_ports} setup keep-state

# This sends a RESET to all ident packets.
${fwcmd} 00500 reset log tcp from any to me 113 in via ${natd_interface}

# Erlaubt ausgehende DNS queries NUR auf angegebenem DNS-Server
${fwcmd} 00600 allow udp from any to ${dns_server1} 53 out via ${natd_interface} keep-state
${fwcmd} 00610 allow tcp from any to ${dns_server1} 53 out via ${natd_interface} setup keep-state
${fwcmd} 00620 allow udp from any to ${dns_server2} 53 out via ${natd_interface} keep-state
${fwcmd} 00630 allow tcp from any to ${dns_server2} 53 out via ${natd_interface} setup keep-state

# Loggt ICMP Anfragen (echo und dest. unreachable) == script kiddies
${fwcmd} 00700 allow log icmp from any to any in recv ${natd_interface} icmptype 3
${fwcmd} 00710 allow log icmp from any to any in recv ${natd_interface} icmptype 8

# ICMP erlauben
${fwcmd} 00750 allow icmp from any to any

# Alles andere verbieten (Wird nicht geloggt)
${fwcmd} deny ip from any to any
 
Zuletzt bearbeitet:
Sehr schönes Skript, Marzl. Ich habe einen DSL- und einen ISDN-Router, beide jeweils mit FreeBSD-5.2.1p1 bestückt, zu letzterem habe ich meine ipfw2-Regeln in diesem Thread veröffentlicht, in einigen entscheidenden Punkten meine ich eine restriktivere Politik zu verfolgen, als ich in deinen Regeln erkennen kann. Insbesondere missfällt mir, daß in deinem Regelsatz für den Port 113 kein adaptives Stealthing vorgenommen wird. Ich habe allerdings das andere Extrem gewählt, ein full-stealth auf alle non-keep-state connections. Diese Regel impliziert bei einigen Seiten eine Verbindungsverzögerung von einigen Sekunden.
 
Zuletzt bearbeitet:
hab das mal so durchstöbert und mir ist aufgefallen das ihr alle das script ändert.
also ich hatte nen howto benutzt um meine firewall zu erstellen und da stand drin und so hab ich es auch gemacht das man in die rc.conf folgendes schreibt (auszug):

firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_type="/etc/ipfw.rules"

und die regeln dann einfach in ipfw.rules schreibt.
ist da ein gravierender unterschied oder fehler?
oder ist das wie immer freie wahl des weges?

thx
 
Hi,

ein super tut, dass mir geholfen hat, die ersten BSD-Hürden zu nehmen.

Eine Anmerkung zu dem 1. ipfw-script :
traceroutes funzen nicht mehr, daher habe ich folgenden Eintrag ergänzt :
ipfw add allow udp from any to any 33434-33524 out xmit tun0

cheers
 
Zurück
Oben