X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/c2d96fcbff166764df88108e6e3ec761219ee93c..cff17f66fa5f4879ce9ef9928b4986e107cce91d:/doc/example.conf diff --git a/doc/example.conf b/doc/example.conf index dd10abd..36a1cd8 100755 --- a/doc/example.conf +++ b/doc/example.conf @@ -4,34 +4,42 @@ * Copyright (C) 2002-2005 ircd-ratbox development team * Copyright (C) 2005-2006 charybdis development team * - * $Id: example.conf 3251 2007-03-05 18:58:38Z nenolod $ + * $Id: example.conf 3582 2007-11-17 21:55:48Z jilles $ * * See reference.conf for more information. */ /* Extensions */ +#loadmodule "extensions/chm_adminonly.so"; +loadmodule "extensions/chm_operonly.so"; +#loadmodule "extensions/chm_sslonly.so"; +#loadmodule "extensions/chm_operonly_compat.so"; +#loadmodule "extensions/chm_quietunreg_compat.so"; +#loadmodule "extensions/chm_sslonly_compat.so"; #loadmodule "extensions/createauthonly.so"; -#loadmodule "extensions/extb_account.so"; -#loadmodule "extensions/extb_canjoin.so"; -#loadmodule "extensions/extb_channel.so"; -#loadmodule "extensions/extb_extgecos.so"; -#loadmodule "extensions/extb_oper.so"; -#loadmodule "extensions/extb_realname.so"; +loadmodule "extensions/extb_account.so"; +loadmodule "extensions/extb_canjoin.so"; +loadmodule "extensions/extb_channel.so"; +loadmodule "extensions/extb_extgecos.so"; +loadmodule "extensions/extb_oper.so"; +loadmodule "extensions/extb_realname.so"; #loadmodule "extensions/extb_server.so"; +#loadmodule "extensions/extb_ssl.so"; #loadmodule "extensions/hurt.so"; -#loadmodule "extensions/ip_cloaking.so"; +loadmodule "extensions/ip_cloaking.so"; #loadmodule "extensions/m_findforwards.so"; -#loadmodule "extensions/m_identify.so"; +loadmodule "extensions/m_identify.so"; #loadmodule "extensions/no_oper_invis.so"; -#loadmodule "extensions/sno_farconnect.so"; -#loadmodule "extensions/sno_globalkline.so"; -#loadmodule "extensions/sno_globaloper.so"; +loadmodule "extensions/sno_farconnect.so"; +loadmodule "extensions/sno_globalkline.so"; +loadmodule "extensions/sno_globaloper.so"; +#loadmodule "extensions/sno_whois.so"; +#loadmodule "extensions/m_force.so"; serverinfo { name = "hades.arpa"; - use_ts6 = yes; sid = "42X"; - description = "charybdis test server"; + description = "shadowircd test server"; network_name = "AthemeNET"; network_desc = "Your IRC network."; hub = yes; @@ -42,11 +50,30 @@ serverinfo { #vhost = "192.169.0.1"; /* for IPv6 */ #vhost6 = "3ffe:80e8:546::2"; + + /* ssl_private_key: our ssl private key */ + ssl_private_key = "etc/test.key"; + + /* ssl_cert: certificate for our ssl server */ + ssl_cert = "etc/test.cert"; + + /* ssl_dh_params: DH parameters, generate with openssl dhparam -out dh.pem 1024 */ + ssl_dh_params = "etc/dh.pem"; + + /* ssld_count: number of ssld processes you want to start, if you + * have a really busy server, using N-1 where N is the number of + * cpu/cpu cores you have might be useful. A number greater than one + * can also be useful in case of bugs in ssld and because ssld needs + * two file descriptors per SSL connection. + */ + ssld_count = 1; - /* max_clients: This should be set to the amount of connections - * the server can handle. + /* default max clients: the default maximum number of clients + * allowed to connect. This can be changed once ircd has started by + * issuing: + * /quote set maxclients */ - max_clients = 1024; + default_max_clients = 1024; }; admin { @@ -61,7 +88,6 @@ log { fname_operlog = "logs/operlog"; #fname_foperlog = "logs/foperlog"; fname_serverlog = "logs/serverlog"; - fname_glinelog = "logs/glinelog"; #fname_klinelog = "logs/klinelog"; fname_killlog = "logs/killlog"; fname_operspylog = "logs/operspylog"; @@ -73,11 +99,12 @@ log { */ class "users" { ping_time = 2 minutes; - number_per_ident = 10; + number_per_ident = 10; number_per_ip = 10; - number_per_ip_global = 50; - cidr_bitlen = 64; - number_per_cidr = 8; + number_per_ip_global = 50; + cidr_ipv4_bitlen = 24; + cidr_ipv6_bitlen = 64; + number_per_cidr = 200; max_number = 3000; sendq = 400 kbytes; }; @@ -102,10 +129,12 @@ listen { */ #host = "192.169.0.1"; port = 5000, 6665 .. 6669; + sslport = 9999; /* Listen on IPv6 (if you used host= above). */ #host = "3ffe:1234:a:b:c::d"; #port = 5000, 6665 .. 6669; + #sslport = 9999; }; /* auth {}: allow users to connect to the ircd (OLD I:) @@ -114,8 +143,11 @@ listen { * then general access, then restricted. */ auth { - /* user: the user@host allowed to connect. multiple IPv4/IPv6 user - * lines are permitted per auth block. + /* user: the user@host allowed to connect. Multiple IPv4/IPv6 user + * lines are permitted per auth block. This is matched against the + * hostname and IP address (using :: shortening for IPv6 and + * prepending a 0 if it starts with a colon) and can also use CIDR + * masks. */ user = "*@172.16.0.0/12"; user = "*test@123D:B567:*"; @@ -132,6 +164,17 @@ auth { */ spoof = "I.still.hate.packets"; + /* autojoin: Channel (or channels, comma-seperated) to join users + * in this auth block to on connect. Note that this won't join + * the user through any bans or otherwise restrictive chmodes. + */ + autojoin = "#shadowircd,#test"; + + /* autojoin_opers : Channel (or channels, comma-seperated) to join + * opers to on oper-up. + */ + autojoin_opers = "#opers,#help"; + /* Possible flags in auth: * * encrypted | password is encrypted with mkpasswd @@ -139,7 +182,6 @@ auth { * exceed_limit (old > flag) | allow user to exceed class user limits * kline_exempt (old ^ flag) | exempt this user from k/g/xlines&dnsbls * dnsbl_exempt | exempt this user from dnsbls - * gline_exempt (old _ flag) | exempt this user from glines * spambot_exempt | exempt this user from spambot checks * shide_exempt | exempt this user from serverhiding * jupe_exempt | exempt this user from generating @@ -149,6 +191,7 @@ auth { * USE WITH CAUTION. * no_tilde (old - flag) | don't prefix ~ to username if no ident * need_ident (old + flag) | require ident for user in this class + * need_ssl | require SSL/TLS for user in this class * need_sasl | require SASL id for user in this class */ flags = kline_exempt, exceed_limit; @@ -162,6 +205,29 @@ auth { class = "users"; }; +/* privset {} blocks MUST be specified before anything that uses them. That + * means they must be defined before operator {}. + */ +privset "local_op" { + privs = oper:local_kill, oper:operwall; +}; + +privset "server_bot" { + extends = "local_op"; + privs = oper:kline, oper:remoteban, snomask:nick_changes; +}; + +privset "global_op" { + extends = "local_op"; + privs = oper:global_kill, oper:routing, oper:kline, oper:unkline, oper:xline, + oper:resv, oper:mass_notice, oper:remoteban; +}; + +privset "admin" { + extends = "global_op"; + privs = oper:admin, oper:die, oper:rehash, oper:spy; +}; + operator "god" { /* name: the name of the oper must go above */ @@ -189,46 +255,31 @@ operator "god" { */ #umodes = locops, servnotice, operwall, wallop; + /* fingerprint: if specified, the oper's client certificate + * fingerprint will be checked against the specified fingerprint + * below. + */ + #fingerprint = "c77106576abf7f9f90cca0f63874a60f2e40a64b"; + /* snomask: specific server notice mask on oper up. * If this is specified an oper will not be given oper_snomask. */ snomask = "+Zbfkrsuy"; - /* privileges: controls the activities and commands an oper is - * allowed to do on the server. You may prefix an option with ~ to - * disable it, ie ~operwall + /* flags: misc options for the operator. You may prefix an option + * with ~ to disable it, e.g. ~encrypted. * - * Default flags are operwall, remoteban and encrypted. + * Default flags are encrypted. * * Available options: * * encrypted: the password above is encrypted [DEFAULT] - * local_kill: allows local users to be /KILL'd - * global_kill: allows local and remote users to be - * /KILL'd (OLD 'O' flag) - * remote: allows remote SQUIT and CONNECT (OLD 'R' flag) - * kline: allows KILL, KLINE and DLINE (OLD 'K' flag) - * unkline: allows UNKLINE and UNDLINE (OLD 'U' flag) - * gline: allows GLINE (OLD 'G' flag) - * nick_changes: allows oper to see nickchanges (OLD 'N' flag) - * via usermode +n - * rehash: allows oper to REHASH config (OLD 'H' flag) - * die: allows DIE and RESTART (OLD 'D' flag) - * admin: gives admin privileges. admins - * may (un)load modules and see the - * real IPs of servers. - * hidden_admin: gives admin privileges except - * will not have the admin lines in - * stats p and whois. - * xline: allows use of /quote xline/unxline - * operwall: allows the oper to send operwalls [DEFAULT] - * oper_spy: allows 'operspy' features to see through +s - * channels etc. see /quote help operspy - * hidden_oper: hides the oper from /stats p (OLD UMODE +p) - * remoteban: allows remote kline etc [DEFAULT] + * need_ssl: must be using SSL/TLS to oper up */ - flags = global_kill, remote, kline, unkline, gline, - die, rehash, admin, xline, operwall; + flags = encrypted; + + /* privset: privileges set to grant */ + privset = "admin"; }; connect "irc.uplink.com" { @@ -240,10 +291,21 @@ connect "irc.uplink.com" { class = "server"; flags = compressed, topicburst; - /* If the connection is IPv6, uncomment below */ + /* If the connection is IPv6, uncomment below. + * Use 0::1, not ::1, for IPv6 localhost. */ #aftype = ipv6; }; +connect "ssl.uplink.com" { + host = "192.168.0.1"; + send_password = "password"; + accept_password = "anotherpassword"; + port = 9999; + hub_mask = "*"; + class = "server"; + flags = ssl, topicburst; +}; + service { name = "services.int"; }; @@ -258,17 +320,17 @@ shared { flags = all, rehash; }; -/* exempt {}: IPs that are exempt from Dlines. (OLD d:) */ +/* exempt {}: IPs that are exempt from Dlines and rejectcache. (OLD d:) */ exempt { ip = "127.0.0.1"; }; channel { + autochanmodes = "nt"; use_invex = yes; use_except = yes; use_knock = yes; use_forward = yes; - invite_ops_only = yes; knock_delay = 5 minutes; knock_delay_channel = 1 minute; max_chans_per_user = 15; @@ -280,6 +342,10 @@ channel { no_join_on_split = no; burst_topicwho = yes; kick_on_split_riding = no; + only_ascii_channels = no; + cycle_host_change = yes; + host_in_topic = yes; + resv_forcepart = yes; }; serverhide { @@ -291,7 +357,7 @@ serverhide { /* These are the blacklist settings. * You can have multiple combinations of host and rejection reasons. - * They are used in pairs of one host/rejection reason, or multiple hosts/rejection reason. + * They are used in pairs of one host/rejection reason. * * These settings should be adequate for most networks, and are (presently) * required for use on AthemeNet. @@ -308,17 +374,20 @@ serverhide { * ${nick} - the user's nickname * ${network-name} - the name of the network * - * Note: AHBL (the providers of the below BLs) request that they be + * Note: AHBL (the providers of the below *.ahbl.org BLs) request that they be * contacted, via email, at admins@2mbit.com before using these BLs. * See for more information. */ -#blacklist { +blacklist { + host = "dnsbl.dronebl.org"; + reject_reason = "${nick}, your IP (${ip}) is listed in DroneBL. For assistance, see http://dronebl.org/lookup_branded.do?ip=${ip}&network=${network-name}"; + # host = "ircbl.ahbl.org"; # 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."; # # host = "tor.ahbl.org"; # 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."; -#}; +}; alias "NickServ" { target = "NickServ"; @@ -336,6 +405,14 @@ alias "MemoServ" { target = "MemoServ"; }; +alias "HostServ" { + target = "HostServ"; +}; + +alias "BotServ" { + target = "BotServ"; +}; + alias "NS" { target = "NickServ"; }; @@ -352,17 +429,25 @@ alias "MS" { target = "MemoServ"; }; +alias "HS" { + target = "HostServ"; +}; + +alias "BS" { + target = "BotServ"; +}; + general { hide_error_messages = opers; hide_spoof_ips = yes; /* - * default_umodes: umodes to enable on connect. - * If you have enabled the ip_cloaking module, and you want - * to make use of it, add +h to this option, i.e.: - * default_umodes = "+ih"; + * default umodes: umodes to set upon connection + * If you have enabled the ip_cloaking extension, and you wish for + * incoming clients to be cloaked upon connection, +x must be in + * the umode string below. */ - default_umodes = "+i"; + default_umodes = "+ix"; default_operstring = "is an IRC Operator"; default_adminstring = "is a Server Administrator"; @@ -372,7 +457,6 @@ general { default_floodcount = 10; failed_oper_notice = yes; dots_in_ident=2; - dot_in_ip6_addr = no; min_nonwildcard = 4; min_nonwildcard_simple = 3; max_accept = 100; @@ -405,6 +489,7 @@ general { map_oper_only = no; operspy_admin_only = no; operspy_dont_care_user_info = no; + secret_channels_in_whois = no; caller_id_wait = 1 minute; pace_wait_simple = 1 second; pace_wait = 10 seconds; @@ -413,10 +498,6 @@ general { connect_timeout = 30 seconds; disable_auth = no; no_oper_flood = yes; - glines = no; - gline_time = 1 day; - gline_min_cidr = 16; - idletime = 0; max_targets = 4; client_flood = 20; use_whois_actually = no; @@ -428,6 +509,8 @@ general { reject_ban_time = 1 minute; reject_after_count = 3; reject_duration = 5 minutes; + throttle_duration = 60; + throttle_count = 4; }; modules {