ipfw problem

pertze

DuBHeaD
hi leute,

ich hab gestern die ganze nacht über aus unzähligen beispielen mir meine ipfw rules zusammengebastelt weil ich echt null plan hab, zumindest anfänglich

nur die vorletzte regel für die dienste wie ftp usw. will nich richtig ... ich hatte es schon mal geschafft aber ein portscan sagt dass nun alles zu is, das will ich aber ned
kann da einer mal bitte nen blick drauf werfen, thx

Code:
#!/bin/sh

ipfw -q -f flush

ipfw add divert natd all from any to any via tun0

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

ipfw add deny all from any to 127.0.0.0/8
ipfw add deny all from 127.0.0.0/8 to any

ipfw add allow tcp from any to any established

ipfw add allow tcp from any to any out via tun0 setup keep-state
ipfw add allow udp from any to any out via tun0

ipfw add allow tcp from any to 194.25.2.129 53 out via tun0 setup keep-state
ipfw add allow udp from any to 194.25.2.129 53 out via tun0 keep-state
ipfw add allow tcp from any to 194.25.2.132 53 out via tun0 setup keep-state
ipfw add allow udp from any to 194.25.2.132 53 out via tun0 keep-state

ipfw add allow tcp from 194.25.2.129 53 to any in via tun0 setup keep-state
ipfw add allow udp from 194.25.2.129 53 to any in via tun0 keep-state
ipfw add allow tcp from 194.25.2.132 53 to any in via tun0 setup keep-state
ipfw add allow udp from 194.25.2.132 53 to any in via tun0 keep-state

ipfw add allow icmp from any to any icmptype 3,4
ipfw add allow icmp from any to any out icmptype 8
ipfw add allow icmp from any to any in icmptype 0

ipfw add allow tcp from any to me 20,21,22,80,443,5190,25500-25550 in via tun0 setup keep-state

ipfw add 65534 deny ip from any to any

vinc
 
Original geschrieben von vincent v.
#!/bin/sh

ipfw -q -f flush

ipfw add divert natd all from any to any via tun0

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

ipfw add deny all from any to 127.0.0.0/8
ipfw add deny all from 127.0.0.0/8 to any

ipfw add allow tcp from any to any established
ist glaube ich nicht notwendig wenn du ne statefull firewall mit keep-state machst.
ipfw add allow tcp from any to any out via tun0 setup keep-state
ipfw add allow udp from any to any out via tun0
kein keep-state bei udp?
ipfw add allow tcp from any to 194.25.2.129 53 out via tun0 setup keep-state
ipfw add allow udp from any to 194.25.2.129 53 out via tun0 keep-state
ipfw add allow tcp from any to 194.25.2.132 53 out via tun0 setup keep-state
ipfw add allow udp from any to 194.25.2.132 53 out via tun0 keep-state

ipfw add allow tcp from 194.25.2.129 53 to any in via tun0 setup keep-state
ipfw add allow udp from 194.25.2.129 53 to any in via tun0 keep-state
ipfw add allow tcp from 194.25.2.132 53 to any in via tun0 setup keep-state
ipfw add allow udp from 194.25.2.132 53 to any in via tun0 keep-state
wieso erlaubst du die nameserver noch einzeln, wo sie doch schon in den 2 Regeln darüber mit inbegriffen sind?
ipfw add allow icmp from any to any icmptype 3,4
ipfw add allow icmp from any to any out icmptype 8
ipfw add allow icmp from any to any in icmptype 0

ipfw add allow tcp from any to me 20,21,22,80,443,5190,25500-25550 in via tun0 setup keep-state
lass doch das "in via tun0 einfach weg.
ipfw add 65534 deny ip from any to any

hier ist meine derzeitige firewall, ich habs so einfach wie möglich gehalten:
Code:
# cat /etc/ipfw.rules
fwcmd="/sbin/ipfw -q"

${fwcmd} -f flush

#loopback
${fwcmd} add 100 pass ip from any to any via lo0

#dynamische regeln checken
${fwcmd} add 500 check-state

#tcp
${fwcmd} add 1000 pass tcp from me to any out setup keep-state  # 3-way-handshake erlauben + dyn
${fwcmd} add 1100 pass tcp from any to me 22 in setup keep-state # ssh erlauben

#udp
${fwcmd} add 2000 pass udp from me to any keep-state            # udp nach aussen erlauben + dyn

#icmp
${fwcmd} add 3000 pass icmp from any to me icmptypes 3 in   # Destination Unreachable erlauben
${fwcmd} add 3100 pass icmp from any to me icmptypes 4 in   # source quench erlauben
${fwcmd} add 3200 pass icmp from me to any icmptypes 8 out keep-state # ping out + response erlauben
${fwcmd} add 3300 pass icmp from any to me icmptypes 11 in  # Time Exceeded erlauben

#der rest
${fwcmd} add 65000 deny ip from any to any
natürlich kann man die reglen 3000, 3100 und 3300 auch zu einer zusammenfassen, ist hier aber wegen den kommentaren nicht so.

ist allerdings nicht auf nem gateway installiert, sollte aber leicht zu ändern sein
 
Zuletzt bearbeitet:
achja:

net.inet.tcp.blackhole
net.inet.udp.blackhole

sind zwei sehr schöne sysctl variablen, sollte man aber etwas vorsichtig mit sein.
 
Von woher kommt dein Portscan? Wenn der nicht ueber tun0 reinkommt, dann wird auf Ports 20,21,22,80.. nichts zu Gesicht bekommen.

PS: Verwende nicht deny, sondern reset.
 
PS: Verwende nicht deny, sondern reset.
so nett muss man aber nicht sein :D

wenn du deine letzte Regel loggen lässt, und nicht viel auf einmal machst kannst du mit
# tail -f /var/log/security
beobachten, welche Pakete denied werden, und dem entsprechend Regeln bauen,
außerdem ist
# ipfw -d show noch recht nützlich.
-t auch.

gruss Male
 
ja der portscan wurde von aussen über tun0 gemacht
das problem is dass ich meine regeln für richtig halte, ich weiß nicht wie ich das vom logischen ansatz her anders machen sollte, und syntax fehler sehe ich auch nicht

daher bin ich auf andre hilfe angewiesen :\

das dass alles nicht funktioniert sehe ich ja dass beispeilsweise der httpd auf http://xorn.dyndns.org nicht erreichbar ist, im lan allerdings schon

vinc
 
ah ok hab glaube den fehler gefunden
hadde mich schon gewundert, immer wenn ich die neuen rules (per ssh) geladen hab, hat er die ssh session gekillt

darum konnte ich auch nie sehen, dass er bei der zeile
Code:
ipfw add allow tcp from any to me 20,21,22,80,443,5190,25500-25550 in via tun0 setup keep-state
rummeckert :d
das 25500-25550 passte ihm da nicht

vinc
 
Zurück
Oben