]> jfr.im git - irc/evilnet/x3.git/blob - x3.conf.example
Added support for multiple MARK marks
[irc/evilnet/x3.git] / x3.conf.example
1 /* *****************************************************************
2 * X3 Services Example Configuration file.
3 *
4 * Copy it to your x3 runtime dir, and edit to taste.
5 *
6 * This file allows two kinds of comments. Whitespaces between
7 * tokens are ignored. All strings (even if they're just numbers)
8 * MUST be enclosed in double quotes. There must be a semicolon
9 * after every * key/value pair.
10 */
11
12 /* UPLINKS (servers we connect to) *********************************
13 * Each subsection describes one server. X3 will try to connect to
14 * each in turn maxtries times, and then will quit.
15 */
16 "uplinks" {
17 // This first entry connects to an ircd on teh same server an X3..
18 "Hub" { // This can be any string, just used here for your convenience
19 "address" "127.0.0.1"; // The IP address of the server
20 "port" "8888"; // What TCP port to connect to
21 "password" "laoo,rpe"; // Both of these passwords must match
22 "their_password" "laoo,rpe"; // the one in the ircd C line for X3.
23 "enabled" "1"; // Set to 0 to disable connecting to this server
24 "max_tries" "10"; // How many times to attemt reconnect before quitting
25 "bind_address" "127.0.0.1"; // LOCAL IP address we want to connect FROM
26 };
27 // This next one connects to an ircd on another server
28 "Hub-west" {
29 // IP address and port the server listens on
30 "address" "192.168.234.123"; // IP of remote server
31 "port" "8888";
32 "password" "ekrpat"; // C line passwords
33 "their_password" "ekrpat"; // Set same as above
34 "enabled" "0"; // Set this to 1 to use this server..
35 "max_tries" "1";
36 "bind_address" "192.168.1.10";
37 };
38 };
39
40 /* SERVER (Details about our existance) **********************************
41 */
42 "server" {
43 "hostname" "X3.AfterNET.Services"; // The servers name. (Use this in the ircd's C line)
44 "description" "AfterNET Network Services"; // Shows up in /links.
45 "network" "AfterNET";
46 "hidden_host" "Users.AfterNET.Org"; // set this if you enabled Nefarious' +x mode
47 /* hidden_host should match the F:HIDDEN_HOST: line in your ircu's ircd.conf;
48 * x3 does not set the host suffix for users, but must know it when making
49 * things like bans, where it should not show the user's real hostname. */
50 "hidden_host_type" "1"; // change this to 2 if you use Nefarious's style 2 host hiding.
51 "key1" "45432"; // Set these key values to the network KEY values you use
52 "key2" "76934"; // for host hiding style 2. If you are using Nefarious 1.3.0 (type 8)
53 "key3" "98336"; // then these are ignored.
54 "prefix" "AfterNET"; // If you use style 2 then this is the name that is prefixed to hosts.
55 "numeric" "51"; // hint: If you get collisions on link, CHANGE THIS.
56 /* Type handles some changes in Nefarious from version to version.
57 * 4 - nefarious 0.4.x and other ircds
58 * 5 - nefarious 1.0.x and higher (Obselete)
59 * 6 - nefarious 1.1.0 and higher (Obselete)
60 * 7 - nefarious 1.2.0 and higher (Obselete)
61 * 8 - nefarious 1.3.0 and higher (Legacy Version)
62 * 9 - nefarious 2.0.x and higher (Current Version)
63 */
64 "type" "8";
65 "host_in_topic" "1"; //Set to 1 if your Nefarious server have the HOST_IN_TOPIC F:line set to TRUE.
66 "max_users" "256"; // You can save a little memory by setting this to a lower value.
67 "force_n2k" "1"; // Use extended (5-digit) numnick for self, even if 3 are possible.
68 "ping_freq" "60";
69 "ping_timeout" "90";
70 "max_cycles" "30"; // max uplink cycles before giving up
71 // Admin information is traditionally: location, location, email
72 // This shows up on a /admin x3.afternet.services command.
73 "admin" (
74 "AfterNET IRC Network",
75 "www.afternet.org",
76 "Support Staff <support@afternet.org>"
77 );
78 /* extended_accounts -
79 * enable this for nefarious 0.4.x and higher and in ircd.conf add F:EXTENDED_ACCOUNTS:TRUE.
80 * Sends 'AC R nick account' instead of 'AC nick account' and allows
81 * for renames, login-on-connect, etc. If you use stock ircu set to 0. */
82 "extended_accounts" "1";
83
84 /* the following two settings are for ircu's HEAD_IN_SAND features, and are equivelent to
85 * the F: lines in ircu's ircd.conf. both can be disabled by commenting them out. */
86 //"his_servername" "*.AfterNET.org"; // hidden server name, shown in remote /whois requests
87 //"his_servercomment" "AfterNET IRC Network";
88 };
89
90 /* SERVICES (Bot nicknames) *******************************************
91 * Each section describes one service nickname and the details of that
92 * bot's features
93 * You may disable a service by commenting out its "nick" config item.
94 */
95 "services" {
96 /* Nickserv is the bot you register with and auth to.
97 * Afternet uses the name "Authserv" without the nickname reservation
98 * features enabled. Some nets call it Nickserv and configure it to
99 * reserve nicks.
100 */
101 "nickserv" {
102 "nick" "AuthServ"; // The bots nick on IRC
103
104 // If you want to have *@* as the default hostmask, set
105 // default_hostmask. I highly reccomend this, and its required
106 // for login-on-connect to work.
107 "default_hostmask" "1";
108
109 // do we warn users when someone new auths to their account?
110 "warn_clone_auth" "1"; // -X3- warning: foobar has authed to your account
111
112 // default max number of logins allowed on new accounts. Users can set it
113 // to something different using authserv commands.
114 "default_maxlogins" "3";
115
116 // hard_maxlogins is the ammount the user cant override.
117 "hard_maxlogins" "10";
118
119 // This names a file that contains easily guessed passwords.
120 // It always contains "password", "<password>" and the user's
121 // account name.
122 // uncomment if you have a dict file.
123 //"dict_file" "/usr/share/dict/words";
124
125 // Minimum number of various types of characters permitted in
126 // a password. Authserv will enforce these.
127 "password_min_length" "4";
128 "password_min_digits" "0";
129 "password_min_upper" "0";
130 "password_min_lower" "0";
131
132 // What should valid account and nicks look like?
133 // If valid_nick_regex is omitted, valid_account_regex is used
134 // for both nicks and accounts.
135 // Be very carefull changing these. This default is
136 // basically limited to letters, numbers, dash and underscore.
137 "valid_account_regex" "^[-_a-z0-9A-Z]{2,15}$";
138 "valid_nick_regex" "^[-_a-z][-_a-z0-9]*$";
139
140 // Whats a valid hostname look like for fakehosts?
141 "valid_fakehost_regex" "^[-_a-zA-Z0-9.]+$";
142
143 // Force account names to lowercase? 1=yes 0=no
144 // WARNING: this will convert when reading them from the db, too.
145 "force_handles_lowercase" "0";
146
147 // "Nickserv" networks, set this to 0. "Authserv" networks,
148 // set it to 1.
149 "disable_nicks" "1";
150 // One account may only own this many nicks.
151 "nicks_per_account" "4";
152
153 // Send a warning when someone uses a registered nick?
154 "warn_nick_owned" "0";
155
156 // What to do when someone uses the NickServ "reclaim" command?
157 // This can be one of "none", "warn", "svsnick", or "kill", but
158 // stock ircu does not support svsnick -- you need nefarious.
159 "reclaim_action" "none";
160
161 // What (else) to do when someone uses a registered nick?
162 // This can be anything "reclaim_action" can be, but it makes
163 // more sense to use the "warn_nick_owned" instead of "warn".
164 "auto_reclaim_action" "none";
165
166 // How long to wait before doing the auto_reclaim_action?
167 // This is ignored if "auto_reclaim_action" is "none".
168 "auto_reclaim_delay" "0";
169
170 // Expire nicks
171 "expire_nicks" "0";
172
173 // how often should nicks be expired?
174 "nick_expire_freq" "1d";
175
176 // how long until a nick expires?
177 "nick_expire_delay" "900d";
178
179 // access control for who can change account flags
180 // See /msg authserv help account flags
181 "flag_levels" {
182 "g" "800"; // God mode
183 "lc_h" "800"; // support helper (lower case h)
184 "uc_H" "800"; // net helper (upper case H)
185 "S" "999"; // O3 access suspended
186 "b" "1"; // Bot (Hidden from !staff etc)
187 "I" "999"; // User can impersonate another account using SASL authentication
188 };
189
190 // and for who can change epithets for staff
191 // epithets show up in /whois as another line about the person.
192 "set_epithet_level" "800";
193
194 // what opserv access level do you need to set somebody else's level?
195 "modoper_level" "850";
196
197 // how often should accounts be expired?
198 "account_expire_freq" "1d";
199
200 // how long until an account with access to any channel(s) expires?
201 "account_expire_delay" "900d";
202
203 // how long until an account with no access to any channels expires?
204 "nochan_account_expire_delay" "365d";
205
206 // how long must an account be inactive so it can be ounregistered without force?
207 "ounregister_inactive" "1M";
208
209 // which flags on an account require the ounregister to be used with force?
210 "ounregister_flags" "ShgsfnHbu";
211
212 // If somebody keeps guessing passwords incorrectly, do we gag them?
213 "autogag_enabled" "1";
214 "autogag_duration" "30m";
215 "auth_policer" {
216 "size" "5";
217 "drain-rate" "0.05";
218 };
219
220 // How to integrate with email cookies?
221 // In order to use mail, mail must be enabled and configured
222 // down below in the mail section of this config file.
223 "email_enabled" "1"; // Allow account verification and password reset by email.
224 "email_required" "1"; // if above is 1, require verification to authenticate.
225 "cookie_timeout" "2d"; // how long before we expire cookies?
226 "accounts_per_email" "1"; // How many people can use the same email account.
227
228 "email_search_level" "600"; // minimum OpServ level to search based on email address (search print email *foo*)
229 "email_visible_level" "800"; // minimum OpServ level to see somebody's email address
230 "titlehost_suffix" "AfterNET.Org"; // 'USET title' sets a fake hostname of name.title.titlehost on a user.
231 "set_title_level" "900"; // Access to use 'uset title'.
232 "set_fakehost_level" "1000"; //Access to set a freeform fakehost. (uset fakehost)
233
234 // A list of denied words in the fakehosts
235 "denied_fakehost_words" ("sex",
236 "fuck",
237 "asshole");
238
239 // This is a hacked in feature which exports every account change to a file sync.log. Afternet uses this and
240 // a bunch of custom PHP scripts to make our websites SQL user db the same as authserv, every 5 minutes.
241 // You have to be a pretty handy person with the shell commands and programming to make use of this..
242 "sync_log" "0"; // Log account changes to a file for syncing w/ a website?
243
244 // Nickserv 'style' setting affects .userlist and other outputs.
245 "default_style" "n"; // can be: n = normal, c = clean, or a = advanced.
246
247
248 // LDAP configuration(s)
249 // THIS IS EXPERIMENTAL! DO NOT USE IT IF YOU ARNT'T A DEVELOPER!!
250 // LDAP stands for light directory access protocol. its what many larger orgs use for central user/password management. Its also the core technology behind windows active directory.
251 // If you have an ldap server, you can configure X3 to use it instead of saving passwords locally.
252
253 //"ldap_enable" "0";
254 //"ldap_uri" "ldaps://ldap.yournetwork.server:636";
255 //"ldap_base" "ou=Users,dc=afternet,dc=org";
256 //"ldap_dn_fmt" "uid=%s,ou=Users,dc=afternet,dc=org";
257 //"ldap_autocreate" "1"; // automatically create accounts if they exist in ldap but not x3
258 //// If you will be allowing users to register on IRC you need these:
259 //"ldap_admin_dn" "cn=Admin,dc=afternet,dc=org";
260 //"ldap_admin_pass" "xxxxxxxxxxx";
261 //"ldap_object_classes" ( "top", "inetOrgAnonAccount" );
262 //// NOTE: inetOrgAnon is something I made up. its schema
263 //// can be found in the tools/ directory. ldap servers wont
264 //// know what that is by default.
265 //// These configure what I store, and where.
266 //"ldap_field_account" "uid";
267 //"ldap_field_password" "userPassword";
268 //"ldap_field_email" "mail";
269 //"ldap_field_oslevel" "X3AccountLevel";
270 //// NOTE: X3AccountLevel is a custom LDAP attribute
271 //// that LDAP servers will not know by default. A custom
272 //// schema is required to provide it.
273 //// This bit is needed if you want to put ircops into a group:
274 //"ldap_oper_group_dn" "cn=Opers,ou=Groups,dc=afternet,dc=org";
275 //"ldap_oper_group_level" "99"; // must be above this level to be added to oper ldap group
276 //"ldap_field_group_member" "memberUid"; // what field group members are in
277 //"ldap_timeout" "10"; // seconds
278
279 };
280
281 /*
282 * OpServ is the bot opers use to do glines, look at info etc.
283 * Afternet uses the nickname "O3" for this as its easier to type.
284 */
285 "opserv" {
286 "nick" "O3";
287 // should use of this service be limited to global opers?
288 "privileged" "1";
289
290 // fullname for service
291 "description" "Oper Service Bot"; // (for /whois)
292
293 // hostname for service; only used if "description" is also set
294 "hostname" "X3.AfterNET.Services"; // (for /whois)
295
296 // What channel should opserv send debug output to?
297 // I don't have any idea what debug info goes here. You can configure
298 // debugging logs in the log section to go to any channel.
299 // Probably safest to set to your oper channel.
300 "debug_channel" "#TheOps"; // Bot will join this channel, also.
301 "debug_channel_modes" "+tnOS"; // Modes get set every time X3 starts up
302
303 // where to send general alerts (e.g. flood alerts)?
304 "alert_channel" "#TheOps"; // Bot will join this channel, also.
305 "alert_channel_modes" "+"; // Modes get set every time X3 starts up
306
307 // who to tell about staff auths?
308 "staff_auth_channel" "#OperServ"; // Bot will join this channel, also.
309 "staff_auth_channel_modes" "+tnOs"; // modes get set every time X3 starts up
310
311 // which channels should all services autojoin?
312 "autojoin_channels" ("#TheOps", "#OperServ");
313
314 // how many clones to allow from an untrusted host?
315 // Use this carefully, users with half the # of clones will trigger this
316 // when a server pings out and they reconnect before the old connection is noticed
317 // to be dead by the server.. so set it at about twice the # you want to allow to
318 // avoid false positives.
319 "untrusted_max" "6"; // 3 connections and 3 ghosts, 7th connection causes a gline.
320
321 // how long of a g-line should be issued if the max hosts is exceeded?
322 "clone_gline_duration" "2h"; // durations are smhdmy
323
324 // how long to g-line for ?block (or, by default, for trace gline)?
325 "block_gline_duration" "12h";
326
327 // how long to shun for ?sblock (or, by default, for trace shun)?
328 "block_shun_duration" "12h";
329
330 // When a user joins an illegal channel, O3 joins it and locks it down.
331 // how long to keep an illegal channel locked down (seconds)?
332 "purge_lock_delay" "60";
333
334 // ------------------------------------------------------------------
335 // Defcon Settings
336 //
337 // No new channel registrations 1
338 // No New Nick Registrations 2
339 // No Channel Mode changes 4
340 // Force Chan Mode 8
341 // Use Reduced Session Limit 16
342 // KILL any new clients trying to connect 32
343 // Services will ignore everyone but opers 64
344 // Services will silently ignore everyone but opers 128
345 // GLINE all new clients trying to connect 256
346 // No new memos sent to block MemoServ attacks 512
347 // SHUN all new clients trying to connect 1024
348 //
349 // These are the values are added together to determine each defcon setting:
350 "DefCon1" "415";
351 "DefCon2" "159";
352 "DefCon3" "31";
353 "DefCon4" "23";
354
355 // Default defcon level, 5 is running all normally
356 "DefConLevel" "5";
357
358 // If defcon is limiting sessions then how many sessions should O3 allow?
359 "DefConSessionLimit" "2";
360
361 // Length of glines and shuns set on newly connecting clients, if defcon is glining
362 // or shunning newly connecting clients
363 "DefConGlineExpire" "5m";
364
365 // Mode to set on all channels if defcon is forcing channel modes on all channels
366 "DefConChanModes" "+r";
367
368 // If not set to 0, defcon will set back to level 5 after this time
369 "DefConTimeOut" "15m";
370
371 // Set to 1 to send a notice to all users when defcon levels are changed
372 "GlobalOnDefcon" "0";
373
374 // If set to 1 along with the notice that the levels are changing an extra
375 // notice will be sent
376 "GlobalOnDefconMore" "0";
377
378 // GlobalOnDefconMore notice.
379 "DefconMessage" "Put your message to send your users here. Dont forget to uncomment GlobalOnDefconMore";
380
381 // This notice will be used if GlobalOnDefcon and GlobalOnDefconMore are off
382 "DefConOffMessage" "Services are now back to normal, sorry for any inconvenience";
383
384 // Reason placed in defcon Glines and Shuns.
385 "DefConGlineReason" "This network is currently not accepting connections, please try again later";
386
387 // ------------------------------------------------------------------
388
389 // To use geoip support in Opserv WHOIS then you will need to install
390 // the c GeoIP api. Its available on http://www.maxmind.com, also on
391 // apt on debian and ubuntu. The dat files can also be obtained
392 // from the earlier URL. Place them in your X3 dir and away you go.
393 // X3 will need a recompile once you install the c api. If there is a
394 // GeoIP City Data file then the GeoIP data file will be ignored. However
395 // bear in mind that the city data file is a lot larger than the plain
396 // country data file so does take a bit longer to query. If you are
397 // expieriencing ping timeouts you may need to tweak X3's I:line.
398 "geoip_data_file" "./GeoIP.dat";
399 "geoip_city_data_file" "";
400
401 // The join-flood policer code goes off all the time when a server
402 // goes down (and everyone reconnects) so i don't reccomend using it.
403 // Automatically moderate join flooded channels?
404 "join_flood_moderate" "0";
405 // channel join flood policer params?
406 "join_policer" {
407 "size" "20";
408 "drain-rate" "1";
409 };
410 // Don't moderate and warn channels unless there are more than
411 // join_flood_moderate_threshold users in the channel. the
412 // value 0 will disable the threshold.
413 "join_flood_moderate_threshold" "50";
414 // new user flood policer params
415 "new_user_policer" {
416 "size" "200";
417 "drain-rate" "3";
418 };
419 // Min opserv level needed to set 'silent' glines in trace/addalert
420 // (nefarious only)
421 "silent_level" "700";
422 };
423
424 "chanserv" {
425 "nick" "X3";
426
427 // The umodes - add +d if you use nefarious 1.0 and you added 'b:lines'
428 // to pass cmdchar through to chanserv anyway.
429 "modes" "+iok";
430
431 // The off_channel setting takes one of three numerical values:
432 // 0 = off
433 // 1 = use a registered channel mode, have services op themselves
434 // 2 = all of the above, and a channel setting to have ChanServ not
435 // idle in the channel
436 // NOTE: +z mode, needed for this to work. X3 contains modifications to
437 // try and prevent desynchs. If you use this mode do not use any other service
438 // that uses this mode.
439 "off_channel" "no";
440
441 // Infolines are sent when channel users join the channel. Users set them with USET INFO in X3.
442 // how long should a person be unseen before resending infoline?
443 "info_delay" "120";
444
445 // Greetings can be configured by the channel manager(s) and sent to users who join the channel.
446 // Many people (rightly) find this annoying, so keep them short.
447 // maximum greeting length
448 "max_greetlen" "120";
449
450 // maximum users in a channel userlist
451 "max_chan_users" "512";
452 // maximum bans on a channel banlist
453 "max_chan_bans" "512";
454 // maximum length of a user's infoline
455 "max_userinfo_length" "400"; // hard limit for infolines. This is also the default value.
456
457 // If SET DynLimit is on and there are N users in the channel, ChanServ will
458 // try to keep the limit at N+<adjust_threshold>. This makes the channel
459 // somewhat protected from clone attacks.
460 "adjust_threshold" "5";
461 // .. but ChanServ will only increment or decrement the limit this often.
462 "adjust_delay" "30"; // (seconds)
463
464 // How often to look for expired bans?
465 "ban_timeout_freq" "2m";
466
467 // How often to look for channels that have expired?
468 "chan_expire_freq" "1d";
469
470 // How long is a channel unvisited (by masters or above) before it can be expired?
471 "chan_expire_delay" "30d";
472
473 // How often to look for dnrs that have expired?
474 "dnr_expire_freq" "1h";
475
476 // what !set options should we show when user calls "!set" with no arguments?
477 "set_shows" ("DefaultTopic", "TopicMask", "Greeting", "UserGreeting", "Modes", "PubCmd", "InviteMe", "UserInfo", "EnfOps", "EnfModes", "EnfTopic", "TopicSnarf", "Setters", "CtcpReaction", "BanTimeout", "Protect", "Toys", "DynLimit", "NoDelete");
478
479 // A list of !8ball responses
480 "8ball" (
481 "Are you out of your MIND?",
482 "It won't happen, not a chance, definitely no.",
483 "Outlook seems bleak.",
484 "My sources say no.",
485 "You bet!",
486 "It is decidedly so.",
487 "It's hard to be sure.",
488 "Most definitely.",
489 "In your dreams...",
490 "If the prophets wish it...",
491 "Forecast hazy, try again later.",
492 "I don't know!",
493 "Absolutely!",
494 "Never.",
495 "Yes.",
496 "No.",
497 "Maybe.");
498
499 // This is a list of wheel-of-misfortune results. Remove them to disable.
500 // You must make sure your ircd supports, and has enabled, the features needed
501 // for these.
502 "wheel" (
503 "peer",
504 // "partall", // needs svspart
505 "gline",
506 // "shun", // needs shun
507 "nothing",
508 // "randjoin", // needs svsjoin and svspart
509 // "abusewhois", // needs epitaph in /whois support
510 "kickall",
511 // "nickchange", // needs svsnick
512 "kill",
513 "svsignore",
514 "kickbanall" );
515
516 // channel(s) that support helpers must be in to be helping
517 // if this is a list, any one by itself will do
518 "support_channel" ("#Operations", "#Help");
519
520 // maximum number of channels a user may have. ( FORCE can override )
521 "max_owned" "2";
522
523 // how long between automatic topic and userlist refreshes with TopicRefresh/Resync
524 "refresh_period" "10h";
525
526 // what should !access say for various staff?
527 "irc_operator_epithet" "AfterNET IRC Operator";
528 "network_helper_epithet" "AfterNET Network Helper";
529 "support_helper_epithet" "AfterNET Support Helper";
530
531 // what should a newly registered channel get as its modes?
532 "default_modes" "+nt";
533
534 // minimum opserv access to set, clear or override channel nodelete setting?
535 "nodelete_level" "1";
536
537 // when does god mode time out?
538 "god_timeout" "30m";
539
540 // What should valid registered channels look like?
541 // Be very carefull changing these. This default is
542 // basically limited to letters, numbers, dash and underscore.
543 "valid_channel_regex" "^#[-_a-z][-_a-z0-9]*$";
544 };
545
546 /* Global is a service bot that can send out network-wide messages for you. I
547 * like to set ours' nick to 'AfterNET', but some people use 'Global'
548 */
549 "global" {
550 "nick" "Global";
551 // should users get community announcements by default or not?
552 // community announcements are a type of global that users may
553 // opt into (or out of, depending on this setting)
554 "announcements_default" "on";
555 };
556
557
558 "spamserv" {
559 // You may enable this service by removing the double slashes from the config
560 // item. To disable it again add the double slashes back.
561 // "nick" "SpamServ";
562
563 // debug channel
564 "debug_channel" "#operserv";
565 "debug_channel_modes" "+tinms";
566
567 // url of the network rules. if you don't have network rules, remove this key.
568 "network_rules" "http://www.afternet.org/aup";
569
570 // trigger for spamserv; remove this key to disable the trigger
571 "trigger" "%";
572
573 // ban duration of a short timedban.
574 "short_ban_duration" "15m";
575
576 // ban duration of a long timedban.
577 "long_ban_duration" "1h";
578
579 // duration of a gline. SpamServ will issue it after several violations and a kill.
580 "gline_duration" "1h";
581
582 // users may add "exception_max" exceptions to the list. IRCOps can override "exception_max".
583 "exception_max" "10";
584
585 // minimum & maximum length of an exception.
586 "exception_min_len" "4";
587 "exception_max_len" "12";
588
589 // users may add "badword_max" badwords to the list. IRCOps can override badword_max".
590 "badword_max" "10";
591
592 // minimum & maximum length of an badword.
593 "badword_min_len" "4";
594 "badword_max_len" "12";
595
596 // if someone advertises a channel, which doesn't exist (channel is empty, no users),
597 // SpamServ doesn't punish the user.
598 // enable this setting, if SpamServ has to ignore advertisements of channels, which do not exist.
599 // disable this setting, if SpamServ has to punish the users whenever they advertise.
600 "adv_chan_must_exist" "1";
601
602 // remove all mirc codes from messages before checking for advertisements.
603 // if this setting is disabled and someone spams a url which
604 // contains a bold char, SpamServ doesn't punish him.
605 "strip_mirc_codes" "1";
606
607 // enable this, if SpamServ has to "follow" ChanServ, when a channel moves or merges.
608 // disable it, if it shouldn't be possible to move or merge SpamServ with /msg chanserv move|merge.
609 "allow_move_merge" "1";
610 };
611 };
612
613 /* MODULES (optional components) *************************************************
614 * These must be explicitly compiled in (see ./configure --help)
615 * When enabled, they are configured here..
616 */
617 "modules" {
618 /* Helpserv is a help-queue tracker module for your #support channels, if
619 * they are busy. It issues users tickets, and tracks the next available helper.
620 */
621 "helpserv" {
622 // The description/fullname field
623 "description" "Help Queue Manager"; // (for whois)
624
625 // HelpServ bots log all of their requests to this file, with
626 // details on when they were opened, closed, their contents,
627 // helper, etc. The file is written in saxdb format for easy
628 // parsing by external programs. Please note that you cannot
629 // use ?set to change this value while x3 is running.
630 "reqlogfile" "helpservreq.log";
631
632 // How long should a helpserv be inactive (no requests assigned)
633 // before it can be unregistered by the expire command?
634 "expiration" "60d";
635
636 // If a user prefix's this before their helpserv commands then instead
637 // of a request being opened, they will be able to use helpserv commands.
638 "user_escape" "@";
639 };
640 /* SockCheck reads sockcheck.conf and can do configurable scans
641 * to probe for open relays in an attempt to stop drones from using
642 * the network. DO NOT enable this unless you have permission from
643 * your ISP.. the probes will show up as attacks on everyones firewalls
644 * and you will get a lot of complaints.
645 */
646 "sockcheck" {
647 // disabling this hopefully
648 "max_sockets" "0"; // 64 is a good # of concurrent clients to be checked
649 "max_read" "1024"; // don't read more than 1024 bytes from any client
650 "gline_duration" "1d"; // issue G-lines lasting one hour
651 "max_cache_age" "60"; // only cache results for 60 seconds
652 "bind_address" "192.168.0.10"; // do proxy tests from this address
653 };
654 /* Snoop sends connect, quit, join, and part messages for every user
655 * on the network, and helps in finding drones. Put it somewhere secure
656 * so your users privacy is honored.
657 */
658 "snoop" {
659 // Where to send snoop messages?
660 "channel" "#MrSnoopy";
661 "channel_modes" "+sntim";
662 // Which bot?
663 "bot" "O3";
664 // Show new users and joins from net joins? (off by default)
665 "show_bursts" "0";
666 };
667 /* Track works just like Snoop except it only sends events for users
668 * who have been specified
669 * DANGER: track is currently very broken, and will crash x3 and possibly corrupt your db file.
670 * Unless your a developer, dont even compile it in!
671 */
672 "track" {
673 // What to track by default?
674 "snomask" "nick,join,part,kick,new,del,auth,chanmode,umode";
675 // Where to send snoop messages?
676 "channel" "#MrPeanuts";
677 "channel_modes" "+sntOm";
678 // Which bot?
679 "bot" "O3";
680 // Show new users and joins from net joins? (off by default)
681 "show_bursts" "0";
682 };
683 /* Memoserv lets users send messages to other users accounts.
684 */
685 "memoserv" {
686 "bot" "MemoServ";
687 "modes" "+k";
688 "message_expiry" "30d"; // age when messages are deleted; set
689 // to 0 to disable message expiration
690 "limit" "30"; // Max amount of messages a person can get.
691 };
692 "qserver" {
693 "bind_address" "127.0.0.1";
694 "port" "7702";
695 "password" "hello";
696 };
697 "blacklist" {
698 // File containing blacklisted client addresses.
699 // "file" "blacklist.txt";
700 // Each line in the file should start with an IP or hostname.
701 // If there is whitespace and a message after that, the
702 // message will override this one:
703 "file_reason" "client is blacklisted";
704 // How long should a blacklist G-line last?
705 "gline_duration" "1h";
706 // If you want to use DNS blacklists, add them here:
707 "dnsbl" {
708 // This DNSBL zone does not exist - you'll have to pick your own.
709 "dnsbl.example.org" {
710 "description" "Example DNSBL entry";
711 "reason" "busted by a dns blacklist";
712 "duration" "1h";
713 // You can stick the client's IP in the G-line message.
714 "reason_2" "Example DNSBL reported %ip%'s address as 127.0.0.2";
715 // .. or the contents of a DNS TXT.
716 "reason_3" "%txt%";
717 };
718 };
719 };
720 "sar" {
721 // You generally will not want to override these defaults.
722 // "resolv_conf" "/etc/resolv.conf";
723 // "services" "/etc/services";
724 // "bind_address" "0.0.0.0";
725 // "bind_port" "0";
726 // The defaults for these are derived from the system config files (above).
727 // "domain" "example.org";
728 // "timeout" "3"; // base timeout for a DNS reply
729 // "retries" "3"; // number of times to retry on different servers or longer timeouts
730 // "ndots" "1"; // number of dots needed in a hostname to bypass search path
731 // "edns0" "0"; // if set, enable EDNS0 extended message sizes
732 // "search" ("example.org", "example.net");
733 // "nameservers" ("127.0.0.1");
734 };
735 /* WebTV allows webtv clients to use common IRC commands.
736 */
737 "webtv" {
738 "bot" "IRC";
739 "modes" "+k";
740
741 // Should clients need to be marked to use this service?
742 "required_mark" "1";
743 // which marks are valid webtv marks?
744 "valid_marks" ("webtv", "msntv", "msntv2");
745 };
746 };
747
748 "policers" {
749 "commands-luser" {
750 "size" "5";
751 "drain-rate" "0.5";
752 };
753 };
754
755 "rlimits" {
756 "data" "50M";
757 "stack" "6M";
758 "vmem" "100M";
759 };
760
761 /* MAIL (if and how X3 sends mail ) *********************************
762 * Mainly Authserv/Nickserv send mail, See the Nickserv
763 * section for additional mail settings also.
764 */
765 "mail" {
766 "enable" "1";
767 "mailer" "/usr/sbin/sendmail";
768 // OR Afternet uses a custom script to keep the services IP hidden:
769 // "mailer" "/home/x3user/x3/sendmail.sh";
770 "from_address" "supportrobot@afternet.org";
771 "extra_headers" ("AfterNET-Services: x3");
772 "body_prefix_first" ("Welcome to AfterNET, looks like this is your first email from us.");
773 "body_prefix" ("AfterNET Support - User and Channel registration system");
774 "body_suffix_first" ("", "AfterNET IRC Network", "http://www.afternet.org");
775 "body_suffix" ("", "AfterNET IRC Network", "http://www.afternet.org", "support@afternet.org","irc://irc.afternet.org/afternet");
776 // If you are using the smtp mail back-end, you may need to set these:
777 "smtp_server" "localhost";
778 "smtp_service" "smtp";
779 // "smtp_myname" "localhost.domain";
780 };
781
782 /* DBS (Databases) *************************************************
783 * let you configure what databases go in what files.
784 *
785 * This default sets up everything in one big x3.db file.
786 *
787 * If you leave this section out, each database will be in its own file,
788 * and they will be written out every half hour.
789 */
790 "dbs" {
791 // This just illustrates how you can jam every database into one huge ("mondo") file.
792 "ChanServ" { "mondo_section" "ChanServ"; };
793 "gline" { "mondo_section" "gline"; };
794 "shun" { "mondo_section" "shun"; };
795 "Global" { "mondo_section" "Global"; };
796 "HelpServ" { "mondo_section" "HelpServ"; };
797 "modcmd" { "mondo_section" "modcmd"; };
798 "NickServ" { "mondo_section" "NickServ"; };
799 "OpServ" { "mondo_section" "OpServ"; };
800 "sendmail" { "mondo_section" "sendmail"; };
801 "SpamServ" { "mondo_section" "SpamServ"; };
802
803 // These are the options if you want a database to be in its own file.
804 "mondo" {
805 // Where to put it?
806 "filename" "x3.db";
807 // How often should it be saved?
808 // (You can disable automatic saves by setting this to 0.)
809 "frequency" "30m";
810 };
811 };
812
813 /* LOGS (If and how X3 logs data ) ***********************************
814 * LOGS sets up where X3 logs various kinds of info to.
815 */
816 "logs" {
817 // Two kinds of items exist in this section.
818
819 // One is a facility configuration subsection. These have the
820 // name of a log facility (one of "ChanServ", "Global",
821 // "HelpServ", "NickServ", "OpServ", "ProxyCheck", or "x3") and
822 // the value is a subsection. The "x3" log facility is a
823 // catch-all/fall-back facility.
824 "x3" {
825 // The "max_age" option says how long to keep log audit entries.
826 "max_age" "10h";
827 // The "max_count" option says how many log audit entries to keep.
828 "max_count" "1024";
829 // Audit (command tracking) entries are discarded if they exceed
830 // either limit: for example, if entry 500 is 10 minutes old, it
831 // will be discarded next time any audit command is logged.
832 };
833
834 // The other kind of item is a target list. The name of each is a
835 // description of facility-and-severity combinations, and the value
836 // is a string (or list of strings) that describe where matching
837 // events should be logged. As a special case, the facility * will
838 // specify how to log events regardless of their true facility, and
839 // the severity * will match all severities for a facility.
840 // Log targets use a psuedo-URI syntax: one of "file:filename",
841 // "std:[out|err|n]" where n is a valid file descriptor, or
842 // "irc:#channel" (nicknames or server masks can be used instead
843 // of channel names, but should be used with care).
844 // The severity is one of "replay", "debug", "command", "info",
845 // "override", "staff", "warning", "error", or "fatal".
846 // WARNING: If any severity except "replay" for a facility is left
847 // unspecified, it will use the default target (for example,
848 // "file:chanserv.log"). For "replay" severity, you must ALWAYS
849 // list a target to log it -- this is because it is very rarely
850 // useful.
851 "*.*" ("std:out", "file:everything.log"); // does NOT suppress any defaults
852 "*.override,error,fatal" "irc:#TheOps"; // report all uses of staff commands
853 "*.staff" "irc:#MrSnoopy"; // report all uses of staff commands
854 "ChanServ.*" "file:chanserv.log"; // duplicates the default behavior
855 "ProxyCheck.*" (); // stop it from logging anything
856 };