Eine Ratenbegrenzung ist keine Verhinderung, sondern eher eine Einladung zu DoS - insbesondere in der oben vorgestellten Variante, wo Pakete verworfen werden, wenn eine bestimmte Rate nicht authentifizierter Pakete ohne Statusinformationen überschritten wurde. Da jeder in diesem Verbindungszustand ohne größeren Aufwand Pakete (einschließlich Quell-IP-Adressen) fälschen kann, entsteht ein neuer DoS-Angriffsvektor, der Ihre Ratenbegrenzungsfunktion nutzt.
Eine Ratenbegrenzung ist im Allgemeinen nur dann sinnvoll, wenn Sie
haben- entweder ein vorhersagbares hartes oder weiches Verbindungslimit in Ihrer Konfiguration
- Setzen Sie das Ratenlimit für allgemeinen Traffic unterhalb dieses Limits, um lastunabhängig Verbindungen für priorisierten oder administrativen Traffic aufbauen zu können
Während 1. oft schwer genug zu bestimmen ist, um sich überhaupt die Mühe zu machen, funktioniert 2. offensichtlich nur, wenn Sie in der Lage sind, "priorisierten oder administrativen" Verkehr beim Verbindungsaufbau zuverlässig vom Rest zu unterscheiden - z. wenn es über eine andere Netzwerkschnittstelle kommt.
In anderen Fällen würde es die Ausfallsicherheit Ihres Systems eher verringern als erhöhen.
Das Problem mit -m limit ist die Begrenzung aller TCP-Pakete unabhängig von den Quell-IP-Adressen. Wenn Sie also eine niedrige Beschränkung für Syn-Pakete wie
haben-A INPUT -p tcp --syn -m limit --limit 30/s --limit-burst 30 -j ACCEPT
-A INPUT -p tcp --syn -j DROP
Nur ein Client mit der hping-Befehlszeile kann Ihren Server herunterfahren, indem er so viele TCP-Pakete mit dem SYN-Flag sendet, da die Begrenzungsregel übereinstimmt und viele Pakete unabhängig von den IP-Adressen der Quelle fallen lässt. Limit macht keinen Unterschied zwischen gutem und schlechtem Verkehr. Es wird auch den guten eingehenden Verkehr verringern.
hping könnte etwa so aussehen:
hping thetargetedhostip -p 80 -S -c 1000 -i u20000
Es ist besser, hashlimit zu verwenden, um eingehende TCP-Verbindungen pro IP-Adresse zu begrenzen . Die folgende Regel trifft nur zu, wenn 30 Pakete pro Sekunde empfangen werden, wodurch die Anzahl der autorisierten Pakete pro IP reduziert wird bis 15 Pakete pro Sekunde.
-A INPUT -p tcp --syn -m hashlimit --hashlimit 15/s --hashlimit-burst 30 --hashlimit-mode srcip --hashlimit-srcmask 32 --hashlimit-name synattack -j ACCEPT
-A INPUT -p tcp --syn -j DROP
Tatsächlich bin ich ÜBERZEUGT, dass viele Server, die heute heruntergefahren werden, nicht aufgrund fehlender Ressourcen während eines Angriffs, sondern weil das Begrenzungsmodul den gesamten eingehenden Datenverkehr fallen lässt.