~ubuntu-branches/ubuntu/trusty/charybdis/trusty-proposed

« back to all changes in this revision

Viewing changes to .pc/ircd.conf/doc/example.conf

  • Committer: Package Import Robot
  • Author(s): Antoine Beaupré
  • Date: 2011-11-10 23:07:37 UTC
  • Revision ID: package-import@ubuntu.com-20111110230737-3dnv6kgi02swy3y5
Tags: 3.3.0-5
add all undocumented copyrights - some files do not have copyright
headers still, it is assumed they are GPL-2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* doc/example.conf - brief example configuration file
 
2
 *
 
3
 * Copyright (C) 2000-2002 Hybrid Development Team
 
4
 * Copyright (C) 2002-2005 ircd-ratbox development team
 
5
 * Copyright (C) 2005-2006 charybdis development team
 
6
 *
 
7
 * $Id: example.conf 3582 2007-11-17 21:55:48Z jilles $
 
8
 *
 
9
 * See reference.conf for more information.
 
10
 */
 
11
 
 
12
/* Extensions */
 
13
#loadmodule "extensions/chm_operonly_compat.so";
 
14
#loadmodule "extensions/chm_quietunreg_compat.so";
 
15
#loadmodule "extensions/chm_sslonly_compat.so";
 
16
#loadmodule "extensions/createauthonly.so";
 
17
#loadmodule "extensions/extb_account.so";
 
18
#loadmodule "extensions/extb_canjoin.so";
 
19
#loadmodule "extensions/extb_channel.so";
 
20
#loadmodule "extensions/extb_extgecos.so";
 
21
#loadmodule "extensions/extb_oper.so";
 
22
#loadmodule "extensions/extb_realname.so";
 
23
#loadmodule "extensions/extb_server.so";
 
24
#loadmodule "extensions/extb_ssl.so";
 
25
#loadmodule "extensions/hurt.so";
 
26
#loadmodule "extensions/m_findforwards.so";
 
27
#loadmodule "extensions/m_identify.so";
 
28
#loadmodule "extensions/no_oper_invis.so";
 
29
#loadmodule "extensions/sno_farconnect.so";
 
30
#loadmodule "extensions/sno_globalkline.so";
 
31
#loadmodule "extensions/sno_globaloper.so";
 
32
#loadmodule "extensions/sno_whois.so";
 
33
 
 
34
/*
 
35
 * IP cloaking extensions: use ip_cloaking_4.0
 
36
 * if you're linking 3.2 and later, otherwise use
 
37
 * ip_cloaking.so, for compatibility with older 3.x
 
38
 * releases.
 
39
 */
 
40
 
 
41
#loadmodule "extensions/ip_cloaking_4.0.so";
 
42
#loadmodule "extensions/ip_cloaking.so";
 
43
 
 
44
serverinfo {
 
45
        name = "hades.arpa";
 
46
        sid = "42X";
 
47
        description = "charybdis test server";
 
48
        network_name = "AthemeNET";
 
49
        network_desc = "Your IRC network.";
 
50
        hub = yes;
 
51
 
 
52
        /* On multi-homed hosts you may need the following. These define
 
53
         * the addresses we connect from to other servers. */
 
54
        /* for IPv4 */
 
55
        #vhost = "192.169.0.1";
 
56
        /* for IPv6 */
 
57
        #vhost6 = "3ffe:80e8:546::2";
 
58
        
 
59
        /* ssl_private_key: our ssl private key */
 
60
        ssl_private_key = "etc/test.key";
 
61
 
 
62
        /* ssl_cert: certificate for our ssl server */
 
63
        ssl_cert = "etc/test.cert";
 
64
 
 
65
        /* ssl_dh_params: DH parameters, generate with openssl dhparam -out dh.pem 1024 */
 
66
        ssl_dh_params = "etc/dh.pem";
 
67
 
 
68
        /* ssld_count: number of ssld processes you want to start, if you
 
69
         * have a really busy server, using N-1 where N is the number of
 
70
         * cpu/cpu cores you have might be useful. A number greater than one
 
71
         * can also be useful in case of bugs in ssld and because ssld needs
 
72
         * two file descriptors per SSL connection.
 
73
         */
 
74
        ssld_count = 1;
 
75
 
 
76
        /* default max clients: the default maximum number of clients
 
77
         * allowed to connect.  This can be changed once ircd has started by
 
78
         * issuing:
 
79
         *   /quote set maxclients <limit>
 
80
         */
 
81
        default_max_clients = 1024;
 
82
};
 
