Begrenzung der Quell-IP-Rate in iptables: Hash-Limit vs.

7

Ich möchte eine Ratenbegrenzung pro Quell-IP in iptables durchführen. Begrenzen Sie beispielsweise die Rate, mit der ein Host neue SSH-Verbindungen herstellen kann, auf 5 pro Minute. Meines Wissens gibt es zwei Möglichkeiten, dies zu tun:

Mit dem Hash-Limit-Modul

iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
  -m hashlimit --hashlimit-name SSH --hashlimit-above 5/min \
  --hashlimit-mode srcip -j REJECT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

Mit dem letzten Modul

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent \
  --rcheck --seconds 60 --hitcount 5 --name SSH --rsource -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW \
  -m recent --set --name SSH --rsource -j ACCEPT

Meine Fragen:

  • Gibt es einen Unterschied im Verhalten dieser beiden?
  • Welches ist mit Schwerpunkt auf Leistung vorzuziehen?
  • Gibt es einen erheblichen Nachteil bei der Verwendung beider Module?
Rapsey
quelle
Hey, versuchst du deinen Server vor roher Gewalt zu schützen?
fgbreel

Antworten:

2
Is there any difference in how these two will behave?

Nein, was Sie geschrieben haben, wird funktional dasselbe tun.

With an emphasis on performance, which one is preferable?

Wahrscheinlich hat die jüngste Version eine bessere Leistung, da sie eine Tabelle verwaltet, aber keine Hash-Buckets verwendet.

Is there a significant downside to using both modules?

Ich bin mir nicht sicher, warum Sie beide verwenden würden. Sie würden die Leistung beeinträchtigen, wenn Sie beide Module verwenden, wenn Sie nur eines benötigen.

user5870571
quelle
0

Gibt es einen Unterschied im Verhalten dieser beiden?

Hängt davon ab, wie viele Verbindungen Sie erwarten.

Bei den meisten Distributionen ist das aktuelle Modul so eingerichtet, dass nur eine kleine Anzahl von Adressen und Paketen pro Adresse gespeichert wird. 100 bzw. 20 . Wenn Sie also auf 21 Treffer beschränken möchten, wäre dies mit den Standardwerten der letzten Zeit nicht möglich.

Hashlimit scheint standardmäßig keine solchen Grenzwerte zu haben, obwohl die Anzahl der Buckets, die Anzahl der Einträge und der Ablauf angegeben werden können.

Joshua
quelle