FloodProtection
Contents
Flood Protection
Getting tired of those endless fights against floodbots or annoying users who like to flood your channel with nonsense or dangerous links? Chat4All provides several different ways to fight those spam/virus/floodbots on your own. Of course, if they are a long term issue, you can also contact the Network Staff.
Watcher
The first protection is in the form of Watcher, a Chat4All Service which is operated by us. It should passively protect your channel against the worst attacks. For instance, in case it detects a join/part flood, it will temporarily lock your channel by setting channel modes +CKmic, which will automatically be unset again after a minute. However, you can also defend your channel yourself using some of the server-side flood protection features described in the rest of this article.
If you have legitimate high traffic in your channel and experience trouble with automatic locking of your channel, please contact us in the #help support channel, or open a ticket at http://support.chat4all.net so we can add your channel to the exclusion list.
Server-side Channel Flood-prevention channel mode
Non-standard channel modes
Our server supports some non-standard channel modes, such as:
K : block /knock invite requests. N : block nick changes for users on this channel. C : block all CTCPs on the channel. M : only registered (+r) users can talk. f : flood settings. This is the one we are going to discuss.
The channel mode +f helps you protect your channel against floods, it's much faster and more advanced than any personal channel bot you can run. You can enable it with the following command:
/mode #channel +f [action type[#counter action, (more)]:seconds
+f overview
Overview of the different flood types and their default actions
Code | Effective against: | Default action taken |
---|---|---|
c | CTCPs | +C (m,M) |
j | Joins | +i (R) |
k | Knocks | +K |
m | Messages/Notices | +m (M) |
n | Nick changes | +N |
t | Text | kick or +b (ban) |
Examples
What follows are several examples of the several +f flood protections that are available.
ChanOp sets mode: +f [20j,50m,7n]:15 Join flood example Evil1 (~fdsdsfddf@Clk-17B4D84B.blah.net) has joined #test Evil2 (~jcvibhcih@Clk-3472A942.xx.someispcom) has joined #test Evil3 (~toijhlihs@Clk-38D374A3.aol.com) has joined #test Evil4 (~eihjifihi@Clk-5387B42F.dfdfd.blablalba.be) has joined #test -- snip XX lines -- Evil21 (~jiovoihew@Clk-48D826C3.e.something.org) has joined #test -irc.chat4all.net:#test *** Channel joinflood detected (limit is 20 per 15 seconds), setting +i irc.chat4all.net sets mode: +i Message flood example <Evil2> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl <Evil12> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl <Evil15> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl <Evil10> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl <Evil8> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl -- snip XX lines -- -irc.chat4all.net:#test *** Channel msg/noticeflood detected (limit is 50 per 15 seconds), putting +m irc.chat4all.net sets mode: +m Nick change flood example Evil1 is now known as Hmmm1 Evil2 is now known as Hmmm2 Evil3 is now known as Hmmm3 Evil4 is now known as Hmmm4 Evil5 is now known as Hmmm5 Evil6 is now known as Hmmm6 Evil7 is now known as Hmmm7 Evil8 is now known as Hmmm8 -irc.chat4all.net:#test *** Channel nickflood detected (limit is 7 per 15 seconds), putting +N irc.chat4all.net sets mode: +N
If you like to specify other counter action than the default ones, you have to modify the command, for instance:
/mode #channel +f [20j#R,50m#M]15
means, after 20 joins in 15 seconds, the channel mode is set to +R (whereas the default would have been +i) and after 50 messages within 15 seconds, the channel will be set to +M (whereas the default would have been +m).
A useful feature for the more "forgetting types" is the auto remove, for instance:
/mode #channel +f [20m#M10]:15
the message flood gets triggered by a total of 20 messages (of any user) within the trigger period. The channel mode +M will be set for 10 minutes, as indicated by the number right after the mode.
A last example to get the hang of it :
/mode #channel +f [10j#i20,50m#M11,10c#C35,5n#N5,3k#K20]:15
- All have a trigger time span of 15 seconds!
- After 10 joins (within the 15 seconds trigger time span), #channel will get channel mode +i set for a period of 20 minutes.
- After 50 messages (within the trigger time span), +M will become a channel mode on #channel and till it is removed by the server after 11 minutes
- A maximum of 10 channel CTCP's are allowed within the trigger period of 15 seconds, before channel mode +C is set for 35 minutes.
- A maximum of 5 nickchanges is allowed within the trigger period, before channel mode +N becomes effective for 5 minutes.
- Limit to 3 /knock commands within 15 second, or +K channel mode gets set for a duration of 20 minutes.
Use the flood command wisely! If there is no operator (@,%,& or ~) in the channel, your channel could be locked for quite some time!
We hope this will help you protect your channel more effectively.
BotServ Kickers
If you have a BotServ bot on your channel, you can enable several automatic kick (and ban) functions such as automatic kicks/kickbans when a user sends n lines in m seconds.
/BOTSERV HELP KICK
gives the following information:
Syntax: KICK channel option parameters Configures bot kickers. option can be one of: BOLDS Sets if the bot kicks bolds BADWORDS Sets if the bot kicks bad words CAPS Sets if the bot kicks caps COLORS Sets if the bot kicks colors FLOOD Sets if the bot kicks flooding users REPEAT Sets if the bot kicks users who repeat themselves REVERSES Sets if the bot kicks reverses UNDERLINES Sets if the bot kicks underlines Type /msg BotServ HELP KICK option for more information on a specific option. Note: access to this command is controlled by the level SET.
BotServ Flood Kickers
For the Flood Kicker protection in particular (/BOTSERV HELP KICK FLOOD) this would be:
Syntax: KICK channel FLOOD {ON|OFF} [ttb [ln [secs]]] Sets the flood kicker on or off. When enabled, this option tells the bot to kick users who are flooding the channel using at least ln lines in secs seconds (if not given, it defaults to 6 lines in 10 seconds). ttb is the number of times an user can be kicked before it get banned. Don't give ttb to disable the ban system once activated.
In more detail, you can automatically have someone kicked after he floods the channel with n lines within m seconds, and have them automatically banned after x kicks.
Examples
Let's explain it with a few examples for the example channel #kickmeplease:
If we just would want to automatically kick someone after the default flood limits (6 lines in 10 seconds) without banning, the following would suffice:
/BOTSERV KICK #kickmeplease FLOOD ON
If you want to automatically ban a user after he has been kicked 3 times, with the default flood limits, use:
/BOTSERV KICK #kickmeplease FLOOD ON 3
To automatically kick someone if he types 10 lines in 3 seconds, and want to ban him immediately without a warning kick, use:
/BOTSERV KICK #kickmeplease FLOOD ON 1 10 3
To turn off the Flood-kicker at any time you you can issue:
/BOTSERV KICK #kickmeplease FLOOD OFF