83
 
 
84
admin {
 
85
        name = "Lazy admin (lazya)";
 
86
        description = "AthemeNET client server";
 
87
        email = "nobody@127.0.0.1";
 
88
};
 
89
 
 
90
log {
 
91
        fname_userlog = "logs/userlog";
 
92
        #fname_fuserlog = "logs/fuserlog";
 
93
        fname_operlog = "logs/operlog";
 
94
        #fname_foperlog = "logs/foperlog";
 
95
        fname_serverlog = "logs/serverlog";
 
96
        #fname_klinelog = "logs/klinelog";
 
97
        fname_killlog = "logs/killlog";
 
98
        fname_operspylog = "logs/operspylog";
 
99
        #fname_ioerrorlog = "logs/ioerror";
 
100
};
 
101
 
 
102
/* class {} blocks MUST be specified before anything that uses them.  That
 
103
 * means they must be defined before auth {} and before connect {}.
 
104
 */
 
105
class "users" {
 
106
        ping_time = 2 minutes;
 
107
        number_per_ident = 10;
 
108
        number_per_ip = 10;
 
109
        number_per_ip_global = 50;
 
110
        cidr_ipv4_bitlen = 24;
 
111
        cidr_ipv6_bitlen = 64;
 
112
        number_per_cidr = 200;
 
113
        max_number = 3000;
 
114
        sendq = 400 kbytes;
 
115
};
 
116
 
 
117
class "opers" {
 
118
        ping_time = 5 minutes;
 
119
        number_per_ip = 10;
 
120
        max_number = 1000;
 
121
        sendq = 1 megabyte;
 
122
};
 
123
 
 
124
class "server" {
 
125
        ping_time = 5 minutes;
 
126
        connectfreq = 5 minutes;
 
127
        max_number = 1;
 
128
        sendq = 4 megabytes;
 
129
};
 
130
 
 
131
listen {
 
132
        /* If you want to listen on a specific IP only, specify host.
 
133
         * host definitions apply only to the following port line.
 
134
         */
 
135
        #host = "192.169.0.1";
 
136
        port = 5000, 6665 .. 6669;
 
137
        sslport = 6697;
 
138
 
 
139
        /* Listen on IPv6 (if you used host= above). */
 
140
        #host = "3ffe:1234:a:b:c::d";
 
141
        #port = 5000, 6665 .. 6669;
 
142
        #sslport = 9999;
 
143
};
 
144
 
 
145
/* auth {}: allow users to connect to the ircd (OLD I:)
 
146
 * auth {} blocks MUST be specified in order of precedence.  The first one
 
147
 * that matches a user will be used.  So place spoofs first, then specials,
 
148
 * then general access, then restricted.
 
149
 */
 
150
auth {
 
151
        /* user: the user@host allowed to connect.  Multiple IPv4/IPv6 user
 
152
         * lines are permitted per auth block.  This is matched against the
 
153
         * hostname and IP address (using :: shortening for IPv6 and
 
154
         * prepending a 0 if it starts with a colon) and can also use CIDR
 
155
         * masks.
 
156
         */
 
157
        user = "*@172.16.0.0/12";
 
158
        user = "*test@123D:B567:*";
 
159
 
 
160
        /* password: an optional password that is required to use this block.
 
161
         * By default this is not encrypted, specify the flag "encrypted" in
 
162
         * flags = ...; below if it is.
 
163
         */
 
164
        password = "letmein";
 
165
        
 
166
        /* spoof: fake the users user@host to be be this.  You may either
 
167
         * specify a host or a user@host to spoof to.  This is free-form,
 
168
         * just do everyone a favour and dont abuse it. (OLD I: = flag)
 
169
         */
 
170
        spoof = "I.still.hate.packets";
 
171
 
 
172
        /* Possible flags in auth:
 
173
         * 
 
174
         * encrypted                  | password is encrypted with mkpasswd
 
175
         * spoof_notice               | give a notice when spoofing hosts
 
176
         * exceed_limit (old > flag)  | allow user to exceed class user limits
 
177
         * kline_exempt (old ^ flag)  | exempt this user from k/g/xlines&dnsbls
 
178
         * dnsbl_exempt               | exempt this user from dnsbls
 
179
         * spambot_exempt             | exempt this user from spambot checks
 
180
         * shide_exempt               | exempt this user from serverhiding
 
181
         * jupe_exempt                | exempt this user from generating
 
182
         *                              warnings joining juped channels
 
183
         * resv_exempt                | exempt this user from resvs
 
184
         * flood_exempt               | exempt this user from flood limits
 
185
         *                                     USE WITH CAUTION.
 
186
         * no_tilde     (old - flag)  | don't prefix ~ to username if no ident
 
187
         * need_ident   (old + flag)  | require ident for user in this class
 
188
         * need_ssl                   | require SSL/TLS for user in this class
 
189
         * need_sasl                  | require SASL id for user in this class
 
190
         */
 
191
        flags = kline_exempt, exceed_limit;
 
192
        
 
193
        /* class: the class the user is placed in */
 
194
        class = "opers";
 
195
};
 
