Iptables Problem

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
terr0r
Beiträge: 2
Registriert: 06.05.2010 15:14:55

Iptables Problem

Beitrag von terr0r » 06.05.2010 15:34:00

Hallo,
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 :P
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

Benutzeravatar
feldmaus
Beiträge: 1308
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Re: Iptables Problem

Beitrag von feldmaus » 14.05.2010 16:13:51

Hi terr0r,

EDIT: Willkommen in diesem Forum. :D Habe gerade erst gesehen das ist dein erster Beitrag.

ich bekomme folgende Meldung in der Konsole,

Code: Alles auswählen

feld-bert:/home/markus# iptables -A FORWARD -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
iptables v1.4.2: Unknown arg `(null)'
Try `iptables -h' or 'iptables --help' for more information.
Das bekomme ich auf meinem Client. Was spuckt denn dein Rechner aus, wenn Du das auf der Konsole eingibst, als root? Versuch mal ein bischen rum zu spielen mit deinen iptables Regeln, es wird ja beim Neustart zurück gesetzt. Einfach Argument für Argument wegnehmen, bis keine Fehlermeldung mehr kommt.

Hast Du die nötigen Module geladen?

Grüße Markus

terr0r
Beiträge: 2
Registriert: 06.05.2010 15:14:55

Re: Iptables Problem

Beitrag von terr0r » 16.05.2010 21:44:48

Hi,
also wie gesagt bei mir geht das jetzt alles, nur ich kann den gleichen Namen nicht ein 2. mal vergeben. Da die Regel dann zwar funktioniert, aber Iptables den alten Wert für --hashlimit-burst nimmt, wenn der Name für --hashlimit-name schoneinmal verwendet wurde.
Ist aber eigendlich kein Problem, da ich die Werte für den Burst eh nicht ändere und wenn dann muss ich einfach einen anderen Namen nehmen.

Wenn ich deine Regel kopiere und genauso einfüge, nimmt mein iptables die Regel ohne Probleme an. Vieleicht ist bei dir beim Kopieren der Regel ja irgendein Steuerzeichen oder sowas mit dazwischengekommen und Iptables meckert deswegen..

Die Regel die ich im mom. Benutze sieht so aus:

Code: Alles auswählen

iptables -A INPUT -p tcp -m tcp -m state -m hashlimit -i eth0 --dport 22 --state NEW -j DROP  --hashlimit-above 1/min --hashlimit-burst 3 --hashlimit-mode srcip --hashlimit-name ssh536
Gruß Andre

Antworten