Blacklist block

The blacklist block allows you to use a DNS blacklist (DNSBL). Every user that connects to your server will be checked against the blacklists specified.

Syntax
blacklist { dns { name ; type ; reply { }; };       action ; reason ; ban-time ; except { } };

First of all, each blacklist has a, which is just a short name for the blacklist block.

Currently the only supported type of blacklists are DNS blacklists. This is configured via blacklist::dns which consists of three items: blacklist::dns::name specifies the blacklist to use (eg: rbl.efnetrbl.org). blacklist::dns::type defines if the blacklist is of type record or bitmask, your blacklist should provide this info, if in doubts then use record. Finally, blacklist::dns::reply configures which DNS replies are considered a 'match'. Consult the documentation of the blacklist you use, as they are blacklist-specific!

The remainder of the blacklist block defines what should be done upon a match: blacklist::action specifies an action, such as kline (see Actions for a full list). blacklist::ban-time defines after how much time the *LINE (if any) should be removed.

blacklist::reason specifies the kill/ban reason shown to the user. You can use the following variables in this field, which will be replaced:
 * : IP address of the banned user
 * : name of the IRC server
 * : name of the blacklist block (eg. xyz for blacklist xyz { })
 * : the blacklist::dns::name
 * : DNS reply code

You can optionally use blacklist::except (available in UnrealIRCd 6.0.4 and later) to exempt users from being checked by this particular blacklist. It is a mask item so has lots of options to do that. Note that you can also exempt users from ALL blacklists via the except ban block, then you don't need to use blacklist::except.

Example
These are the two most common blacklists that users use: blacklist efnetrbl { dns { name rbl.efnetrbl.org; type record; reply { 1; 4; 5; }; };       action gline; ban-time 24h; reason "Proxy/Drone/TOR detected. Check https://rbl.efnetrbl.org/?i=$ip for details."; };

blacklist dronebl { dns { name dnsbl.dronebl.org; type record; reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; }; };       action gline; ban-time 24h; reason "Proxy/Drone detected. Check https://dronebl.org/lookup?ip=$ip for details."; };