196
 
 
197
auth {
 
198
        user = "*@*";
 
199
        class = "users";
 
200
};
 
201
 
 
202
/* privset {} blocks MUST be specified before anything that uses them.  That
 
203
 * means they must be defined before operator {}.
 
204
 */
 
205
privset "local_op" {
 
206
        privs = oper:local_kill, oper:operwall;
 
207
};
 
208
 
 
209
privset "server_bot" {
 
210
        extends = "local_op";
 
211
        privs = oper:kline, oper:remoteban, snomask:nick_changes;
 
212
};
 
213
 
 
214
privset "global_op" {
 
215
        extends = "local_op";
 
216
        privs = oper:global_kill, oper:routing, oper:kline, oper:unkline, oper:xline,
 
217
                oper:resv, oper:mass_notice, oper:remoteban;
 
218
};
 
219
 
 
220
privset "admin" {
 
221
        extends = "global_op";
 
222
        privs = oper:admin, oper:die, oper:rehash, oper:spy;
 
223
};
 
224
 
 
225
operator "god" {
 
226
        /* name: the name of the oper must go above */
 
227
 
 
228
        /* user: the user@host required for this operator.  CIDR *is*
 
229
         * supported now. auth{} spoofs work here, other spoofs do not.
 
230
         * multiple user="" lines are supported.
 
231
         */
 
232
        user = "*god@127.0.0.1";
 
233
 
 
234
        /* password: the password required to oper.  Unless ~encrypted is
 
235
         * contained in flags = ...; this will need to be encrypted using 
 
236
         * mkpasswd, MD5 is supported
 
237
         */
 
238
        password = "etcnjl8juSU1E";
 
239
 
 
240
        /* rsa key: the public key for this oper when using Challenge.
 
241
         * A password should not be defined when this is used, see 
 
242
         * doc/challenge.txt for more information.
 
243
         */
 
244
        #rsa_public_key_file = "/usr/local/ircd/etc/oper.pub";
 
245
 
 
246
        /* umodes: the specific umodes this oper gets when they oper.
 
247
         * If this is specified an oper will not be given oper_umodes
 
248
         * These are described above oper_only_umodes in general {};
 
249
         */
 
250
        #umodes = locops, servnotice, operwall, wallop;
 
251
 
 
252
        /* fingerprint: if specified, the oper's client certificate
 
253
         * fingerprint will be checked against the specified fingerprint
 
254
         * below.
 
255
         */
 
256
        #fingerprint = "c77106576abf7f9f90cca0f63874a60f2e40a64b";
 
257
 
 
258
        /* snomask: specific server notice mask on oper up.
 
259
         * If this is specified an oper will not be given oper_snomask.
 
260
         */
 
261
        snomask = "+Zbfkrsuy";
 
262
 
 
263
        /* flags: misc options for the operator.  You may prefix an option
 
264
         * with ~ to disable it, e.g. ~encrypted.
 
265
         *
 
266
         * Default flags are encrypted.
 
267
         *
 
268
         * Available options:
 
269
         *
 
270
         * encrypted:    the password above is encrypted [DEFAULT]
 
271
         * need_ssl:     must be using SSL/TLS to oper up
 
272
         */
 
273
        flags = encrypted;
 
274
 
 
275
        /* privset: privileges set to grant */
 
276
        privset = "admin";
 
277
};
 
