/* * example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org). * $Id: example.conf,v 1.1.1.1.6.17 2003/11/24 19:42:12 syzop Exp $ * * Hallo geschaetzer FreiesMagazin.de Leser, * * Wenn Sie diesen Text lesen koennen versuchen Sie das Wagnis einzugehen * einen eigenen unrealIRCd aufzusetzen. Beachten Sie bitte, dass diese .conf * Datei urspruenglich von http://rc.vc/files/unrealircd/unrealircd.conf * stammt und lediglich auf die eigenen Beduerfnisse angepasst wurde. * Vielen Dank fuer Ihre Aufmerksamkeit. * * Works for Unreal3.2 and up * * 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. * * Just copy this file to your main unrealircd dir and call it 'unrealircd.conf'. * * NOTE: All lines, except the opening { line, end in an ;, including the * closing } line. The IRCd will ignore commented lines. * * PLEASE READ doc/unreal32docs.html! The online version is also available at: * www.vulnscan.org/UnrealIrcd/unreal32docs.html * It contains a lot information about the configfile: gives information about * every block, variable, etc.. */ /* Type of comments */ #Comment type 1 (Shell type) // Comment type 2(C++ style) /* Comment type 3 (C Style) */ #those lines are ignored by the ircd. /* * At *NIX UnrealIrcd supports modules. * Loading the commands module is required: */ loadmodule "src/modules/commands.so"; loadmodule "src/modules/cloak.so"; # loadmodule "src/modules/m_ircops.so"; # loadmodule "src/modules/m_getinfo.so"; # loadmodule "src/modules/m_uptime.so"; /* * You can also include other configuration files. help.conf contains all the * /helpop text so you probably want this include: */ include "help.conf"; /* * 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 "unrealirc.schmidtsbuero"; info "IRC-Server fuer das Buero Schmidt"; 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 { "Michael"; "Schwarz"; "Schmidt"; }; /* * NEW: class {} * OLD: Y:line (old was confusing) * These define settings for classes. A class is a group setting for * connections. Example, 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); * recvq (maximum receive queue from a connection [flood control]); * }; */ class clients { pingfreq 90; maxclients 500; sendq 100000; recvq 8000; }; class servers { pingfreq 90; maxclients 10; /* Max servers we can have linked at a time */ sendq 1000000; connfreq 100; /* How many seconds between each connection attempt */ }; /* * 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 mask to allow); * hostname (host mask); * class (class to send them to [see class {}]); * password "(password)"; (optional) * maxperip (how many connections per ip); (optional) * }; */ allow { ip *@*; hostname *@*; class clients; maxperip 10; }; /* Passworded allow line */ allow { ip *@255.255.255.255; hostname *@*.passworded.ugly.people; class clients; password "XXXXXX"; maxperip 1; }; /* * NEW: allow channel {} * OLD: chrestrict * Allows a user to join a channel... * like an except from deny channel. * Syntax: * allow channel { * channel "channel name"; * }; */ allow channel { channel "#buero1stock"; channel "#buero2stock"; channel "#buero3stock"; channel "#buerogesamt"; }; /* * NEW: oper {} * OLD: O:Line * Defines an IRC Operator * 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*); * }; * OR * flags "old type flags, like OAaRD"; * }; */ /* OLD OPER FLAG | NEW FLAG NAME O global o local a services-admin A admin r can_rehash 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 Z can_gzline t can_gkline B can_unkline n can_localnotice G can_globalnotice N netadmin C coadmin z can_zline W get_umodew H get_host v can_override */ /* Note: netadmin gives you OaAN admin and services-admin give you o as well */ oper Michael { class clients; from { userhost fujisu@192.168.178.*; userhost fujitsu@10.0.2.*; userhost fujitsu@localhost; }; password "XXXXXX"; flags { global; admin; netadmin; can_override; get_host; can_gkline; can_gzline; can_zline; can_restart; can_die; can_setq; can_addline; global; }; snomask feqFvGns; }; /* * 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); * * NOTICE: for ipv6 ips (3ffe:b80:2:51d::2 etc), use listen [ip]:port; * * That works also. */ /* Options for listen: OLD | NEW S serversonly C clientsonly J java s ssl * standard */ listen *:6667 { options { #ssl; clientsonly; }; }; /* *listen *:7999 *{ * options * { * #ssl; * serversonly; * }; *}; */ /* * 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 receive)"; * class (class to direct servers into); * options { * (options here*); * }; * /* If we use SSL, we can choose what cipher to use in SSL mode * * Retrieve a list by "openssl ciphers", seperate ciphers with :'s * */ * ciphers "DES-CBC3-MD5"; * * }; */ /* options: OLD | NEW S ssl Z zip N/A autoconnect N/A quarantine N/A nodnscache */ /* * * NEW: ulines {} * OLD: U:Line * U-lines give servers more power/commands, this should ONLY be set * for services/stats servers and NEVER for normal UnrealIRCd servers! * Syntax is as follows: * ulines { * (server to uline); * (server to uline); * [etc] * }; */ # ulines { # noob.rc6.org; # waste.rc6.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 "XXXXXX"; die "XXXXXX"; }; /* * 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 "ircd.log" { /* Delete the log file and start a new one when it reaches 2MB, leave this out to always use the same log */ maxsize 2097152; flags { oper; kline; connects; server-connects; kills; errors; }; }; /* * NEW: alias {} * OLD: N/A * This allows you to set command aliases such as /nickserv, /chanserv etc * FLAGS: services, stats, normal * * Syntax: * alias "name" { * nick "points to"; * type aliastype; * }; * * [NOTE: You could also include a pre-defined alias file here, see doc/unreal32docs.html section 2.9] */ // This points the command /nickserv to the user NickServ who is connected to the set::services-server server /*alias NickServ { nick "NickServ"; type services; };*/ // If you want the command to point to the same nick as the command, you can leave the nick entry out //alias ChanServ { type services; }; // Points the /statserv command to the user StatServ on the set::stats-name server //alias StatServ { type stats; }; // Points the /superbot command to the user SuperBot //alias SuperBot { type normal; }; /* Standard aliases */ alias NickServ { type services; }; alias HAL-9000 { type services; }; alias God { type services; }; alias HelpServ { type services; }; alias StatMaker { type stats; }; /* * NEW: alias {} * OLD: N/A * This allows you to set command aliases such as /identify, /services, etc * * Syntax: * alias "name" { * format "format string" { * nick "points to"; * type aliastype; * parameters "parameters to send"; * }; * type command; * }; */ /* This is shown seperately because even though it has teh same name as the previous directive, it is very * different in syntax, although it provides a similar function and relys on the standard aliases to work. */ /* alias "identify" { format "^#" { nick "chanserv"; type services; parameters "IDENTIFY %1-"; }; format "^[^#]" { nick "nickserv"; type services; parameters "IDENTIFY %1-"; }; type command; }; */ /* The alias::format directive is a regular expression. The first format matches the /identify command when * the first character is a #. It then passes this along to the chanserv alias with the parameters IDENTIFY * %1-. The second format matches then /identify command when the first character is not a #. It then * passes the command to the nickserv alias with parameters IDENTIFY %1-. */ /* The alias::format::parameters is similar to scripting languages. %N (where N is a number) represents a * parameter sent to the command (in this case /identify). If you specify %N- it means all parameters from * N until the last parameter in the string. */ /* Standard aliases */ alias "services" { format "^#" { nick "chanserv"; type services; parameters "%1-"; }; format "^[^#]" { nick "nickserv"; type services; parameters "%1-"; }; type command; }; alias "identify" { format "^#" { nick "chanserv"; type services; parameters "IDENTIFY %1-"; }; format "^[^#]" { nick "nickserv"; type services; parameters "IDENTIFY %1-"; }; type command; }; /* * 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 *; motd "ircd.motd"; rules "ircd.rules"; }; */ /* * 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 { # }; /* * 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 { # }; /* * NEW: ban server {} * OLD: Server Q:Line * Disables a server from connecting to the network. * if the server links to a remote server, local server * will disconnect from the network. * Syntax is as follows: * ban server { * mask "(server name)"; * reason "(reason to give)"; * }; */ # ban server { # }; /* * 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 { # }; /* * NEW: ban realname {} * OLD: n:Line * This bans a certain realname from being used. * Syntax: * ban realname { * mask "(real name)"; * reason "(reason)"; * }; */ # ban realname { # }; /* * 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 except ban {} as many times * as you want for different hosts. */ # except ban { # }; /* * NEW: deny dcc {} * OLD: dccdeny.conf * Use this to block dcc send's... stops * viruses better. * Syntax: * deny dcc * { * filename "file to block (ie, *exe)"; * reason "reason"; * }; */ # deny dcc { # }; /* * NEW: deny channel {} * OLD: N/A (NEW) * This blocks channels from being joined. * Syntax: * deny channel { * channel "(channel)"; * reason "reason"; * }; */ deny channel { channel "*"; reason "Neue Channel verboten. Erlaubte Channel: #buero1stock, #buero2stock, #buero3stock, #buerogesamt"; }; /* * 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 { # }; /* You can include other configuration files */ /* include "klines.conf"; */ /* Network configuration */ set { network-name "schmidtsbuero"; default-server "unrealirc.schmidtsbuero"; services-server "127.0.0.1"; stats-server "127.0.0.1"; help-channel "#buerogesamt"; hiddenhost-prefix "nubi"; # timesynch { # enabled "yes"; # server "time.xs4all.nl"; # }; /* prefix-quit "no"; */ /* Your cloak keys should be 3 random numbers between 10000 and 2147483646 * and should be the same at all servers on the network. * They are used for generating masked hosts and should be kept secret. */ cloak-keys { 1A2b3C4d5e6F7g8hi; gfdgfREWR5FDS2dsa; gfdt6543hfdSD43d2; }; /* on-oper host */ hosts { host-on-oper-up "yes"; local "locop.rc6.org"; global "ircop.rc6.org"; coadmin "coadmin.rc6.org"; admin "admin.rc6.org"; servicesadmin "csops.rc6.org"; netadmin "netadmin.rc6.org"; }; allowed-nickchars { latin1; hebrew; }; }; /* Server specific configuration */ official-channels { "#buerogesamt" { topic "Kommkanal buerogesamt"; }; }; set { kline-address "admin@rc6.org"; options { hide-ulines; /* You can enable ident checking here if you want */ /* identd-check; */ show-connect-info; }; maxchannelsperuser 2; /* The minimum time a user must be connected before being allowed to use a QUIT message, * This will hopefully help stop spam */ anti-spam-quit-message-time 10s; /* Make the message in static-quit show in all quits - meaning no custom quits are allowed on local server */ /* static-quit "Client quit"; */ /* This allows you to make certain stats oper only, use * for all stats, * leave it out to allow users to see all stats. Type '/stats' for a full list. * Some admins might want to remove the 'kGs' to allow normal users to list * klines, glines and shuns. */ oper-only-stats "okGsMRUEelLCXzdD"; /* Throttling: this example sets a limit of 3 connections per 60s (per host). */ throttle { connections 5; period 60s; }; /* Anti flood protection */ anti-flood { nick-flood 3:60; /* 3 nickchanges per 60 seconds (the default) */ }; }; except throttle { mask 192.168.1.*; }; set { /* * Specifies the path where your network staff file is * located. This is usually a relative path starting from * your main Unreal3.2 directory, or it may also be * an absolute path. If remote includes are enabled, you can * also specify an URL here to download the file remotely * before loading. The default value is "network.staff". * Examples: * * staff-file "network.staff"; * staff-file "/home/dir/Unreal3.2/network.staff"; * staff-file "http://www.yourserver.com/network.staff"; */ # staff-file "ircd.staff"; }; /* * Problems or need more help? * 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html * 2) www.vulnscan.org/UnrealIrcd/faq/ <- contains 80% of your questions! * 3) If you still have problems you can go irc.ircsystems.net #unreal-support, * note that we require you to READ THE DOCUMENTATION and FAQ first! */