Don't like ads? PRO users don't see any ads ;-)
Guest

unrealiirc config

By: a guest on Jun 30th, 2012  |  syntax: None  |  size: 20.59 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /*
  2.  * example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
  3.  * $Id$
  4.  *
  5.  * Works for Unreal3.2 and up
  6.  *
  7.  * Okay guys.  This is the new example.conf. Its look is much like C++, kinda.
  8.  * Anyway it is time to go over this.  It's hard to pick up at first, but
  9.  * with some pratice and reading you'll understand.
  10.  *
  11.  * Just copy this file to your main unrealircd dir and call it 'unrealircd.conf'.
  12.  *
  13.  * NOTE:  All lines, except the opening { line, end in an ;, including the
  14.  * closing } line. The IRCd will ignore commented lines.
  15.  *
  16.  * PLEASE READ doc/unreal32docs.html! The online version is also available at:
  17.  * www.vulnscan.org/UnrealIRCd/unreal32docs.html
  18.  * It contains a lot information about the configfile: gives information about
  19.  * every block, variable, etc..
  20.  * If you try to edit this file without reading the documentation properly
  21.  * then you are pretty much guaranteed to fail!
  22.  */
  23.  
  24. /* Type of comments */
  25. #Comment type 1 (Shell type)
  26. // Comment type 2(C++ style)
  27. /* Comment type 3 (C Style) */
  28. #those lines are ignored by the ircd.
  29.  
  30. /*
  31.  * UnrealIRCd supports modules, loading some of them is required.
  32.  * You need at least the commands module and a cloaking module.
  33.  */
  34.  
  35. /* FOR *NIX, uncomment the following 2lines: */
  36. //loadmodule "src/modules/commands.so";
  37. //loadmodule "src/modules/cloak.so";
  38.  
  39. /* FOR Windows, uncomment the following 2 lines: */
  40. //loadmodule "modules/commands.dll";
  41. //loadmodule "modules/cloak.dll";
  42.  
  43. /*
  44.  * You can also include other configuration files.
  45.  * help.conf contains all the /helpop text. The badwords.*.conf
  46.  * files contain all the badword entries for mode +G...
  47.  * spamfilter.conf contains some good rules for current trojans.
  48.  * You probably want to include them:
  49.  */
  50. include "help.conf";
  51. include "badwords.channel.conf";
  52. include "badwords.message.conf";
  53. include "badwords.quit.conf";
  54. include "spamfilter.conf";
  55.  
  56. /*
  57.  * NEW: me {}
  58.  * OLD: M:Line
  59.  * me {} defines the name, description and unreal server numeric for
  60.  * this server. Syntax is as follows:
  61.  * me {
  62.  *  name "server.name";
  63.  *  info "Server Description";
  64.  *  numeric (server numeric*);
  65.  * };
  66.  * If linking, this numeric may not be used by any other server on the network.
  67.  */
  68. me
  69. {
  70.         name "irc.foonet.com";
  71.         info "FooNet Server";
  72.         numeric 1;
  73. };
  74.  
  75. /*
  76.  * NEW: admin {}
  77.  * OLD: A:Line
  78.  * Admin gives information on the server admin. you
  79.  * may put as many lines under admin { as you wish.
  80.  * Syntax is as follows:
  81.  * admin {
  82.  *   "first line";
  83.  *   "second line";
  84.  *   [etc]
  85.  * };
  86.  */
  87. admin {
  88.         "Bob Smith";
  89.         "bob";
  90.         "widely@used.name";
  91. };
  92.  
  93. /*
  94.  * NEW: class {}
  95.  * OLD: Y:line (old was confusing)
  96.  * These define settings for classes. A class is a group setting for
  97.  * connections. Example, server connections, instead of going to a client's
  98.  * class, you direct it to the server class. Syntax is as follows
  99.  * class (class name)
  100.  * {
  101.  *     pingfreq (how often to ping a user/server in seconds);
  102.  *     maxclients (how many connections for this class);
  103.  *     sendq (maximum send queue from a connection);
  104.  *     recvq (maximum receive queue from a connection [flood control]);
  105.  *  };
  106.  */
  107.  
  108. class           clients
  109. {
  110.         pingfreq 90;
  111.         maxclients 500;
  112.         sendq 100000;
  113.         recvq 8000;
  114. };
  115.  
  116. class           servers
  117. {
  118.         pingfreq 90;
  119.         maxclients 10;          /* Max servers we can have linked at a time */
  120.         sendq 1000000;
  121.         connfreq 100; /* How many seconds between each connection attempt */
  122. };
  123.  
  124. /*
  125.  * NEW: allow {}
  126.  * OLD: I:Line
  127.  * This defines allowing of connections...
  128.  * Basically for clients, it allows them to connect so you can have some
  129.  * control and/or set a password.
  130.  * Syntax is as follows:
  131.  * allow {
  132.  *    ip (ip mask to allow);
  133.  *    hostname (host mask);
  134.  *    class (class to send them to [see class {}]);
  135.  *    password "(password)"; (optional)
  136.  *    maxperip (how many connections per ip); (optional)
  137.  * };
  138.  */
  139.  
  140. allow {
  141.         ip             *@*;
  142.         hostname       *@*;
  143.         class           clients;
  144.         maxperip 5;
  145. };
  146.  
  147. /* Passworded allow line */
  148. allow {
  149.         ip             *@255.255.255.255;
  150.         hostname       *@*.passworded.ugly.people;
  151.         class           clients;
  152.         password "f00Ness";
  153.         maxperip 1;
  154. };
  155.  
  156. /*
  157.  * NEW: allow channel {}
  158.  * OLD: chrestrict
  159.  * Allows a user to join a channel...
  160.  * like an except from deny channel.
  161.  * Syntax:
  162.  * allow channel {
  163.  *   channel "channel name";
  164.  * };
  165.  */
  166. allow           channel {
  167.         channel "#WarezSucks";
  168. };
  169.  
  170. /*
  171.  * NEW: oper {}
  172.  * OLD: O:Line
  173.  * Defines an IRC Operator
  174.  * IRC operators are there to keep sanity to the server and usually keep it
  175.  * maintained and connected to the network.
  176.  * The syntax is as follows:
  177.  * oper (login) {
  178.  *     class (class to put them in, if different from I, moves them to new
  179.  *                class);
  180.  *     from {
  181.  *        userhost (ident@host);
  182.  *        userhost (ident@host);
  183.  *     };
  184.  *     flags
  185.  *     {
  186.  *       (flags here*);
  187.  *     };
  188.  *     OR
  189.  *     flags "old type flags, like OAaRD";
  190.  * };
  191.  */
  192.  
  193.  
  194. /* For a list of oper flags, see doc/unreal32docs.html#operblock
  195.  * [HIGHLY recommended to read]
  196.  */
  197.  
  198. oper bobsmith {
  199.         class           clients;
  200.         from {
  201.                 userhost bob@smithco.com;
  202.         };
  203.         password "f00";
  204.         flags
  205.         {
  206.                 netadmin;
  207.                 can_zline;
  208.                 can_gzline;
  209.                 can_gkline;
  210.                 global;
  211.         };
  212. };
  213.  
  214. /*
  215.  * NEW: listen {}
  216.  * OLD: P:Line
  217.  * This defines a port for the ircd to bind to, to
  218.  * allow users/servers to connect to the server.
  219.  * Syntax is as follows:
  220.  * listen (ip number):(port number)
  221.  * {
  222.  *   options {
  223.  *     (options here);
  224.  *   };
  225.  * };
  226.  * or for a plain
  227.  * listen: listen (ip):(port);
  228.  *
  229.  * NOTICE: for ipv6 ips (3ffe:b80:2:51d::2 etc), use listen [ip]:port;
  230.  *
  231.  * That works also.
  232.  */
  233.  
  234. /* Options for listen:
  235.         OLD     |       NEW
  236.         S               serversonly
  237.         C               clientsonly
  238.         J               java
  239.         s               ssl
  240.         *               standard
  241. */
  242.  
  243. /* NOTE ON SSL PORTS: SSL ports are pretty non-standardized,
  244.  * besides numerous high-SSL ports, some people say you should run
  245.  * it at 994 because that's the official SSL port.. but that
  246.  * requires root! Besides, port 194 is the official irc port and
  247.  * have you ever seen an ircd running on that?
  248.  * So, our suggestion is to use port 6697 for SSL, this is used by
  249.  * quite some networks and is recognized by for example StunTour.
  250.  * You are free to open up as many SSL ports as you want, but
  251.  * by (also) using 6697 you help the world standardize a bit ;).
  252.  */
  253. listen         *:6697
  254. {
  255.         options
  256.         {
  257.                 ssl;
  258.                 clientsonly;
  259.         };
  260. };
  261.  
  262. listen         *:8067;
  263. listen         *:6667;
  264.  
  265. /* NOTE: If you are on an IRCd shell with multiple IP's you are
  266.  *       likely to get 'Address already in use' errors in your log
  267.  *       and the ircd won't start. This means you MUST bind
  268.  *       to a specific IP instead of '*', so for example:
  269.  *       listen 1.2.3.4:6667;
  270.  *       Obviously, replace the IP with the IP that was assigned to you.
  271.  */
  272.  
  273. /*
  274.  * NEW: link {}
  275.  * OLD: C/N:Lines
  276.  * This defines an okay for a server connection.
  277.  * NOTE: BOTH SERVERS NEED A LINK {} SETTING TO CONNECT PROPERLY!
  278.  * Syntax is as follows:
  279.  * link (server name)
  280.  * {
  281.  *      username        (username, * works too);
  282.  *      hostname        (ip number/hostmask);
  283.  *      bind-ip         (What IP to bind to when connecting, or *);
  284.  *      port            (port to connect to, if any);
  285.  *      hub (If this is a hub, * works, or servermasks it may bring in);
  286.  *      [or leaf *;]
  287.  *      password-connect "(pass to send)";
  288.  *      password-receive "(pass we should receive)";
  289.  *      class           (class to direct servers into);
  290.  *      options {
  291.  *              (options here*);
  292.  *      };
  293.  *      // If we use SSL, we can choose what cipher to use in SSL mode
  294.  *      // Retrieve a list by "openssl ciphers", separate ciphers with :'s
  295.  *      
  296.  *      ciphers "DES-CBC3-MD5";
  297.  *
  298.  * };
  299. */
  300.  
  301. /*
  302.         options:
  303.         OLD     |       NEW
  304.         S               ssl
  305.         Z               zip
  306.         N/A             autoconnect
  307.         N/A             quarantine
  308.         N/A             nodnscache
  309. */
  310.  
  311.  
  312. link            hub.mynet.com
  313. {
  314.         username        *;
  315.         hostname        1.2.3.4;
  316.         bind-ip         *;
  317.         port            7029;
  318.         hub             *;
  319.         password-connect "LiNk";
  320.         password-receive "LiNk";
  321.         class           servers;
  322.                 options {
  323.                         /* Note: You should not use autoconnect when linking services */
  324.                         autoconnect;
  325.                         ssl;
  326.                         zip;
  327.                 };
  328. };
  329. /*
  330.  *
  331.  * NEW: ulines {}
  332.  * OLD: U:Line
  333.  * U-lines give servers more power/commands, this should ONLY be set
  334.  * for services/stats servers and NEVER for normal UnrealIRCd servers!
  335.  * Syntax is as follows:
  336.  * ulines {
  337.  *      (server to uline);
  338.  *      (server to uline);
  339.  *  [etc]
  340.  * };
  341. */
  342. ulines {
  343.         services.roxnet.org;
  344.         stats.roxnet.org;
  345. };
  346.  
  347. /*
  348.  * NEW: drpass {}
  349.  * OLD: X:Line
  350.  * This defines the passwords for /die and /restart.
  351.  * Syntax is as follows:
  352.  * drpass {
  353.  *  restart             "(password for restarting)";
  354.  *  die                 "(password for die)";
  355.  * };
  356.  */
  357. drpass {
  358.         restart "I-love-to-restart";
  359.         die "die-you-stupid";
  360. };
  361.  
  362. /*
  363.  * NEW: log {} OLD: N/A Tells the ircd where and what to log(s). You can have
  364.  * as many as you wish.
  365.  *
  366.  * FLAGS: errors, kills, tkl, connects, server-connects, oper
  367.  *
  368.  * Syntax:
  369.  * log "log file"
  370.  * {
  371.  *    flags
  372.  *    {
  373.  *        flag;
  374.  *        flag;
  375.  *        etc..
  376.  *    };
  377.  * };
  378.  */
  379.  
  380. log "ircd.log" {
  381.         /* Delete the log file and start a new one when it reaches 2MB, leave this out to always use the
  382.            same log */
  383.         maxsize 2097152;
  384.         flags {
  385.                 oper;
  386.                 connects;
  387.                 server-connects;
  388.                 kills;
  389.                 errors;
  390.                 sadmin-commands;
  391.                 chg-commands;
  392.                 oper-override;
  393.                 spamfilter;
  394.         };
  395. };
  396.  
  397. /*
  398.  * NEW: alias {}
  399.  * OLD: N/A
  400.  * This allows you to set command aliases such as /nickserv, /chanserv etc
  401.  * FLAGS: services, stats, normal
  402.  *
  403.  * Syntax:
  404.  * alias "name" {
  405.  *      target "points to";
  406.  *      type aliastype;
  407.  * };
  408.  *
  409.  * [NOTE: You could also include a pre-defined alias file here, see doc/unreal32docs.html section 2.9]
  410.  */
  411.  
  412. // This points the command /nickserv to the user NickServ who is connected to the set::services-server server
  413. /*alias NickServ {
  414.         target "NickServ";
  415.         type services;
  416. };*/
  417.  
  418. // If you want the command to point to the same nick as the command, you can leave the nick entry out
  419. //alias ChanServ { type services; };
  420.  
  421. // Points the /statserv command to the user StatServ on the set::stats-server server
  422. //alias StatServ { type stats; };
  423.  
  424. // Points the /superbot command to the user SuperBot
  425. //alias SuperBot { type normal; };
  426.  
  427.  
  428. /* Standard aliases */
  429. alias NickServ { type services; };
  430. alias ChanServ { type services; };
  431. alias OperServ { type services; };
  432. alias HelpServ { type services; };
  433. alias StatServ { type stats; };
  434.  
  435. /*
  436.  * NEW: alias {}
  437.  * OLD: N/A
  438.  * This allows you to set command aliases such as /identify, /services, etc
  439.  *
  440.  * Syntax:
  441.  * alias "name" {
  442.  *      format "format string" {
  443.  *              target "points to";
  444.  *              type aliastype;
  445.  *              parameters "parameters to send";
  446.  *      };
  447.  *      type command;
  448.  * };
  449.  */
  450. /* This is shown seperately because even though it has teh same name as the previous directive, it is very
  451.  * different in syntax, although it provides a similar function and relys on the standard aliases to work.
  452.  */
  453. /*
  454. alias "identify" {
  455.         format "^#" {
  456.                 target "chanserv";
  457.                 type services;
  458.                 parameters "IDENTIFY %1-";
  459.         };
  460.         format "^[^#]" {
  461.                 target "nickserv";
  462.                 type services;
  463.                 parameters "IDENTIFY %1-";
  464.         };
  465.         type command;
  466. };
  467. */
  468. /* The alias::format directive is a regular expression. The first format matches the /identify command when
  469.  * the first character is a #. It then passes this along to the chanserv alias with the parameters IDENTIFY
  470.  * %1-. The second format matches then /identify command when the first character is not a #. It then
  471.  * passes the command to the nickserv alias with parameters IDENTIFY %1-.
  472.  */
  473.  
  474. /* The alias::format::parameters is similar to scripting languages. %N (where N is a number) represents a
  475.  * parameter sent to the command (in this case /identify). If you specify %N- it means all parameters from
  476.  * N until the last parameter in the string. You may also specify %n which is replaced by
  477.  * the user's nickname.
  478. */
  479.  
  480. /* Standard aliases */
  481. alias "services" {
  482.         format "^#" {
  483.                 target "chanserv";
  484.                 type services;
  485.                 parameters "%1-";
  486.         };
  487.         format "^[^#]" {
  488.                 target "nickserv";
  489.                 type services;
  490.                 parameters "%1-";
  491.         };
  492.         type command;
  493. };
  494.  
  495. alias "identify" {
  496.         format "^#" {
  497.                 target "chanserv";
  498.                 type services;
  499.                 parameters "IDENTIFY %1-";
  500.         };
  501.         format "^[^#]" {
  502.                 target "nickserv";
  503.                 type services;
  504.                 parameters "IDENTIFY %1-";
  505.         };
  506.         type command;
  507. };
  508.  
  509. /* This is an example of a real command alias */
  510. /* This maps /GLINEBOT to /GLINE <parameter> 2d etc... */
  511. alias "glinebot" {
  512.         format ".+" {
  513.                 command "gline";
  514.                 type real;
  515.                 parameters "%1 2d Bots are not allowed on this server, please read the faq at http://www.example.com/faq/123";
  516.         };
  517.         type command;
  518. };
  519.  
  520. /*
  521.  * NEW: files {}
  522.  * OLD: include/config.h
  523.  *
  524.  * This block overrides the IRCd's default paths for loading things
  525.  * like the MOTD, saving its PID, or writing/loading its tunefile. The
  526.  * existence of this block allows one UnrealIRCd installation to
  527.  * support multiple running instances when combined with the -c
  528.  * commandline option.
  529.  *
  530.  * As usual, relative paths are interpreted relative to the directory
  531.  * where UnrealIRCd would find unrealircd.conf if -c is _not_
  532.  * specified on the commandline.
  533.  */
  534. files
  535. {
  536.         /* The Message Of The Day shown to users who log in: */
  537.         /* motd ircd.motd; */
  538.  
  539.         /*
  540.          * A short MOTD. If this file exists, it will be displayed to
  541.          * the user in place of the MOTD. Users can still view the
  542.          * full MOTD by using the /MOTD command.
  543.          */
  544.         /* shortmotd ircd.smotd; */
  545.  
  546.         /* Shown when an operator /OPERs up */
  547.         /* opermotd oper.motd; */
  548.  
  549.         /* Services MOTD append. */
  550.         /* svsmotd ircd.svsmotd; */
  551.  
  552.         /* Bot MOTD */
  553.         /* botmotd bot.motd; */
  554.  
  555.         /* Shown upon /RULES */
  556.         /* rules ircd.rules; */
  557.  
  558.         /*
  559.          * Where the IRCd stores and loads a few values which should
  560.          * be persistent across server restarts. Must point to an
  561.          * existing file which the IRCd has permission to alter or to
  562.          * a file in a folder within which the IRCd may create files.
  563.          */
  564.         /* tunefile ircd.tune; */
  565.  
  566.         /* Where to save the IRCd's pid. Should be writable by the IRCd. */
  567.         /* pidfile ircd.pid; */
  568. };
  569.  
  570. /*
  571.  * NEW: tld {}
  572.  * OLD: T:Line
  573.  * This sets a different motd and rules files
  574.  * depending on the clients hostmask.
  575.  * Syntax is as follows:
  576.  * tld {
  577.  *    mask (ident@host);
  578.  *    motd "(motd file)";
  579.  *    rules "(rules file)";
  580.  * };
  581.  */
  582.  
  583. tld {
  584.         mask *@*.fr;
  585.         motd "ircd.motd.fr";
  586.         rules "ircd.rules.fr";
  587. };
  588.  
  589. /* note: you can just delete the example block above,
  590.  * in which case the defaults motd/rules files (ircd.motd, ircd.rules)
  591.  * will be used for everyone.
  592.  */
  593.  
  594. /*
  595.  * NEW: ban nick {}
  596.  * OLD: Q:Line
  597.  * Bans a nickname, so it can't be used.
  598.  * Syntax is as follows:
  599.  * ban nick {
  600.  *      mask "(nick to ban)";
  601.  *      reason "(reason)";
  602.  * };
  603. */
  604. ban nick {
  605.         mask "*C*h*a*n*S*e*r*v*";
  606.         reason "Reserved for Services";
  607. };
  608. /*
  609.  * NEW: ban ip {}
  610.  * OLD: Z:Line
  611.  * Bans an ip from connecting to the network.
  612.  * Syntax:
  613.  * ban ip { mask (ip number/hostmask); reason "(reason)"; };
  614. */
  615. ban ip {
  616.         mask 195.86.232.81;
  617.         reason "Delinked server";
  618. };
  619. /*
  620.  * NEW: ban server {}
  621.  * OLD: Server Q:Line
  622.  * Disables a server from connecting to the network.
  623.  * if the server links to a remote server, local server
  624.  * will disconnect from the network.
  625.  * Syntax is as follows:
  626.  * ban server {
  627.  *      mask "(server name)";
  628.  *      reason "(reason to give)";
  629.  * };
  630. */
  631.  
  632. ban server {
  633.         mask eris.berkeley.edu;
  634.         reason "Get out of here.";
  635. };
  636. /*
  637.  * NEW: ban user {}
  638.  * OLD: K:Line
  639.  * This makes it so a user from a certain mask can't connect
  640.  * to your server.
  641.  * Syntax:
  642.  * ban user { mask (hostmask/ip number); reason "(reason)"; };
  643. */
  644.  
  645. ban user {
  646.         mask *tirc@*.saturn.bbn.com;
  647.         reason "Idiot";
  648. };
  649.  
  650. /*
  651.  * NEW: ban realname {}
  652.  * OLD: n:Line
  653.  * This bans a certain realname from being used.
  654.  * Syntax:
  655.  * ban realname {
  656.  *      mask "(real name)";
  657.  *      reason "(reason)";
  658.  * };
  659. */
  660.  
  661. ban realname {
  662.         mask "Swat Team";
  663.         reason "mIRKFORCE";
  664. };
  665.  
  666. ban realname {
  667.         mask "sub7server";
  668.         reason "sub7";
  669. };
  670.  
  671. /*
  672.  * NOTE FOR ALL BANS, they may be repeated for addition entries!
  673.  *
  674.  * NEW: except ban {}
  675.  * OLD: E:Line
  676.  * This makes it so you can't get banned.
  677.  * Syntax:
  678.  * except ban { mask (ident@host); };
  679.  * Repeat the except ban {} as many times
  680.  * as you want for different hosts.
  681.  */
  682.  
  683. except ban {
  684.         /* don't ban stskeeps */
  685.         mask           *stskeeps@212.*;
  686. };
  687.  
  688. /*
  689.  * NEW: deny dcc {}
  690.  * OLD: dccdeny.conf
  691.  * Use this to block dcc send's... stops
  692.  * viruses better.
  693.  * Syntax:
  694.  * deny dcc
  695.  * {
  696.  *   filename "file to block (ie, *exe)";
  697.  *   reason "reason";
  698.  * };
  699.  */
  700. deny dcc {
  701.         filename "*sub7*";
  702.         reason "Possible Sub7 Virus";
  703. };
  704.  
  705. /*
  706.  * NEW: deny channel {}
  707.  * OLD: N/A (NEW)
  708.  * This blocks channels from being joined.
  709.  * Syntax:
  710.  * deny channel {
  711.  *      channel "(channel)";
  712.  *      reason "reason";
  713.  * };
  714. */
  715. deny channel {
  716.         channel "*warez*";
  717.         reason "Warez is illegal";
  718. };
  719.  
  720. /*
  721.  * NEW: vhost {}
  722.  * OLD: Vhost.conf file
  723.  * This sets a fake ip for non-opers, or
  724.  * opers too lazy to /sethost :P
  725.  * Syntax:  
  726.  *   vhost {
  727.  *       vhost (vhost.com);
  728.  *       from {
  729.  *            userhost (ident@host to allow to use it);
  730.  *       };
  731.  *       login (login name);
  732.  *       password (password);
  733.  *   };
  734.  *        then to use this vhost, do /vhost (login) (password) in IRC
  735.  */
  736. vhost {
  737.         vhost           i.hate.microsefrs.com;
  738.         from {
  739.                 userhost       *@*.image.dk;
  740.         };
  741.         login           stskeeps;
  742.         password        moocowsrulemyworld;
  743. };
  744.  
  745. /* You can include other configuration files */
  746. /* include "klines.conf"; */
  747.  
  748. /* Network configuration */
  749. set {
  750.         network-name            "ROXnet";
  751.         default-server          "irc.roxnet.org";
  752.         services-server         "services.roxnet.org";
  753.         stats-server            "stats.roxnet.org";
  754.         help-channel            "#ROXnet";
  755.         hiddenhost-prefix       "rox";
  756.         /* prefix-quit          "no"; */
  757.         /* Cloak keys should be the same at all servers on the network.
  758.          * They are used for generating masked hosts and should be kept secret.
  759.          * The keys should be 3 random strings of 5-100 characters
  760.          * (10-20 chars is just fine) and must consist of lowcase (a-z),
  761.          * upcase (A-Z) and digits (0-9) [see first key example].
  762.          * HINT: On *NIX, you can run './unreal gencloak' in your shell to let
  763.          *       Unreal generate 3 random strings for you.
  764.          */
  765.         cloak-keys {
  766.                 "aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
  767.                 "and another one";
  768.                 "and another one";
  769.         };
  770.         /* on-oper host */
  771.         hosts {
  772.                 local           "locop.roxnet.org";
  773.                 global          "ircop.roxnet.org";
  774.                 coadmin         "coadmin.roxnet.org";
  775.                 admin           "admin.roxnet.org";
  776.                 servicesadmin   "csops.roxnet.org";
  777.                 netadmin        "netadmin.roxnet.org";
  778.                 host-on-oper-up "no";
  779.         };
  780. };
  781.  
  782. /* Server specific configuration */
  783.  
  784. set {
  785.         kline-address "set.this.email";
  786.         modes-on-connect "+ixw";
  787.         modes-on-oper    "+xwgs";
  788.         oper-auto-join "#opers";
  789.         options {
  790.                 hide-ulines;
  791.                 /* You can enable ident checking here if you want */
  792.                 /* identd-check; */
  793.                 show-connect-info;
  794.         };
  795.  
  796.         maxchannelsperuser 10;
  797.         /* The minimum time a user must be connected before being allowed to use a QUIT message,
  798.          * This will hopefully help stop spam */
  799.         anti-spam-quit-message-time 10s;
  800.         /* Make the message in static-quit show in all quits - meaning no
  801.            custom quits are allowed on local server */
  802.         /* static-quit "Client quit";   */
  803.  
  804.         /* You can also block all part reasons by uncommenting this and say 'yes',
  805.          * or specify some other text (eg: "Bye bye!") to always use as a comment.. */
  806.         /* static-part yes; */
  807.  
  808.         /* This allows you to make certain stats oper only, use * for all stats,
  809.          * leave it out to allow users to see all stats. Type '/stats' for a full list.
  810.          * Some admins might want to remove the 'kGs' to allow normal users to list
  811.          * klines, glines and shuns.
  812.          */
  813.         oper-only-stats "okfGsMRUEelLCXzdD";
  814.  
  815.         /* Throttling: this example sets a limit of 3 connection attempts per 60s (per host). */
  816.         throttle {
  817.                 connections 3;
  818.                 period 60s;
  819.         };
  820.  
  821.         /* Anti flood protection */
  822.         anti-flood {
  823.                 nick-flood 3:60;        /* 3 nickchanges per 60 seconds (the default) */
  824.         };
  825.  
  826.         /* Spam filter */
  827.         spamfilter {
  828.                 ban-time 1d; /* default duration of a *line ban set by spamfilter */
  829.                 ban-reason "Spam/Advertising"; /* default reason */
  830.                 virus-help-channel "#help"; /* channel to use for 'viruschan' action */
  831.                 /* except "#help"; channel to exempt from filtering */
  832.         };
  833. };
  834.  
  835. /*
  836.  * Problems or need more help?
  837.  * 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
  838.  * 2) www.vulnscan.org/UnrealIRCd/faq/ <- contains 80% of your questions!
  839.  * 3) If you still have problems you can go irc.unrealircd.org #unreal-support,
  840.  *    note that we require you to READ THE DOCUMENTATION and FAQ first!
  841.  */