278
 
 
279
connect "irc.uplink.com" {
 
280
        host = "192.168.0.1";
 
281
        send_password = "password";
 
282
        accept_password = "anotherpassword";
 
283
        port = 6666;
 
284
        hub_mask = "*";
 
285
        class = "server";
 
286
        flags = compressed, topicburst;
 
287
 
 
288
        /* If the connection is IPv6, uncomment below.
 
289
         * Use 0::1, not ::1, for IPv6 localhost. */
 
290
        #aftype = ipv6;
 
291
};
 
292
 
 
293
connect "ssl.uplink.com" {
 
294
        host = "192.168.0.1";
 
295
        send_password = "password";
 
296
        accept_password = "anotherpassword";
 
297
        port = 9999;
 
298
        hub_mask = "*";
 
299
        class = "server";
 
300
        flags = ssl, topicburst;
 
301
};
 
302
 
 
303
service {
 
304
        name = "services.int";
 
305
};
 
306
 
 
307
cluster {
 
308
        name = "*";
 
309
        flags = kline, tkline, unkline, xline, txline, unxline, resv, tresv, unresv;
 
310
};
 
311
 
 
312
shared {
 
313
        oper = "*@*", "*";
 
314
        flags = all, rehash;
 
315
};
 
316
 
 
317
/* exempt {}: IPs that are exempt from Dlines and rejectcache. (OLD d:) */
 
318
exempt {
 
319
        ip = "127.0.0.1";
 
320
};
 
321
 
 
322
channel {
 
323
        use_invex = yes;
 
324
        use_except = yes;
 
325
        use_knock = yes;
 
326
        use_forward = yes;
 
327
        knock_delay = 5 minutes;
 
328
        knock_delay_channel = 1 minute;
 
329
        max_chans_per_user = 15;
 
330
        max_bans = 100;
 
331
        max_bans_large = 500;
 
332
        default_split_user_count = 0;
 
333
        default_split_server_count = 0;
 
334
        no_create_on_split = no;
 
335
        no_join_on_split = no;
 
336
        burst_topicwho = yes;
 
337
        kick_on_split_riding = no;
 
338
        only_ascii_channels = no;
 
339
        resv_forcepart = yes;
 
340
        channel_target_change = yes;
 
341
};
 
342
 
 
343
serverhide {
 
344
        flatten_links = yes;
 
345
        links_delay = 5 minutes;
 
346
        hidden = no;
 
347
        disable_hidden = no;
 
348
};
 
349
 
 
350
/* These are the blacklist settings.
 
351
 * You can have multiple combinations of host and rejection reasons.
 
352
 * They are used in pairs of one host/rejection reason.
 
353
 *
 
354
 * These settings should be adequate for most networks, and are (presently)
 
355
 * required for use on AthemeNet.
 
356
 *
 
357
 * Word to the wise: Do not use blacklists like SPEWS for blocking IRC
 
358
 * connections.
 
359
 *
 
360
 * As of charybdis 2.1.3, you can do some keyword substitution on the rejection
 
361
 * reason. The available keyword substitutions are:
 
362
 *
 
363
 *   ${ip}           - the user's IP
 
364
 *   ${host}         - the user's canonical hostname
 
365
 *   ${dnsbl-host}   - the dnsbl hostname the lookup was done against
 
366
 *   ${nick}         - the user's nickname
 
367
 *   ${network-name} - the name of the network
 
368
 *
 
369
 * Note: AHBL (the providers of the below *.ahbl.org BLs) request that they be
 
370
 * contacted, via email, at admins@2mbit.com before using these BLs.
 
371
 * See <http://www.ahbl.org/services.php> for more information.
 
372
 */
 
373
blacklist {
 
374
        host = "rbl.efnetrbl.org";
 
375
        reject_reason = "${nick}, your IP (${ip}) is listed in EFnet's RBL. For assistance, see http://efnetrbl.org/?i=${ip}";
 
376
 
 
377
#       host = "ircbl.ahbl.org";
 
378
#       reject_reason = "${nick}, your IP (${ip}) is listed in ${dnsbl-host} for having an open proxy. In order to protect ${network-name} from abuse, we are not allowing connections with open proxies to connect.";
 
379
#
 
380
#       host = "tor.ahbl.org";
 
381
#       reject_reason = "${nick}, your IP (${ip}) is listed as a TOR exit node. In order to protect ${network-name} from tor-based abuse, we are not allowing TOR exit nodes to connect to our network.";
 
382
};
 
383
 
 
384
alias "NickServ" {
 
385
        target = "NickServ";
 
386
};
 
