Nabend - ich habe hier mein FreeBSD-Server als Firewall (IPFW) am laufen und nem Pure-FTP-Server. Bisher lief damit alles problemlos, bis ich mein IPFW-Script komplett mit Stateful Regeln und Traffic Shaping für den Upload neu geschrieben hab. Seitdem können Leute zwar von aussen sowohl active als auch passive connecten, aber nach dem PORT bzw. PASV-Kommando kommt das LIST und da hängts. Nach nem Timeout meldet der Server dann, dass er nicht auf nen bestimmten Port (am Client wohl) connecten kann und ich find nich raus woran es liegt.
Hier mal mein Ruleset :
Das ganze funktioniert wunderbar, eigene Dienste die ins Netz dürfen von den Windows-Rechnern (Gamevoice und co, ICQ) und auch Spiele funktionieren alle, Portscans von Sygate und Co erkennen alle (bis auf die freigegebenen) Ports als Stealth, bin mir aber bewusst, dass das keine TrueStealth Firewall ist, soll sie auch nicht sein.
Auf jedenfall dachte ich, dass ich mit der ersten Regel nach dem check-state sowohl Verbindungen, die die Client-Rechner im LAN aufbauen, als auch solche, die der Server selbst, bzw. Dienste auf diesem wie Pure-FTP aufbauen, erlaubt sind.
Hier mal mein Ruleset :
Code:
# Enable reinjecting
${fwcmd} disable one_pass
# Upload-pipe for 22 kbyte/s
${fwcmd} pipe 1 config bw 192Kbit/s
# High-Priority queue for ACK-Packets
${fwcmd} queue 1 config pipe 1 weight 100 gred 0.05/35/45/0.4
# Medium-Priority queue for DNS/Gaming/SSH
${fwcmd} queue 2 config pipe 1 weight 80 gred 0.05/35/45/0.4
# Low-Priority for the dirty rest ;)
${fwcmd} queue 3 config pipe 1 weight 40 gred 0.05/35/45/0.4
${fwcmd} add queue 1 tcp from any to any out via ${natd_interface} tcpflags ack iplen 0-80
${fwcmd} add queue 2 udp from any to any out via ${natd_interface}
${fwcmd} add queue 3 all from any to any out via ${natd_interface}
# Localhost-Traffic erlauben
${fwcmd} add allow ip from any to any via lo0
# Internen Traffic erlauben
${fwcmd} add allow all from any to any via ${lan_interface}
# Anti-Spoofing Regeln und Blockieren vom Pseudo-Port NULL und Port 1
${fwcmd} add unreach host-unknown log ip from 10.0.0.0/8 to any in via ${natd_interface}
${fwcmd} add unreach host-unknown log ip from 172.16.0.0/12 to any in via ${natd_interface}
${fwcmd} add unreach host-unknown log ip from 192.68.0.0/16 to any in via ${natd_interface}
${fwcmd} add unreach host-unknown all from any to any ${closed_ports} in via ${natd_interface}
# Fragmentierte Pakete verwerfen
${fwcmd} add deny all from any to any via ${natd_interface} frag
# ICMP Types 3 und 8 mitprotokollieren und benoetigte ICMP Types erlauben
${fwcmd} add allow log icmp from any to any in via ${natd_interface} icmptype 3
${fwcmd} add allow log icmp from any to any in via ${natd_interface} icmptype 8
${fwcmd} add allow icmp from any to any in via ${natd_interface} icmptype 4
${fwcmd} add allow icmp from any to any in via ${natd_interface} icmptype 11
${fwcmd} add allow icmp from any to any in via ${natd_interface} icmptype 30
# Dynamische Regeln fuer ausgehende Verbindungen anlegen
${fwcmd} add check-state
${fwcmd} add allow tcp from any to any out via ${natd_interface} setup keep-state
${fwcmd} add allow all from any to any out via ${natd_interface} keep-state
# Bereits aufgebaute verbindungen beibehalten
${fwcmd} add allow all from any to any via ${natd_interface} established
# Aktive FTP-Verbindungen erlauben
${fwcmd} add allow all from any 20,21 to any in via ${natd_interface} setup keep-state
# Erlaubte TCP-Dienste die ausm Internet erreicht werden dürfen
${fwcmd} add allow tcp from any to any ${open_tcp_ports} in via ${natd_interface} setup keep-state
# Erlaubte UDP-Dienste die ausm Internet erreicht werden dürfen
${fwcmd} add allow udp from any to any ${open_udp_ports} in via ${natd_interface} keep-state
# Dem Rest STEALTH-Verhalten vortaeuschen
${fwcmd} add unreach host-unknown all from any to any in via ${natd_interface}
Auf jedenfall dachte ich, dass ich mit der ersten Regel nach dem check-state sowohl Verbindungen, die die Client-Rechner im LAN aufbauen, als auch solche, die der Server selbst, bzw. Dienste auf diesem wie Pure-FTP aufbauen, erlaubt sind.