[iptables] connection tracking auf TCP beschränken

Blutschlumpf

Fleet Admiral
Registriert
März 2001
Beiträge
20.501
Hallo,

ich habe einen Server mit Bind drauf, dementsprechend viele UDP Pakete.

Ich filtere per iptables und limitieren die UDP Pakete mit dem hashlimit-Modul.
TCP-Verbindungen limite ich per connlimit.

Sieht dann etwa so aus:
Code:
iptables -A dns -m hashlimit --hashlimit-name udp-dns --hashlimit-above 10/sec --hashlimit-burst 100 --hashlimit-mode srcip --hashlimit-srcmask 32 -j DROP
iptables -A INPUT -p tcp --dport 53 -m connlimit --connlimit-above 10 -j REJECT --reject-with tcp-reset

Nun habe ich das Problem, dass der connection tracker auch die UDP "Verbindungen" listet und mir hin und wieder die conntrack table (Größe = 65k) überläuft.

Gibt es eine Möglichkeit (ohne was am Kernel-Code zu ändern ;)), dass man das tracking auf TCP beschränkt und UDP/TCP rausnimmt ?
Hab jetzt /proc/sys/net/netfilter/nf_conntrack_udp_timeout auf 1 Sekunde gesetzt und damit die Einträge reduziert, aber ich würde das gerne "sauber" machen, ist ja auch sinnlos verbratene CPU-Zeit.
 
In der raw-table kannst du Pakete ans target NOTRACK schicken, womit sie später das "teure" conntrack-modul umgehen.

ungetestet:
iptables -t raw -A PREROUTING -p udp -j NOTRACK
iptables -t raw -A OUTPUT -p udp -j NOTRACK
 
Zuletzt bearbeitet:
Habs gerade direkt mal ausprobiert, scheint zu funktionieren wie es soll.

Danke
 
Zurück
Oben