Re: stateful Firewall und Timeouts

From: Christian Lackas <lackas(at)mail.desy.de>
Date: Mon, 8 Jul 2002 14:59:05 +0200

* Oliver Brandmueller <ob(at)e-Gitt.NET> [020708 14:36]:

Hallo Oliver,

> > net.inet.ip.fw.dyn_ack_lifetime: 300
> > (das sollten die Defaults meines FreeBSD 4.6-STABLE 5.7.2002 sein).
> > Kann ich da jetzt einfach »dyn_syn_lifetime« erhöhen? Bei anderen
> > Verbindungen (HTTP, FTP, POP, ...). Kann das ja ein vernünftiger Wert
> > sein. Und ich will auch nicht, dass die Liste mit den dynamischen Regeln
> > überläuft.
> Obiges ist der Wert (der aber 5 Minuten steht!), den Du erhöhen
> möchtest.

Möchte ich das denn wirklich? Für den Großteil der Verbindungen ist
obiger Wert ja wohl gut gewählt. Und ich möchte nur für einige wenige
einen etwas höheren.

> Weiterhin möchtest Du die dynamischen Rules natürlich nur
> mit setup-packets eintragen:

mal abgesehen von den Anti-Spoofing-Regeln (siehe /etc/rc.firewall) sieht meine
Firewall derzeit so aus:

  # loopback device

  # anti-spoofing

  # nat
  ${fwcmd} add divert natd all from any to any via ${natd_interface}

  # anti-spoofing die Zweite
  
  ${fwcmd} add check-state
  
  ${fwcmd} add deny tcp from any to any established
  
  # »iff« enthält die internen devices (xl0, xl1, ed0)
  for device in ${iif}; do
      ${fwcmd} add allow tcp from any to any via ${device} setup keep-state
  done

  # Allow outgoing DNS queries ONLY to the specified servers.
  # Allow them back in with the answers... :)
  for host in 212.185.249.84/24 194.25.2.129/24; do
      $fwcmd add allow udp from any to $host 53 out xmit ${oif} keep-state
      $fwcmd add allow udp from $host 53 to any in recv ${oif} keep-state
  done

  # Allow access to some of our services
  for port in 80 443 22 110 143; do
      ${fwcmd} add pass tcp from any to any $port setup keep-state
  done

  $fwcmd add allow icmp from any to any icmptype 0,3,4,8,11,12
  
  ${fwcmd} add reset tcp from any to any 113 setup
  
  # Reject&Log all setup of incoming connections from the outside
  ${fwcmd} add 50000 deny log tcp from any to any in via ${oif} setup
  
  ${fwcmd} add 65000 deny log all from any to any

> Ich vermute Deinen Fehler in den Rules: Du triggerst nicht auf setup und
> machst daher kein deny für established Pakete vorher.

Eigentlich dachte ich schon, dass ich das getan hätte. Der deny für die
Packete mit RST und ACK ist hier doch eigentlich egal. Später matched
man doch auch nur noch auf setup, oder nicht?

> Folglich triggerst Du mit den Paketen der established Connections
> jeweils wieder neu die dynamische Regel. Bei established connection
> durchläuft er nicht mehr den Verbindungsaufbau (hat er ja schon hinter
> sich), also bleibt das dann irgendwo immer bei den 20 Sekunden von
> dyn_syn_lifetime hängen.

Das klingt zumindest plausibel. Ich werde mir das nochmal anschauen
(speziell mit dem neugewonnenen Wissen). Fünf Minuten sind natürlich
auch noch nicht lange (ich habe ssh-Verbindungen oft Tagelang offen).
Benutzt du dann noch keep-alive? Ich danke dir auf jeden Fall.

BTW: Falls sonst noch jemand etwas zu den Regeln beizutragen hat: ich
bin für Vorschläge offen.

Gruß
 Christian

-- 
Mädchen, schützt eure Unschuld! Eßt Knoblauch, Knoblauch, Knoblauch!
http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 08 Jul 2002 - 14:59:40 CEST

search this site