View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0001860 | unreal | ircd | public | 2004-06-03 14:40 | 2004-06-11 21:27 |
| Reporter | GouraudShading | Assigned To | |||
| Priority | normal | Severity | feature | Reproducibility | always |
| Status | closed | Resolution | open | ||
| Product Version | 3.2 | ||||
| Summary | 0001860: Join-flood protection | ||||
| Description | It would be nice to protect my network with a set::anti-flood::join-flood option. Many people is joinflooding, and I can stop them only with tempshun. | ||||
| 3rd party modules | |||||
|
|
You might want to set chanmode +f to all the channels that are affected by the flooding. For information on chanmode +f, consult the docs (http://www.vulnscan.org/unrealircd/unreal32docs.html#feature_antiflood) Another thing you can do if u have services is: set set::modes-on-join to +R edited on: 2004-06-03 15:01 |
|
|
You could also try AngryWolf's JoinThrottle module (www.angrywolf.org) |
|
|
Another common(?) anti-joinflood technique (used on ircds lacking Unreal's +f or AngryWolf's jointhrottle (interestingly, #unreal-support uses the method I'm about to describe as well)) is to set the channel limit to a certian number more than the current number of channel members, and also delaying the update to effectively limit the number of joins in a given time span. Sample mIRC script (most ppl (that I've seen) use eggdrop for this though): ------ alias setlimit { ;Syntax: /setlimit <chan> <joinlimit> ;Minimal error checking. Oh well. ;Doesn't work with can_override/personal u-line. Op yourself before use. if ($1 == $null) return if ($2 == $null) retrun ;Op validation, so we don't flood the screen with errors every xx seconds. if (!$me isop $1) return ;Limit check to see if we need to change it, so we don't flood the channel ;with +l changes every xx seconds. if ($chan($1).limit == $calc($nick($1,0) + $2)) return mode $1 +l $calc($nick($1,0) + $2) } /timerChannelName 0 5 /setlimit #ChannelName 15 ------ (I'd recommend naming the timer so you can shut it off easily with /timer<n> off. I'd also recommend naming it the same as the channel name, so you can make an on PART script to shut it off automatically.) More or less allowing 15 joins in the span of 5 seconds (3 joins per second). Of course, +f [15j]:5 is much better, but this method can easily be changed with a simple script tweak, whereas +f requires unsetting it and setting again (and remembering the whole floodstring). (BTW, it's best to use the alias like that so that the counts and such are evaluated at execution, instead of just once when the timer is set.) edited on: 2004-06-03 17:45 |
|
|
Oh, I'm sorry my note wasn't plain enough, You didn't understand my problem. I know the +f chanmode, also I'm using it, but some people join too much channel too quick. I'd like a feature, that allows only x joins per y seconds, like set::anti-flood::nick-flood <count>:<period> allows only 'count' nickchanges per 'period' seconds. So I'd like a "global" join-flood protection, not protect some favorite chan. |
|
|
GouraudShading: I see.. I don't think that's a good idea however, there are a lot of people that automaticly join like 5 or 10 channels (via perform, via join-channels-on-reconnect, etc). I don't see how 'people joining too many channels too quickly' can be a problem? If you have spammers joining like 30 channels (either 5-every-time or 1-every-time etc) and then spamming an url or whatever the TARGETLIMIT stuff should kick in (which is 20 per 5 minutes or something, feel free to test it ;p). aquanight: note that the +l stuff doesn't work against quick-join-part floods, like when X00 bots continusly do quick-joinparts it can still flood everyone off (*and a bot/script is often too late to react*), something chanmode +f can protects against ;). [it's exactly after such a joinpart flood in #unreal-support that I decided to code chanmode +f because I was fed up with it]. |
|
|
In any case, for global protection, you can use AngryWolf's cmdflood module: cmdflood { join 5:10s; // 1 join per 2 seconds. }; I don't know if this creates the "fake lag" or just drops the flooding joins, but see if this works for you. @syzop: Very true. Which is why I said +f [15j]:5 is better for the purpsoe. There probably a lot of other things that +f catches that +l won't. And I'm well aware of script/bot lag ;) . |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2004-06-03 14:40 | GouraudShading | New Issue | |
| 2004-06-03 14:53 | Stealth | Note Added: 0006560 | |
| 2004-06-03 15:01 |
|
Note Added: 0006561 | |
| 2004-06-03 15:01 | Stealth | Note Edited: 0006560 | |
| 2004-06-03 17:44 | aquanight | Note Added: 0006564 | |
| 2004-06-03 17:45 | aquanight | Note Edited: 0006564 | |
| 2004-06-04 10:39 | GouraudShading | Note Added: 0006577 | |
| 2004-06-04 11:53 | syzop | Note Added: 0006580 | |
| 2004-06-04 12:01 | aquanight | Note Added: 0006581 | |
| 2004-06-11 21:27 | syzop | Status | new => closed |