Tip of the day: Connthrottle will limit the damage from big drone attacks. Check if the flood thresholds and exceptions are OK for your network.

Extended bans

From UnrealIRCd documentation wiki
Jump to navigation Jump to search
Other languages:

Extended bans can be used to match a client on criteria other than IP or hostname. For example /MODE #chan +e ~a:SomeAccount can be used to add a ban exemption for someone who identified to services with SomeAccount. Extended bans can also be used to provide other "extended" functionality, such as blocking or censoring certain words in channels.

In channels, extended bans can be used in /MODE for bans (+b), exempts (+e) and invite exceptions (+I). Server admins can use some of these in Extended server bans as well.

In UnrealIRCd 5 extended bans start with a tilde (~), followed by a letter denoting the extban type. For example +b ~a denotes an account extban. In UnrealIRCd 6 we don't use letters but use names in extended bans, such as +b ~account for an account extban.

UnrealIRCd comes with a number of built-in extbans (loaded through Modules). 3rd party modules may introduce even more types.

Group 1: time limit

The following ban type can be used in front of any (ext)ban:

Letter Name Module Explanation Example
t time extbans/timedban Timed ban that will make a ban unset after the specified number of minutes. +b ~t:3:*!*@hostname
+b ~time:3:*!*@hostname

Group 2: actions

The following ban types specify which actions (join, nick-change or speaking) are affected by a ban:

Letter Name Module Explanation Example
q quiet extbans/quiet People matching these bans can join but are unable to speak, unless they have +v or higher. +b ~q:*!*@*.blah.com
n nick extbans/nickchange People matching these bans cannot change nicks, unless they have +v or higher. +b ~n:*!*@*.aol.com
j join extbans/join When a user matches this (s)he may not join the channel but if already in the channel then all activities are permitted such as speaking or changing the nick. This can be useful to ban an entire ISP and then manually /INVITE people to the channel so once joined they can behave as normal. +b ~j:*!*@*.aol.com
f forward chanmodes/link Forward user to another channel if matching mask. +b ~f:#badispchannel:*!*@*.isp.com
m msgbypass extbans/msgbypass Bypass message restrictions. This extended ban is only available as +e and not as +b. Syntax: +e ~m:type:mask.

Valid types are: external (bypass +n), moderated (bypass +m/+M), censor (bypass +G), color (bypass +S/+c) and notice (bypass +T).

+e ~m:moderated:*!*@192.168.*

+e ~m:external:*!*@192.168.*
+e ~m:color:~a:ColorBot

Group 3: selectors

These bantypes introduce new criteria which can be used:

Letter Name Module Explanation Example
a account extbans/account If a user is logged in to services with this account name, then this ban will match. Note that the account name is not necessarily the same as the nick name.

There are also two special bans: ~a:* matches all authenticated users and ~a:0 matches all unauthenticated users.

+e ~a:SomeAccount

+I ~a:SomeAccount

c channel extbans/inchannel If the user is in this channel then (s)he is unable to join. A prefix can also be specified (+/%/@/&/~) which means that it will only match if the user has that rights or higher on the specified channel. +b ~c:#lamers

+e ~c:@#trustedops

G security-group extbans/securitygroup If the user matches this security group then (s)he is unable to join. +b ~G:unknown-users
O operclass extbans/operclass If the user is an IRCOp and the oper::operclass matches this name then the ban/invex will match. You can use this to for example create *admin* only channels. +iI ~O:*admin*
r realname extbans/realname If the realname (gecos) of a user matches this then (s)he is unable to join. Since real names may contain spaces you can use a underscore to match a space (and underscore) +b ~r:*Stupid_bot_script*
S certfp extbans/certfp When a user is using SSL/TLS with a client certificate then you can match the user by his/her SSL fingerprint (the one you see in /WHOIS). Useful for ban exemptions (+e) and invite exceptions (+I). +e ~S:0000000etc

+I ~S:0000000etc

Group 4: special

These are special extended bans that don't fit anywhere else:

Letter Name Module Explanation Example
T text extbans/textban Channel-specific text filtering. Supports two actions: 'censor' and 'block', see examples on the right. +b ~T:censor:*badword*

+b ~T:block:*something*

p partmsg extbans/partmsg Hide part/quit messages on matching users. +b ~p:*!*@*.blah.com

Combining extended bans

You can combine extended bans from multiple groups, this is called "stacking":

  • Group 1 + 2/3/4: You can stack extended bans from the 1st group with any of the other groups. For example, +e ~t:1440:~a:TrustedUser would allow someone who identified to the services account TrustedUser to bypass channel bans for the next 1440 minutes (=24 hours).
  • Group 2 + 3: You can also stack the 2nd group with the 3rd group. For example: +b ~q:~c:#lamers would quiet all users who have also joined #lamers.
  • Group 1 + 2 + 3: You can even stack group 1 + group 2 + group 3 if you want, eg: +b ~t:5:~q:~c:#lamers to quiet all users who have also joined #lamers and have this ban removed automatically after 5 minutes.

Invite exceptions (+I)

Ban types from the 3rd group can be used in invite exceptions (+I). For example you can put the channel +i and then use +I ~c:@#trusted and/or +I ~a:accountname.

See also