/* example.conf ----UPDATED VERSION---- For UnrealIRCd 3.2+ By: Daniel Hawton Email: osiris@unrealircd.org Nick: Osiris Date: 07/01 Based on irc.fyremoon.net's unrealircd.conf file By: Stskeeps Okay guys. This is the new example.conf. Its look is much like C++, kinda. Anyway it is time to go over this. It's hard to pick up at first, but with some pratice and reading you'll understand. -Osiris NOTE: All lines, except the opening { line, end in an ;, including the closing } line. Commented lines use #, c++ style //, or C /* *// The IRCd will ignore commented lines. */ // NEW: me {} // OLD: M:Line // me {} defines the name, description and unreal // server numeric for this server. // Syntax is as follows: // me { // name "server.name"; // info "Server Description"; // numeric (server numeric*); // }; // * If linking, this numeric may not be used by any // other server on the network. // me { name "irc.foonet.com"; info "FooNet Server"; numeric 1; }; // NEW: admin {} // OLD: A:Line // Admin gives information on the server admin. // you may put as many lines under admin { as you // wish. // Syntax is as follows: // admin { // "first line"; // "second line"; // [etc] // }; admin { "Bob Smith"; "bob"; "widely@used.name"; }; // NEW: class {} // OLD: Y:line (old was was confusing) // These define settings for classes. // A class is a group setting for connections. // Example, a server connections, instead of going // to a client's class, you direct it to the server // class. // Syntax is as follows // class (class name) // { // pingfreq (how often to ping a user/server in seconds); // maxclients (how many connections for this class); // sendq (maximum send queue from a connection); // }; class clients { pingfreq 90; maxclients 500; sendq 100000; }; class servers { pingfreq 90; maxclients 1; sendq 1000000; }; // NEW: allow {} // OLD: I:Line // This defines allowing of connections... // Basically for clients, it allows them to connect // so you can have some control and/or set a password. // Syntax is as follows: // allow { // ip (ip to allow); // hostname (hostname); // class (class to send them to [see class {}]; // password "(password)"; <- OPTIONAL // maxperip (how many connections per ip); // }; allow { ip *; hostname *; class clients; password "f00Ness"; maxperip 3; }; // NEW: allow channel {} // OLD: N/A (NEW) // Allows a user to join a channel... like an except from // deny channel. // Syntax: // allow channel { // channel "channel name"; // }; allow channel { channel "#WarezSucks"; }; // NEW: oper {} // OLD: O:Line // Defines an IRC Operator (or also cops, basically) // IRC operators are there to keep sanity to the server // and usually keep it maintained and connected to the network. // The Syntax is as follows: // oper (login) { // class (class to put them in, if different from I, moves them to new class); // from { // userhost (ident@host); // userhost (ident@host); // }; // flags // { // (flags here*); // }; // }; /* OLD OPER FLAG | NEW FLAG NAME O global o local a services-admin A admin r can_rehash E eyes D can_die R can_restart h helpop w can_wallops g can_globops c can_localroute L can_globalroute k can_localkill K can_globalkill b can_kline B can_unkline n can_localnotice G can_globalnotice N netadmin T techadmin C coadmin u get_umodec f get_umodef z can_zline W get_umodew ^ can_stealth H get_host */ oper bobsmith { class clients; from { userhost bob@smithco.com; }; password "f00"; flags { netadmin; global; }; }; // NEW: listen {} // OLD: P:Line // This defines a port for the ircd // to bind to, to allow users/servers // to connect to the server. // Syntax is as follows: // listen (ip number):(port number) // { // options // { // (options here); // }; // }; // or for a plain listen: // listen (ip):(port); // That works also. /* Options for listen: OLD | NEW S serversonly C clientsonly J java s ssl * standard */ listen *:6601 { options { ssl; serversonly; }; }; listen *:8067; listen *:6600; // NEW: link {} // OLD: C/N:Lines // This defines an okay for a server connection. // NOTE: BOTH SERVERS NEED A LINK {} SETTING TO CONNECT PROPERLY! // Syntax is as follows: // link (server name) // { // username (username, * works too); // hostname (ip number/hostmask); // bind-ip (What IP to bind to when connecting, or *); // port (port to connect to, if any); // hub (If this is a hub, * works, or servermasks it may bring in); // [or leaf *;] // password-connect "(pass to send)"; // password-receive "(pass we should recieve)"; // class (class to direct servers into); // options { // (options here*); // }; // }; /* options: OLD | NEW S ssl Z zip N/A autoconnect N/A quarantine */ link hub.mynet.com { username *; hostname 1.2.3.4; bind-ip *; port 7029; hub *; password-connect "LiNk"; password-receive "LiNk"; class servers; options { autoconnect; ssl; zip; }; }; // NEW: ulines {} // OLD: U:Line // Lets these server's clients do pretty much anything. // Syntax is as follows: // ulines { // (server to uline); // (server to uline); // }; // You may put as many servers in there as you like. ulines { services.roxnet.org; stats.roxnet.org; }; // NEW: drpass {} // OLD: X:Line // This defines the passwords for /die and /restart. // Syntax is as follows: // drpass { // restart "(password for restarting)"; // die "(password for die)"; // }; drpass { restart "I-love-to-restart"; die "die-you-stupid"; }; // NEW: log {} // OLD: N/A // Tells the ircd where and what to log(s). // You can have as many as you wish. // // FLAGS: // errors kills tkl // connects server-connects kline // oper // // NOTICE: Right now, SEGV messages are *always* // sent to ircd.log. codemastr is working on a way // to redirect the messages to this log file. // Syntax: // log "log file" { // flags { // flag; // flag; // etc.. // }; // }; log "myircd.log" { flags { oper; kline; connects; server-connects; kills; errors; }; }; // NEW: tld {} // OLD: T:Line // This sets a different motd and rules files // depending on the clients hostmask. // Syntax is as follows: // tld { // mask (ident@host); // motd "(motd file)"; // rules "(rules file)"; // }; tld { mask *@*.fr; motd "ircd.motd.fr"; rules "ircd.rules.fr"; }; // NEW: ban nick {} // OLD: Q:Line // Bans a nickname, so it can't be used. // Syntax is as follows: // ban nick { // mask "(nick to ban)"; // reason "(reason)"; // }; ban nick { mask "*C*h*a*n*S*e*r*v*"; reason "Reserved for Services"; }; // NEW: ban ip {} // OLD: Z:Line // Bans an ip from connecting to the network. // Syntax: // ban ip { mask (ip number/hostmask); reason "(reason)"; }; ban ip { mask 195.86.232.81; reason "Delinked server"; }; // NEW: ban server {} // OLD: Server Q:Line // Disables a server from connecting to you. // Syntax is as follows: // ban server { // mask "(server name)"; // reason "(reason to give)"; // }; ban server { mask eris.berkeley.edu; reason "Get out of here."; }; // NEW: ban user {} // OLD: K:Line // This makes it so a user from a certain mask can't connect // to your server. // Syntax: // ban user { mask (hostmask/ip number); reason "(reason)"; }; ban user { mask *tirc@*.saturn.bbn.com; reason "Idiot"; }; // NEW: ban realname {} // OLD: n:Line // This bans a certain realname from being used. // Syntax: // ban realname { // mask "(real name)"; // reason "(reason)"; // }; ban realname { mask "Swat Team"; reason "mIRKFORCE"; }; ban realname { mask "sub7server"; reason "sub7"; }; // NOTE FOR ALL BANS, they may be repeated for addition entries! // NEW: except ban {} // OLD: E:Line // This makes it so you can't get banned. // Syntax: // except ban { // mask (ident@host); // }; // Repeat the mask line as many times as you want for different hosts. except ban { // don't ban stskeeps mask *stskeeps@212.*; }; // NEW: except socks {} // OLD: e:Line // Makes it so ircd doesn't check you for socks // syntax: // except socks { // mask (ip number/hostmask); // }; // repeat mask for each ip to except. except socks { mask 216.73.27.177; }; // NEW: deny dcc {} // OLD: N/A (NEW) // Use this to block dcc send's... stops viruses // better. // Syntax: // deny dcc { // filename "file to block (ie, *exe)"; // reason "reason"; // }; deny dcc { filename "*sub7*"; reason "Possible Sub7 Virus"; }; // NEW: deny channel {} // OLD: N/A (NEW) // This blocks channels from being joined. // Syntax: // deny channel { // channel "(channel)"; // reason "reason"; // }; deny channel { channel "*warez*"; reason "Warez is illegal"; }; // NEW: vhost {} // OLD: Vhost.conf file // This sets a fake ip for non-opers, or opers too lazy to // /sethost :P // Syntax: // vhost { // vhost (vhost.com); // from { // userhost (ident@host to allow to use it); // }; // login (login name); // password (password); // }; // then to use this vhost, do /vhost (login) (password) in IRC vhost { vhost i.hate.microsefrs.com; from { userhost *@*.image.dk; }; login stskeeps; password techie; }; /* You can include other configuration files */ // include "klines.conf"; // Cloak-keys must be > 10000, and the field must be bigger // then the field before it. // cloak-keys { // 10000; // 20000; // 30000; // }; for example // Network configuration set { network-name "ROXnet"; default-server "irc.roxnet.org"; services-server "services.roxnet.org"; stats-server "stats.roxnet.org"; help-channel "#ROXnet"; hiddenhost-prefix "rox"; prefix-quit "no"; cloak-keys { 10000; 20000; 30000; }; /* on-oper host */ hosts { local "locop.roxnet.org"; global "ircop.roxnet.org"; coadmin "coadmin.roxnet.org"; admin "admin.roxnet.org"; servicesadmin "csops.roxnet.org"; techadmin "techadmin.roxnet.org"; netadmin "netadmin.roxnet.org"; host-on-oper-up "no"; }; }; /* Server specific configuration */ set { kline-address "stskeeps@roxnet.org"; modes-on-connect "+xwG"; oper-auto-join "#opers"; dns { nameserver 127.0.0.1; timeout 2s; retries 2s; }; options { enable-opermotd; enable-chatops; hide-ulines; webtv-support; identd-check; }; socks { ban-message "Insecure SOCKS server"; quit-message "Insecure SOCKS server"; ban-time "4d"; }; maxchannelsperuser 10; }; // Need more help? 1) Read the documentation like this file // 2) Come to irc.fyremoon.net #UnrealIRCd // To contact me, do #2 and/or email me: osiris@unrealircd.com // // Hope this helps you, // -Osiris