387
 
 
388
alias "ChanServ" {
 
389
        target = "ChanServ";
 
390
};
 
391
 
 
392
alias "OperServ" {
 
393
        target = "OperServ";
 
394
};
 
395
 
 
396
alias "MemoServ" {
 
397
        target = "MemoServ";
 
398
};
 
399
 
 
400
alias "NS" {
 
401
        target = "NickServ";
 
402
};
 
403
 
 
404
alias "CS" {
 
405
        target = "ChanServ";
 
406
};
 
407
 
 
408
alias "OS" {
 
409
        target = "OperServ";
 
410
};
 
411
 
 
412
alias "MS" {
 
413
        target = "MemoServ";
 
414
};
 
415
 
 
416
general {
 
417
        hide_error_messages = opers;
 
418
        hide_spoof_ips = yes;
 
419
 
 
420
        /*
 
421
         * default_umodes: umodes to enable on connect.
 
422
         * If you have enabled the new ip_cloaking_4.0 module, and you want
 
423
         * to make use of it, add +x to this option, i.e.:
 
424
         *      default_umodes = "+ix";
 
425
         *
 
426
         * If you have enabled the old ip_cloaking module, and you want
 
427
         * to make use of it, add +h to this option, i.e.:
 
428
         *      default_umodes = "+ih";
 
429
         */
 
430
        default_umodes = "+i";
 
431
 
 
432
        default_operstring = "is an IRC Operator";
 
433
        default_adminstring = "is a Server Administrator";
 
434
        servicestring = "is a Network Service";
 
435
        disable_fake_channels = no;
 
436
        tkline_expire_notices = no;
 
437
        default_floodcount = 10;
 
438
        failed_oper_notice = yes;
 
439
        dots_in_ident=2;
 
440
        min_nonwildcard = 4;
 
441
        min_nonwildcard_simple = 3;
 
442
        max_accept = 100;
 
443
        max_monitor = 100;
 
444
        anti_nick_flood = yes;
 
445
        max_nick_time = 20 seconds;
 
446
        max_nick_changes = 5;
 
447
        anti_spam_exit_message_time = 5 minutes;
 
448
        ts_warn_delta = 30 seconds;
 
449
        ts_max_delta = 5 minutes;
 
450
        client_exit = yes;
 
451
        collision_fnc = yes;
 
452
        global_snotices = yes;
 
453
        dline_with_reason = yes;
 
454
        kline_delay = 0 seconds;
 
455
        kline_with_reason = yes;
 
456
        kline_reason = "K-Lined";
 
457
        identify_service = "NickServ@services.int";
 
458
        identify_command = "IDENTIFY";
 
459
        non_redundant_klines = yes;
 
460
        warn_no_nline = yes;
 
461
        use_propagated_bans = yes;
 
462
        stats_e_disabled = no;
 
463
        stats_c_oper_only=no;
 
464
        stats_h_oper_only=no;
 
465
        stats_y_oper_only=no;
 
466
        stats_o_oper_only=yes;
 
467
        stats_P_oper_only=no;
 
468
        stats_i_oper_only=masked;
 
469
        stats_k_oper_only=masked;
 
470
        map_oper_only = no;
 
471
        operspy_admin_only = no;
 
472
        operspy_dont_care_user_info = no;
 
473
        caller_id_wait = 1 minute;
 
474
        pace_wait_simple = 1 second;
 
475
        pace_wait = 10 seconds;
 
476
        short_motd = no;
 
477
        ping_cookie = no;
 
478
        connect_timeout = 30 seconds;
 
479
        default_ident_timeout = 5;
 
480
        disable_auth = no;
 
481
        no_oper_flood = yes;
 
482
        max_targets = 4;
 
483
        client_flood = 20;
 
484
        use_whois_actually = no;
 
485
        oper_only_umodes = operwall, locops, servnotice;
 
486
        oper_umodes = locops, servnotice, operwall, wallop;
 
487
        oper_snomask = "+s";
 
488
        burst_away = yes;
 
489
        nick_delay = 0 seconds; # 15 minutes if you want to enable this
 
490
        reject_ban_time = 1 minute;
 
491
        reject_after_count = 3;
 
492
        reject_duration = 5 minutes;
 
493
        throttle_duration = 60;
 
494
        throttle_count = 4;
 
495
};
 
496
 
 
497
modules {
 
498
        path = "modules";
 
499
        path = "modules/autoload";
 
500
};