-/* vim:syntax=c:ts=4
- * *****************************************************************
+/* *****************************************************************
* X3 Services Example Configuration file.
*
* Copy it to your x3 runtime dir, and edit to taste.
*/
"uplinks" {
// This first entry connects to an ircd on teh same server an X3..
- "Hub" { // This can be any string, just used here for your conveniance
+ "Hub" { // This can be any string, just used here for your convenience
"address" "127.0.0.1"; // The IP address of the server
"port" "8888"; // What TCP port to connect to
"password" "laoo,rpe"; // Both of these passwords must match
/* hidden_host should match the F:HIDDEN_HOST: line in your ircu's ircd.conf;
* x3 does not set the host suffix for users, but must know it when making
* things like bans, where it should not show the user's real hostname. */
+ "hidden_host_type" "1"; // change this to 2 if you use Nefarious's style 2 host hiding.
+ "key1" "45432"; // Set these key values to the network KEY values you use
+ "key2" "76934"; // for host hiding style 2.
+ "key3" "98336";
+ "prefix" "AfterNET"; // If you use style 2 then this is the name that is prefixed to hosts.
"numeric" "51"; // hint: If you get collisions on link, CHANGE THIS.
+ /* Type handles some changes in nefarious 1.0 (was 0.5.0)
+ * 4 - nefarious 0.4.x and other ircds
+ * 5 - nefarious 1.0.x and higher (Obselete)
+ * 6 - nefarious 1.1.0 and higher (Branch Revision)
+ * 7 - nefarious 1.2.0 and higher (Trunk Revsions)
+ */
+ "type" "6";
+ "host_in_topic" "1"; //Set to 1 if your Nefarious server have the HOST_IN_TOPIC F:line set to TRUE.
"max_users" "256"; // You can save a little memory by setting this to a lower value.
"force_n2k" "1"; // Use extended (5-digit) numnick for self, even if 3 are possible.
"ping_freq" "60";
"www.afternet.org",
"Support Staff <support@afternet.org>"
);
+ /* extended_accounts -
+ * enable this for nefarious 0.4.x and higher and in ircd.conf add F:EXTENDED_ACCOUNTS:TRUE.
+ * Sends 'AC R nick account' instead of 'AC nick account' and allows
+ * for renames, login-on-connect, etc. If you use stock ircu set to 0. */
+ "extended_accounts" "1";
+
/* the following two settings are for ircu's HEAD_IN_SAND features, and are equivelent to
* the F: lines in ircu's ircd.conf. both can be disabled by commenting them out. */
//"his_servername" "*.AfterNET.org"; // hidden server name, shown in remote /whois requests
"valid_account_regex" "^[-_a-z0-9A-Z]{2,15}$";
"valid_nick_regex" "^[-_a-z][-_a-z0-9]*$";
+ // Whats a valid hostname look like for fakehosts?
+ "valid_fakehost_regex" "^[-_a-zA-Z0-9.]+$";
+
+ // Force account names to lowercase? 1=yes 0=no
+ // WARNING: this will convert when reading them from the db, too.
+ "force_handles_lowercase" "0";
+
// "Nickserv" networks, set this to 0. "Authserv" networks,
// set it to 1.
"disable_nicks" "1";
// What to do when someone uses the NickServ "reclaim" command?
// This can be one of "none", "warn", "svsnick", or "kill", but
- // stock ircu does not support svsnick -- you need Bahamut or
- // nefarious.
+ // stock ircu does not support svsnick -- you need nefarious.
"reclaim_action" "none";
// What (else) to do when someone uses a registered nick?
"lc_h" "800"; // support helper (lower case h)
"uc_H" "800"; // net helper (upper case H)
"S" "999"; // O3 access suspended
- "b" "1"; // Bot (not sure what it does tho)
+ "b" "1"; // Bot (Hidden from !staff etc)
};
// and for who can change epithets for staff
"drain-rate" "0.05";
};
-
// How to integrate with email cookies?
// In order to use mail, mail must be enabled and configured
// down below in the mail section of this config file.
"set_title_level" "900"; // Access to use 'uset title'.
"set_fakehost_level" "1000"; //Access to set a freeform fakehost. (uset fakehost)
+ // A list of denied words in the fakehosts
+ "denied_fakehost_words" ("sex",
+ "fuck",
+ "asshole");
+
// This is a hacked in feature which exports every account change to a file sync.log. Afternet uses this and
// a bunch of custom PHP scripts to make our websites SQL user db the same as authserv, every 5 minutes.
// You have to be a pretty handy person with the shell commands and programming to make use of this..
"sync_log" "0"; // Log account changes to a file for syncing w/ a website?
+
+ // Nickserv 'style' setting affects .userlist and other outputs.
+ "default_style" "n"; // can be: n = normal, c = clean, or a = advanced.
+
+
+ // LDAP configuration(s)
+ // THIS IS EXPERIMENTAL! DO NOT USE IT IF YOU ARNT'T A DEVELOPER!!
+ // 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.
+ // If you have an ldap server, you can configure X3 to use it instead of saving passwords locally.
+
+ //"ldap_enable" "0";
+ //"ldap_uri" "ldaps://ldap.yournetwork.server:636";
+ //"ldap_base" "ou=Users,dc=afternet,dc=org";
+ //"ldap_dn_fmt" "uid=%s,ou=Users,dc=afternet,dc=org";
+ //"ldap_autocreate" "1"; // automatically create accounts if they exist in ldap but not x3
+ //// If you will be allowing users to register on IRC you need these:
+ //"ldap_admin_dn" "cn=Admin,dc=afternet,dc=org";
+ //"ldap_admin_pass" "xxxxxxxxxxx";
+ //"ldap_object_classes" ( "top", "inetOrgAnonAccount" );
+ //// NOTE: inetOrgAnon is something I made up. its schema
+ //// can be found in the tools/ directory. ldap servers wont
+ //// know what that is by default.
+ //// These configure what I store, and where.
+ //"ldap_field_account" "uid";
+ //"ldap_field_password" "userPassword";
+ //"ldap_field_email" "mail";
+ //// This bit is needed if you want to put ircops into a group:
+ //"ldap_oper_group_dn" "cn=Opers,ou=Groups,dc=afternet,dc=org";
+ //"ldap_oper_group_level" "99"; // must be above this level to be added to oper ldap group
+ //"ldap_field_group_member" "memberUid"; // what field group members are in
+ //"ldap_timeout" "10"; // seconds
+
};
/*
"staff_auth_channel" "#OperServ"; // Bot will join this channel, also.
"staff_auth_channel_modes" "+tnOs"; // modes get set every time X3 starts up
+ // which channels should all services autojoin?
+ "autojoin_channels" ("#TheOps", "#OperServ");
+
// how many clones to allow from an untrusted host?
// Use this carefully, users with half the # of clones will trigger this
// when a server pings out and they reconnect before the old connection is noticed
// how long to g-line for ?block (or, by default, for trace gline)?
"block_gline_duration" "12h";
+ // how long to shun for ?sblock (or, by default, for trace shun)?
+ "block_shun_duration" "12h";
+
// When a user joins an illegal channel, O3 joins it and locks it down.
// how long to keep an illegal channel locked down (seconds)?
"purge_lock_delay" "60";
+ // ------------------------------------------------------------------
+ // Defcon Settings
+ //
+ // No new channel registrations 1
+ // No New Nick Registrations 2
+ // No Channel Mode changes 4
+ // Force Chan Mode 8
+ // Use Reduced Session Limit 16
+ // KILL any new clients trying to connect 32
+ // Services will ignore everyone but opers 64
+ // Services will silently ignore everyone but opers 128
+ // GLINE all new clients trying to connect 256
+ // No new memos sent to block MemoServ attacks 512
+ // SHUN all new clients trying to connect 1024
+ //
+ // These are the values are added together to determine each defcon setting:
+ "DefCon1" "415";
+ "DefCon2" "159";
+ "DefCon3" "31";
+ "DefCon4" "23";
+
+ // Default defcon level, 5 is running all normally
+ "DefConLevel" "5";
+
+ // If defcon is limiting sessions then how many sessions should O3 allow?
+ "DefConSessionLimit" "2";
+
+ // Length of glines and shuns set on newly connecting clients, if defcon is glining
+ // or shunning newly connecting clients
+ "DefConGlineExpire" "5m";
+
+ // Mode to set on all channels if defcon is forcing channel modes on all channels
+ "DefConChanModes" "+r";
+
+ // If not set to 0, defcon will set back to level 5 after this time
+ "DefConTimeOut" "15m";
+
+ // Set to 1 to send a notice to all users when defcon levels are changed
+ "GlobalOnDefcon" "0";
+
+ // If set to 1 along with the notice that the levels are changing an extra
+ // notice will be sent
+ "GlobalOnDefconMore" "0";
+
+ // GlobalOnDefconMore notice.
+ "DefconMessage" "Put your message to send your users here. Dont forget to uncomment GlobalOnDefconMore";
+
+ // This notice will be used if GlobalOnDefcon and GlobalOnDefconMore are off
+ "DefConOffMessage" "Services are now back to normal, sorry for any inconvenience";
+
+ // Reason placed in defcon Glines and Shuns.
+ "DefConGlineReason" "This network is currently not accepting connections, please try again later";
+
+ // ------------------------------------------------------------------
+
+ // To use geoip support in Opserv WHOIS then you will need to install
+ // the c GeoIP api. Its available on http://www.maxmind.com, also on
+ // apt on debian and ubuntu. The dat files can also be obtained
+ // from the earlier URL. Place them in your X3 dir and away you go.
+ // X3 will need a recompile once you install the c api. If there is a
+ // GeoIP City Data file then the GeoIP data file will be ignored. However
+ // bear in mind that the city data file is a lot larger than the plain
+ // country data file so does take a bit longer to query. If you are
+ // expieriencing ping timeouts you may need to tweak X3's I:line.
+ "geoip_data_file" "./GeoIP.dat";
+ "geoip_city_data_file" "";
+
// The join-flood policer code goes off all the time when a server
// goes down (and everyone reconnects) so i don't reccomend using it.
// Automatically moderate join flooded channels?
"size" "200";
"drain-rate" "3";
};
+ // Min opserv level needed to set 'silent' glines in trace/addalert
+ // (nefarious only)
+ "silent_level" "700";
};
"chanserv" {
"nick" "X3";
- // Does your ircd have off-channel services support?
- // Bahamut has it, Nefarious has it, but its inharently flawed and will cause desynch, so don't use it.
+
+ // The umodes - add +d if you use nefarious 1.0 and you added 'b:lines'
+ // to pass cmdchar through to chanserv anyway.
+ "modes" "+iok";
+
+ // The off_channel setting takes one of three numerical values:
+ // 0 = off
+ // 1 = use a registered channel mode, have services op themselves
+ // 2 = all of the above, and a channel setting to have ChanServ not
+ // idle in the channel
+ // NOTE: +z mode, needed for this to work. X3 contains modifications to
+ // try and prevent desynchs. If you use this mode do not use any other service
+ // that uses this mode.
"off_channel" "no";
// Infolines are sent when channel users join the channel. Users set them with USET INFO in X3.
// maximum bans on a channel banlist
"max_chan_bans" "512";
// maximum length of a user's infoline
- "max_userinfo_length" "400"; // for god sake lower this. 80 seems good.
+ "max_userinfo_length" "400"; // hard limit for infolines. This is also the default value.
// If SET DynLimit is on and there are N users in the channel, ChanServ will
// try to keep the limit at N+<adjust_threshold>. This makes the channel
"chan_expire_delay" "30d";
// what !set options should we show when user calls "!set" with no arguments?
- "set_shows" ("DefaultTopic", "TopicMask", "Greeting", "UserGreeting", "Modes", "PubCmd", "InviteMe", "UserInfo", "EnfOps", "EnfModes", "EnfTopic", "TopicSnarf", "Setters", "CtcpReaction", "Voice", "Protect", "Toys", "DynLimit", "NoDelete");
+ "set_shows" ("DefaultTopic", "TopicMask", "Greeting", "UserGreeting", "Modes", "PubCmd", "InviteMe", "UserInfo", "EnfOps", "EnfModes", "EnfTopic", "TopicSnarf", "Setters", "CtcpReaction", "BanTimeout", "Protect", "Toys", "DynLimit", "NoDelete");
// A list of !8ball responses
"8ball" (
"No.",
"Maybe.");
+ // This is a list of wheel-of-misfortune results. Remove them to disable.
+ // You must make sure your ircd supports, and has enabled, the features needed
+ // for these.
+ "wheel" (
+ "peer",
+ // "partall", // needs svspart
+ "gline",
+ // "shun", // needs shun
+ "nothing",
+ // "randjoin", // needs svsjoin and svspart
+ // "abusewhois", // needs epitaph in /whois support
+ "kickall",
+ // "nickchange", // needs svsnick
+ "kill",
+ "svsignore",
+ "kickbanall" );
+
// channel(s) that support helpers must be in to be helping
// if this is a list, any one by itself will do
"support_channel" ("#Operations", "#Help");
// maximum number of channels a user may have. ( FORCE can override )
"max_owned" "2";
- // how long between automatic topic refreshes with TopicRefresh 0
- "refresh_period" "99d"; // Nefarious sync's topics so we'll practically disable this..
+ // how long between automatic topic and userlist refreshes with TopicRefresh/Resync
+ "refresh_period" "10h";
// what should !access say for various staff?
"irc_operator_epithet" "AfterNET IRC Operator";
// minimum opserv access to set, clear or override channel nodelete setting?
"nodelete_level" "1";
+
+ // when does god mode time out?
+ "god_timeout" "30m";
+
+ // What should valid registered channels look like?
+ // Be very carefull changing these. This default is
+ // basically limited to letters, numbers, dash and underscore.
+ "valid_channel_regex" "#^[-_a-z][-_a-z0-9]*$";
};
/* Global is a service bot that can send out network-wide messages for you. I
// opt into (or out of, depending on this setting)
"announcements_default" "on";
};
+
+
+ "spamserv" {
+ // You may enable this service by removing the double slashes from the config
+ // item. To disable it again add the double slashes back.
+ // "nick" "SpamServ";
+
+ // debug channel
+ "debug_channel" "#operserv";
+
+ // url of the network rules. if you don't have network rules, remove this key.
+ "network_rules" "http://www.afternet.org/aup";
+
+ // trigger for spamserv; remove this key to disable the trigger
+ "trigger" "%";
+
+ // ban duration of a short timedban.
+ "short_ban_duration" "15m";
+
+ // ban duration of a long timedban.
+ "long_ban_duration" "1h";
+
+ // duration of a gline. SpamServ will issue it after several violations and a kill.
+ "gline_duration" "1h";
+
+ // users may add "exception_max" exceptions to the list. IRCOps can override "exception_max".
+ "exception_max" "10";
+
+ // minimum & maximum length of an exception.
+ "exception_min_len" "4";
+ "exception_max_len" "12";
+
+ // users may add "badword_max" badwords to the list. IRCOps can override badword_max".
+ "badword_max" "10";
+
+ // minimum & maximum length of an badword.
+ "badword_min_len" "4";
+ "badword_max_len" "12";
+
+ // if someone advertises a channel, which doesn't exist (channel is empty, no users),
+ // SpamServ doesn't punish the user.
+ // enable this setting, if SpamServ has to ignore advertisements of channels, which do not exist.
+ // disable this setting, if SpamServ has to punish the users whenever they advertise.
+ "adv_chan_must_exist" "1";
+
+ // remove all mirc codes from messages before checking for advertisements.
+ // if this setting is disabled and someone spams a url which
+ // contains a bold char, SpamServ doesn't punish him.
+ "strip_mirc_codes" "1";
+
+ // enable this, if SpamServ has to "follow" ChanServ, when a channel moves or merges.
+ // disable it, if it shouldn't be possible to move or merge SpamServ with /msg chanserv move|merge.
+ "allow_move_merge" "1";
+ };
};
/* MODULES (optional components) *************************************************
// How long should a helpserv be inactive (no requests assigned)
// before it can be unregistered by the expire command?
"expiration" "60d";
+
+ // If a user prefix's this before their helpserv commands then instead
+ // of a request being opened, they will be able to use helpserv commands.
+ "user_escape" "@";
};
/* SockCheck reads sockcheck.conf and can do configurable scans
* to probe for open relays in an attempt to stop drones from using
// Show new users and joins from net joins? (off by default)
"show_bursts" "0";
};
+ /* Track works just like Snoop except it only sends events for users
+ * who have been specified
+ * DANGER: track is currently very broken, and will crash x3 and possibly corrupt your db file.
+ * Unless your a developer, dont even compile it in!
+ */
+ "track" {
+ // What to track by default?
+ "snomask" "nick,join,part,kick,new,del,auth,chanmode,umode";
+ // Where to send snoop messages?
+ "channel" "#MrPeanuts";
+ // Which bot?
+ "bot" "O3";
+ // Show new users and joins from net joins? (off by default)
+ "show_bursts" "0";
+ };
/* Memoserv lets users send messages to other users accounts.
*/
"memoserv" {
"bot" "MemoServ";
+ "modes" "+k";
"message_expiry" "30d"; // age when messages are deleted; set
// to 0 to disable message expiration
+ "limit" "30"; // Max amount of messages a person can get.
+ };
+ /* WebTV allows webtv clients to use common IRC commands.
+ */
+ "webtv" {
+ "bot" "IRC";
+ "modes" "+k";
+
+ // Should clients need to be marked to use this service?
+ "required_mark" "1";
+ // which marks are valid webtv marks?
+ "valid_marks" ("webtv", "msntv", "msntv2");
};
};
// This just illustrates how you can jam every database into one huge ("mondo") file.
"ChanServ" { "mondo_section" "ChanServ"; };
"gline" { "mondo_section" "gline"; };
+ "shun" { "mondo_section" "shun"; };
"Global" { "mondo_section" "Global"; };
"HelpServ" { "mondo_section" "HelpServ"; };
"modcmd" { "mondo_section" "modcmd"; };
"NickServ" { "mondo_section" "NickServ"; };
"OpServ" { "mondo_section" "OpServ"; };
"sendmail" { "mondo_section" "sendmail"; };
+ "SpamServ" { "mondo_section" "SpamServ"; };
// These are the options if you want a database to be in its own file.
"mondo" {