loadmodule "src/modules/antirandom.so";

set {
	antirandom {
		/* THRESHOLD:
		 * This is pretty much the most important setting of all.
		 * For every randomly looking ident the user gets a certain amount of
		 * 'points', if this value reaches 'threshold' then the appropriate
		 * action is taken (killed, *lined, see later on).
		 *  lower = more randomly looking users will be catched (but also more
		 *          innocent users)
		 * higher = less chance of innocent users getting killed, but also less
		 *          chance on bots getting catched.
		 * <2:  DON'T!!
		 *  4:  Works good, probably a few more innocent kills but if you got
		 *      quite a bot problem then this might be a useful setting.
		 *  5:  Works well with few innocent kills, probably good to begin with.
		 *  6:  If you want to be a tad more careful
		 * >6:  For the paranoid. Module can still be quite effective, though :)
		 */
		threshold 5;
		
		/* BAN-ACTION:
		 * Action to take whenever the user is catched as random, options:
		 * kill, gline, gzline, kline, zline, shun, tempshun
		 */
		ban-action kill;
		
		/* BAN-TIME:
		 * Time to ban the user (irrelevant for tempshun/kill).
		 * Something between 1 hour and 2 days is recommended.
		 * If you set it higher than 3 or 4 days then you get quite a risk
		 * of catching innocent users due to dynamic IP, not to mention
		 * your *line list gets filled up... so choose it wisely.
		 */
		ban-time 4h;
		
		/* BAN-REASON:
		 * The ban (or kill) reason to use.
		 * You might want to put in an entry to a FAQ or an email address
		 * where users can mail if they have been catched and don't know what to do.
		 * NOTE: One of the various reasons that ""innocent users"" are catched is
		 *       if they just randomly type in info for their nick, ident, or realname.
		 */
		ban-reason "You look like a bot. Be sure to fill in your nick/ident/realname properly.";
		
		/* FULLSTATUS-ON-LOAD:
		 * If enabled, then upon loading it will check all users that are currently
		 * connected and give a status report about who it would have killed.
		 * Note that it doesn't actually kill any currently connected users, it is for
		 * informative purposes only.
		 * This can be (very) useful if you use the module for the first time.
		 * But you probably want to disable it after a while, since once the module
		 * is actively dealing with randomly looking persons, it shouldn't report any
		 * users anymore on load and then this check only eats useless CPU on /REHASH.
		 */
		fullstatus-on-load yes;
		
		/* SHOW-FAILEDCONNECTS:
		 * This will send out a notice whenever a randomly looking user has been catched
		 * during connecting. Obviously this can be pretty noisy.
		 * Especially recommended to enable during the first few days you use this module.
		 */
		show-failedconnects yes;

		/* EXCEPT-HOSTS:
		 * Hostmasks on this list are matched against the IP and hostname of the connecting
		 * user. If it matches then we do not check if the nick/ident/realname is random.
		 * If you are using CGI:IRC on your network, then you probably want to put that
		 * IP/host here.
		 * NOTE: Use the REAL host or IP here, not any cloaked hosts!
		 */
		except-hosts {
			"irc-gateway.mynet.xx";
			"*.trusted.yy";
			"192.168.*";
		};
	};
};
