Ich habe einen Testaufbau im Labor mit 4 Maschinen:
- 2 alte P4-Maschinen (t1, t2)
- 1 Xeon 5420 DP 2,5 GHz 8 GB RAM (t3) Intel e1000
- 1 Xeon 5420 DP 2,5 GHz 8 GB RAM (t4) Intel e1000
um die Leistung der Linux-Firewall zu testen, da wir in den letzten Monaten von einer Reihe von Syn-Flood-Angriffen gebissen wurden. Auf allen Computern wird Ubuntu 12.04 64bit ausgeführt. t1, t2, t3 sind über einen 1 GB / s-Schalter miteinander verbunden, t4 ist über eine zusätzliche Schnittstelle mit t3 verbunden. Also simuliert t3 die Firewall, t4 ist das Ziel, t1, t2 spielen die Angreifer, die einen Paketsturm erzeugen (192.168.4.199 ist t4):
hping3 -I eth1 --rand-source --syn --flood 192.168.4.199 -p 80
t4 verwirft alle eingehenden Pakete, um Verwechslungen mit Gateways, Leistungsproblemen von t4 usw. zu vermeiden. Ich beobachte die Paketstatistiken in iptraf. Ich habe die Firewall (t3) wie folgt konfiguriert:
- stock 3.2.0-31-generic # 50-Ubuntu SMP Kernel
- rhash_entries = 33554432 als Kernel-Parameter
sysctl wie folgt:
net.ipv4.ip_forward = 1 net.ipv4.route.gc_elasticity = 2 net.ipv4.route.gc_timeout = 1 net.ipv4.route.gc_interval = 5 net.ipv4.route.gc_min_interval_ms = 500 net.ipv4.route.gc_thresh = 2000000 net.ipv4.route.max_size = 20000000
(Ich habe viel optimiert, um t3 am Laufen zu halten, wenn t1 + t2 so viele Pakete wie möglich senden).
Das Ergebnis dieser Bemühungen ist etwas seltsam:
- t1 + t2 schaffen es, jeweils etwa 200.000 Pakete / s zu senden. t4 sieht im besten Fall ungefähr 200k, so dass die Hälfte der Pakete verloren geht.
- t3 ist auf der Konsole fast unbrauchbar, obwohl Pakete durch sie fließen (hohe Anzahl von Soft-IRQs)
- Der Routen-Cache-Garbage-Collector ist bei weitem nicht vorhersehbar und in der Standardeinstellung von sehr wenigen Paketen / s (<50.000 Pakete / s) überfordert.
- Durch Aktivieren der Stateful Iptables-Regeln sinkt die auf t4 ankommende Paketrate auf etwa 100.000 Pakete / s, wodurch effektiv mehr als 75% der Pakete verloren gehen
Und das - hier ist mein Hauptanliegen - mit zwei alten P4-Maschinen, die so viele Pakete wie möglich senden - was bedeutet, dass fast jeder im Netz dazu in der Lage sein sollte.
Hier ist meine Frage: Habe ich einen wichtigen Punkt in der Konfiguration oder in meinem Test-Setup übersehen? Gibt es Alternativen zum Aufbau eines Firewall-Systems, insbesondere auf SMP-Systemen?