ich versuche seid ein paar Tagen mir mit Iptables eine kleine Firewall zu basteln.
Nun möchte ich die erlaubten SSH-Verbindungen pro IP in einer bestimmten Zeit einschränken.
Ersteinmal musste ich mir einen Kernel kompillieren da die Module standardmäßig nicht aktiviert waren und somit in meiem kernel fehlen.
Das hat auch alles soweit geklappt.
Ich habe mir den Kernel kompilliert und die neuste Version von Iptables ebenfals.
Soweit funktioniert auch alles nur habe ich Probleme mit dem Modul "hashlimit".
Es macht einfach nicht das was es soll
![Razz :P](./images/smilies/icon_razz.gif)
Hier mal meine Regel
-m hashlimit -m tcp -p tcp --dport 22 --hashlimit-upto 1/min --hashlimit-burst 6 --hashlimit-mode srcip --hashlimit-name ssh -m state --state NEW -j ACCEPT
Wenn ich eine SSh-Verbindung aufbaue, dann geht die 1. Verbindung die ich aufbaue ganz normal durch.
Wenn ich dann aber eine 2. aufbaue, dann wird sie schon blockiert, egal was ich als Burst Wert so vorgebe.
Dann habe ich noch eine kleine Frage und zwar:
Wenn ich am ende einer Kette wo es nur Regeln gibt, die Packete Verwerfen(DROP) eine Regel hab die alles akzeptiert, dann trift diese Regel ja auf alles zu und es wird nicht zurück in die ausgangskette gesprungen oder?
Hier noch ein paar Informationen:
OS: Debian Lenny
Kernel: 2.6.33.3
Iptables: 1.4.7
EDIT:
Hallo, ich habe rausgefunden wo das Problem ist !
Fals wer anders auch mal das gleiche oder ein ähnliches Problem hat schreibe ich hier die ursache/lösung:
Und zwar wird der Wert für den "--hashlimit-burst" nicht aktualisiert, wenn man vorher schonmal eine regel mit dem gleichem "--hashlimit-name" hatte.
Auch nicht, wenn diese Regel bereits gelöscht oder ersetzt worden ist.
durch das setzten eines andren "--hashlimit-name" funktioniert bei mir alles wieder wie gewünscht.
Ich werde das ganze bei gelegenheit mal als bug melden (ich denke es ist einer ^^)
Gruß Andre