Wie kombiniere ich Connlimit mit IP-Sets?

Wie kombiniere ich Connlimit mit IP-Sets?

connlimitermöglicht mir die Begrenzung der Anzahl von Verbindungen pro Client/Dienst. Wie kann ich eine solche Regel mit den IP-Sets kombinieren, die in neueren Versionen des Linux-Kernels und Netfilters verfügbar sind?

Antwort1

Nehmen wir an, wir haben ein IP-Set mit dem Namen MYTESTSETund dieses IP-Set ist vom Typ hash:ip. Es speichert nur IP-Adressen.

Gleichen Sie es dann mit Ihrem IPset ab und anschließend mit der connlimitMatch-Erweiterung mit den gewünschten Parametern.

iptables -A INPUT -p tcp -m set --match-set MYTESTSET src -m connlimit --connlimit-above 1 --connlimit-saddr --connlimit-mask 32 -j DROP

Dies bewirkt Folgendes: Für jede Quelle innerhalb des IP-Sets werden die Verbindungen gezählt und wenn mehr als eine vorhanden ist (--connlimit-above 1), wird sie gelöscht, wodurch die Anzahl der Verbindungen begrenzt wird.pro Quelle im IP-Setzu 1. (Sie können auch andersherum vorgehen, indem Sie --connlimit-upto xxxund -j ACCEPTanstelle von verwenden DROP.)

Wenn Sie das gesamte Set berücksichtigen und 1 Verbindung zulassen möchtenfür alle Quellen im IP-SetStellen Sie dann den --connlimit-maskSchalter auf 0.

verwandte Informationen