Rule above does not protects ADC side as well as other services.
Rule tested on hub with users count around 200. If your hub much larger, limit/sec and burst values should be increased.
For ADC, just put "HSUP" instead of "$key" or make a separate rule set.
Rule based on deep packet inspection by matching string, which sends to hub only at the beginning of client entrance. To do not overload a system, we are inspecting only first 150 (bytes I guess, this value was set experimentally).
NOTE: Do not use -j DROP method at the first two lines of rule, bot's reconnects should be rejected immediately, otherwise it will create a queue until default timeout, where all instances of that bot will pass, but with a little delay.
NOTE2: "connlimit" means to allow only one client per IP. Useful against SYN-attack DoS (not DDoS).