Changeset 807


Ignore:
Timestamp:
06/04/07 21:17:16 (5 years ago)
Author:
wd
Message:

The config-files here got nuked somehow (??). Undo the damage, update them
a little, and also update dependencies for the 1459 protocol.

Location:
trunk/ithildin/modules/ircd
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/ithildin/modules/ircd/etc/acl.conf

    r745 r807  
     1// $Id$ 
     2 
     3/* 
     4** acl section 
     5** this section defines access control rules for the server.  access is 
     6** controlled by host masks.  Hostmasks may have several forms:  they may be 
     7** in CIDR form (ip/bits), standard pattern form, or 'host' pattern form 
     8** (see doc/hostmatch.txt).  ACLs are handled in a first matched fashion, 
     9** and should be added in the order of most specific to least specific in 
     10** the conf file.  Alternatively, you may give your ACLs rule numbers and 
     11** order them that way.  Some examples are provided below. 
     12** 
     13** ACLs come in three stages: 
     14** stage one (where former Z:lines and throttles were placed) is evaluated 
     15** as soon as a socket connection is made.  stage one checks are only valid 
     16** against IP address, and no username is available.  stage one checks occur 
     17** before any resources are really allocated to the connection. 
     18** 
     19** stage two (not available in previous daemons) is evaluated directly after 
     20** dns and ident checks have been performed on the connection, but before it 
     21** is known whether the connection wishes to register as a client or server. 
     22** these can be useful to block abusive connections from users in a variable 
     23** IP range trying to register as servers.  it can also be used as a 
     24** draconian means of forcing EVERY connection to have ident. 
     25** 
     26** stage three (I:lines, K:lines, etc) is evaluated when a client attempts 
     27** to register on the server.  it only effects *clients* (unlike the other 
     28** two stages), and has several more options.  some examples are listed 
     29** below. 
     30*/ 
     31 
     32/* 
     33** These two specify the default rule numbers for ACLs.  The first is the 
     34** default for 'runtime' ACLs (that is, ACLs added from commands the server 
     35** handles).  The second is the default for 'configured' ACLs (the ACLs in 
     36** this file).  They are commented out, but have their default values below. 
     37** Also, when ACLs are added rule numbers *do not* automatically increment. 
     38** Valid rules are 0-65535. 
     39*/ 
     40//default-acl-rule 1000; 
     41//default-acl-conf-rule 2000; 
     42 
     43// deny all connections from localhost 
     44acl { 
     45    stage 1;                // be sure to check right away 
     46    host "127.0.0.0/8"; 
     47    access deny; 
     48    reason "please do not connect from localhost"; 
     49}; 
     50 
     51// deny connections from the '0::/16' IPv6 prefix (this tends to cause a lot 
     52// of protocol problems on IRC 
     53acl { 
     54    stage 1; 
     55    host "0::/16"; 
     56    access deny; 
     57    reason "please do not connect from the 0:: prefix"; 
     58}; 
     59 
     60// and of course, all other stage one connections are allowed. 
     61 
     62// allow users of an internal network to always connect.  do this by placing 
     63// this ACL at a high rule position (rule 100 here). 
     64acl 100 { 
     65    // if no stage is specified, stage 3 is assumed 
     66    host "*@192.168.42.*"; 
     67    access allow;                // this overrides all other types 
     68    class ereet;                // the class specification is optional, but 
     69                                // recommended.  put them in a special class 
     70}; 
     71 
     72// deny connections from users who aren't running identd 
     73acl { 
     74    host "~*@*"; 
     75    access deny; 
     76    reason "please enable the auth/ident (rfc1413) service on your computer"; 
     77}; 
     78 
     79// now make sure to allow all other connections through.  remember to keep 
     80// broad ACLs such as this at the bottom of the file! 
     81acl { 
     82    host "*"; 
     83    access allow; 
     84    class clients; 
     85}; 
     86 
  • trunk/ithildin/modules/ircd/etc/commands.conf

    r745 r807  
     1// $Id$ 
     2 
     3/* The 'commands' section.  This section determines which commands will be 
     4 * loaded by the server at startup, or when rehashed.  Some commands may be 
     5 * loaded automatically by other modules (such as protocol modules or 
     6 * addons).  All the available commands are listed here.  Those which are 
     7 * depend-loaded elsewhere are commented out.  In addition, any extra 
     8 * settings provided by command modules are listed with the module. */ 
     9commands { 
     10    command acl;        // allows operators to view and modify Access 
     11                        // Control List entries in the server.  Also serves 
     12                        // as a replacement for old [un][kz]line commands. 
     13                        // (requires addons/acl) 
     14 
     15    command admin;      // provides information about server administrators. 
     16 
     17    //command akill;    // provides server commands to set/unset 
     18                        // network-wide bans of various types.  (requires 
     19                        // addons/acl, required by protocols/bahamut14) 
     20 
     21    command away;       // allows clients to set away messages. 
     22                        // creates the 'away-length' privilege which 
     23                        // specifies the maximum length of away messages. 
     24 
     25    //command capab;    // the CAPAB command, (required by 
     26                        // various protocols) 
     27 
     28    command chatops;    // allows operators to use the rather silly 
     29                        // 'chatops' command to gab with each other.  feel 
     30                        // free to disable this. ;) 
     31 
     32    command connect;    // allows operators to request that servers connect 
     33                        // to each other. 
     34                        // creates the 'connect' privilege which may be set 
     35                        // to either 'local' (default) or 'remote'.  this 
     36                        // controls whether the operator can request remote 
     37                        // connects. 
     38                 
     39    command die /* {    // allows operators to kill the server 
     40        password "some-md5-pass";   // if you want a password, uncomment this 
     41                                    // section 
     42    } */; 
     43 
     44    //command dns;      // a command which uses the dns module and behaves much 
     45                        // like the 'dig' command distributed with ISC bind 
     46 
     47    //command error;    // allows servers to pass error messages back and 
     48                        // forth (required by ircd) 
     49 
     50    command flags;      // allows users to set various levels of messages 
     51                        // they wish to receive. 
     52 
     53    command globops;    // allows operators to communicate globally with 
     54                        // other operators in a relatively secure fashion 
     55 
     56    //command gnotice;  // used by servers to pass messages to opers on 
     57                        // other servers (required by 
     58                        // various protocols) 
     59 
     60    //command helper;   // used to give 'helper' status to other users. 
     61                        // operator-only (requires usermodes/helper) 
     62 
     63    //command helpops;  // used to send 'helpops' messages to other helpers. 
     64                        // (requires usermodes/helper) 
     65 
     66    command info;       // sends information about the server to a user 
     67 
     68    command invite;     // allows users to invite others into channels 
     69                        // creates the +i channel mode to mark a channel 
     70                        // 'invite only' 
     71 
     72    command ison;       // allows users to see who is on (used for notify) 
     73     
     74    //command join;     // allows users to join channels (required by 
     75                        // ircd) 
     76 
     77    //command kick;     // allows channel operators to kick other users 
     78                        // (requited by ircd) 
     79 
     80    //command kill;     // allows operators to remove users from the network 
     81                        // (required by ircd). 
     82                        // creates the 'kill' privilege which may be either 
     83                        // 'local' or 'global' and controls whether local 
     84                        // server operators can kill users on other servers 
     85                        // (global) or only on this server (local) 
     86 
     87    command links;      // allows users to see what servers are on the 
     88                        // network 
     89 
     90    command list;       // allows users to retrieve a list of channels 
     91 
     92    command locops;     // allows operators to communicate with other 
     93                        // operators on their server. 
     94 
     95    command lusers;     // displays statistics about the current server. 
     96     
     97    //command mode;     // allows users to change either usermodes or 
     98                        // channel modes (required by ircd) 
     99 
     100    command module;     // allows operators to examine and manipulate 
     101                        // modules loaded by the server 
     102 
     103    command motd;       // allows users to see the Message of the Day.  The 
     104                        // default MOTD files are in <confpath>/ircd/motd 
     105                        // and <confpath>/ircd/smotd (for the regular and 
     106                        // short versions, respectively) 
     107 
     108    command names;      // allows users to retrieve a channel names list 
     109 
     110    //command nick;     // allows users to register themselves with the 
     111                        // server, and change their nicknames (required by 
     112                        // ircd) 
     113 
     114    command notice;     // allows users to send notices to other users or 
     115                        // channels (also adds privmsg) 
     116 
     117    command oper;       // allows users to grant themselves operator status 
     118                        // on the server. 
     119 
     120    //command part;     // allows users to depart a channel (required by 
     121                        // ircd) 
     122 
     123    //command pass;     // allows users to specify a pre-registration 
     124                        // password (required by protocol.rfc1459) 
     125 
     126    //command ping;     // allows users and servers to ensure links are up 
     127    //command pong;     // (required by ircd) 
     128 
     129    //command quit;     // allows users to sign off the server (required by 
     130                        // ircd) 
     131 
     132    command rehash;     // allows operators to reload the server's 
     133                        // configuration files. 
     134                        // creates the 'rehash' privilege which may be 
     135                        // either 'local' or 'remote' and works in the same 
     136                        // manner as the 'connect' privilege. 
     137 
     138    //command samode;   // allows 'services admins' to change channel modes 
     139                        // (requires usermodes/servicesadmin) 
     140 
     141    //command server;   // allows servers to register on the network 
     142                        // (requied by ircd) 
     143 
     144    command services;   // adds various services related commands (CHANSERV, 
     145                        // NICKSERV, et al). 
     146 
     147    command silence;    // implements a limited server-side ignore for users 
     148 
     149    //command sjoin;    // used by other servers to distribute information 
     150                        // about users joining channels. (required by 
     151                        // various protocols, requires commands/mode) 
     152 
     153    //command sqline;   // allows servers to set quarantines on 
     154                        // nicknames/channels (requires addons/quarantine, 
     155                        // required by protocols/bahamut14) 
     156 
     157    //command squit;    // allows operators to remove servers from the 
     158                        // network (required by addons/core) 
     159                        // creates the 'squit' privilege which may be either 
     160                        // 'local' or 'remote' and works in the same manner 
     161                        // as the 'connect' privilege. 
     162 
     163    command stats;      // A wrapper for the STATS command.  Converts common 
     164                        // requests into their approximate XINFO versions 
     165                        // (requires commands/xinfo) 
     166 
     167    //command svinfo;   // TS server negotiation command.  provides TS of 
     168                        // linking servers.  (required by various server 
     169                        // protocols) 
     170 
     171    //command svskill;  // special 'services' commands which are required 
     172    //command svsmode;  // by protocol.bahamut14 
     173    //command svsnick; 
     174 
     175    command time;       // allows users to get the current local time from 
     176                        // servers on the network. 
     177 
     178    command topic;      // creates channel topics and allows users to modify 
     179                        // them and distribute them over the network. 
     180                        // creates the +t channel mode which specifies 
     181                        // whether all users or only chanops can set topics 
     182 
     183    command trace;      // allows users to 'trace' server data paths. 
     184 
     185    //command user;     // allows users to register on the server (required 
     186                        // by protocol.rfc1459) 
     187 
     188    command userhost;   // allows users to request short-form information 
     189                        // about the status of other clients 
     190 
     191    command version;    // allows users to request information about the 
     192                        // version of servers on the network. 
     193 
     194    command wallops;    // allows operators to send messages to users who 
     195                        // wish to receive them. 
     196 
     197    command watch;      // adds 'server-side notify' support. 
     198 
     199    command who;        // allows users to get short-form information 
     200                        // about several clients at once using a system 
     201                        // of queries. 
     202                        // creates the 'who-reply-limit' privilege which 
     203                        // specifies the maximum number of replies a user 
     204                        // may receive from the command before no more 
     205                        // will be sent. 
     206                        // creates the 'who-see-invisible' privilege which 
     207                        // specifies whether or not the user can see 
     208                        // invisible users who are not in channels with them 
     209 
     210    command whois;      // allows users to request long-form information 
     211                        // about other users. 
     212 
     213    command whowas;     // allows users to see information about other users 
     214                        // who have signed off recently. 
     215 
     216    command xinfo;      // allows users to request extended information 
     217                        // about various aspects of the server and their 
     218                        // client status. 
     219}; 
     220 
  • trunk/ithildin/modules/ircd/etc/ircd.conf

    r745 r807  
     1// $Id$ 
     2 
     3/* 
     4** 'global' section: 
     5** this section defines the 'global' settings of the IRC server, each one is 
     6** described as it is laid out. 
     7*/ 
     8 
     9global { 
     10    name "your.server.name.here"; 
     11    network "your-network-here"; 
     12    //address 192.168.42.1; // the ip of the server 
     13    ports 6660-6669,7000,7325; // the port(s) it runs on 
     14    info "your info here"; // the gecos information 
     15    /* 
     16    ** admin sub-section, 
     17    ** each line designates additional administrative information.  Only 
     18    ** one line is required. 
     19    */ 
     20    admin { 
     21        "your"; 
     22        "info"; 
     23        "here"; 
     24    }; 
     25}; 
     26 
     27/* 
     28** protocols section 
     29** this simply defines a list of protocols you will support, you must 
     30** also add modules for these protocols in your module configuration 
     31** file.   Note that the ircd will load rfc1459 for you. 
     32*/ 
     33protocols { 
     34    bahamut14; // the server<->server protocol for bahamut 1.4.34+ servers 
     35}; 
     36 
     37/* 
     38** supported commands to load.  you may want to chuck this section in 
     39** another file,  it can get pretty long.  however, a lot of commands are 
     40** loaded by modules that need them. 
     41*/ 
     42$INCLUDE ircd/commands.conf; 
     43 
     44/* 
     45** addons to load.  stuff like ACLs and other friends (spamguarders and the 
     46** like) are addons 
     47*/ 
     48addon acl; 
     49// acl section included from acl.conf 
     50$INCLUDE ircd/acl.conf; 
     51         
     52addon core; // core support for some channel modes and commands 
     53 
     54/* 
     55** message sets 
     56** these are message groupings which allow you to reformat a lot of the text 
     57** sent to a client.  You can $INCLUDE another file to fill in the data, 
     58** and you need not add a new message for every type!  I recommend creating 
     59** the first (default) set from nothing (thereby using all defaults) 
     60*/ 
     61message-set default {}; 
     62 
     63/* 
     64** privilege sets 
     65** these are sets of privileges granted to users.  they work in a manner very 
     66** similar to the message set system.  Additionally, you can 'include' one 
     67** privilege set in another (settings are overriden from a top-down 
     68** perspective) by simply doing "include <name-of-privilege-set>;'.  It is  
     69** recommended that you create the first (default) set using all the defaults, 
     70** and then create your own per-class definitions.  
     71*/ 
     72privilege-set default {}; 
     73 
     74/* 
     75** class section 
     76** defines connection classes for users, required fields are 
     77** name, ping, max, and sendq (all of them 
     78*/ 
     79 
     80// you should put the default class at the top of the file. 
     81class default { 
     82    ping 180; 
     83    max 600; 
     84    sendq 102400; 
     85}; 
     86 
     87class server { 
     88    ping 300; 
     89    max 0; 
     90    sendq 10485760; // big send queue for servers 
     91}; 
     92 
     93class clients { 
     94    ping 180; // ping timeout frequency 
     95    max 2000; // maximum connections belonging to this class 
     96    sendq 51200; // maximum sendq items for this class. 
     97    flood 60; // set a lowish value, if you see too many innocents flooding 
     98              // off try raising this to 80-100 
     99}; 
     100 
     101class operator { 
     102    ping 300; // give them more time 
     103    max 0; // there is no soft limit on users in this class 
     104    sendq 1048576; // enormous sendqs. 
     105    flood 0; // no flooding off for them. 
     106 
     107    //hostmask "some.host.name"; 
     108    // the 'hostmask' addon allows you to mask users' hostnames if they 
     109    // connect in this class.  it is not loaded by default. 
     110}; 
     111 
     112/* 
     113** operator stuff below 
     114*/ 
     115 
     116privilege-set oper { 
     117    maxchannels 0; // no limit 
     118    see-hidden-channels yes; 
     119    who-see-invisible yes; 
     120    who-reply-limit 0; 
     121    kill global; 
     122    connect remote; 
     123    squit remote; 
     124    operator yes; // this is an operator privilege set 
     125}; 
     126 
     127operator you { 
     128    host "ident@some.host"; // hostnames work 
     129    host "127.0.0.1/8";            // so do CIDR masks 
     130 
     131    pass "md5-password"; 
     132    class "operator"; 
     133    privilege-set oper; 
     134}; 
     135 
     136/* 
     137** server stuff below 
     138*/ 
     139server your.uplink.here { 
     140    address "192.168.42.254"; 
     141    port 4000; 
     142    interval 3m; // try and connect every three minutes 
     143    protocol bahamut14; 
     144    theirpass "their-plaintext-password"; 
     145    ourpass "our-plaintext-password"; 
     146    hub *; // lets them hub anything. 
     147    class server; // be sure to set a server class! 
     148}; 
     149 
  • trunk/ithildin/modules/ircd/etc/motd

    r745 r807  
     1This is the regular MOTD file.  It looks like this because 
     2its owner (maybe you) has not taken time to edit it.  How 
     3very unprofessional of you.  Tsk. 
  • trunk/ithildin/modules/ircd/etc/smotd

    r745 r807  
     1This is the short MOTD.  The owner (maybe you) hasn't bothered 
     2to edit the default, so this is what you get.  Hah. 
  • trunk/ithildin/modules/ircd/protocols/rfc1459.c

    r806 r807  
    1414MODULE_REGISTER("$Rev$"); 
    1515const char *mdepends[] = MDEPENDS; 
     16const char *msoftdepends[] = { 
     17    "ircd.command.pass", "ircd.command.user", 
     18    NULL 
     19}; 
    1620 
    1721/* parser for packets */ 
Note: See TracChangeset for help on using the changeset viewer.