#tr-ircd 5.0 configuration file example v0.3 nexus@develooper.net # # The config file consists of directives and comments. A directive # consists of either a direct value, or other directives. Each directive # HAS to end with a semicolon (;). A directive is ALWAYS in lowercase. # Comments are denoted with either one of #, // or /* */. While the first # two declare the rest of the line as comments, anything between /* and # */ is considered a comment and gets ignored. Below are some examples of # correct directives. # # directive1= value1; # directive2 { # directive3=value3; # directive4=value4; # }; # # Below is a description of each directive and the values they expect. # Unless noted otherwise in the comments to each directive, each # directive accepts strings as values. Accepted units for time are: # seconds, minutes, hours, days, weeks, months, years, decades, centuries # and millenia. # # If a directive is not listed below, it doesn't exist. # PLEASE NOTE THAT EVERY PASSWORD ENTRY EXCEPT send_password FROM connect { } # MUST BE ENCRYPTED WITH the ircpasswd utility. /* The serverinfo directive encompasses the following directives: * name : This is the name used throughout IRC to refer to this * server. Although this name does not have to correspond to * an actual hostname of the server running the daemon, if * this is to be leaf server, a resolvable address is * recommended. * aliasname : This is an alias for the server. Every client connecting * using this name will get servermessages from this * servername. * description : This is a description of the server as seen in whois and * links requests. * networkname : This is given to the clients as they connect. It is * prudent, but not mandatory that all linked servers have * the same value set at this directive. * networkdesc : This description appears instead of the description for a * request from a user on another server when either server * employs the serverhide directive. * address : This is the IP address for the daemon to bind to. * This value has to be entered as a valid IP address. * restartpass : This is the password required to use the command restart. * This password, and the die password must be hashed with * MD5SUM. * diepass : This is the password required to use the command die. * displaypass : This is the password required to use the command display. * identity : This is the unique identifier for the server, between * 1 and 4095. */ serverinfo { name = "testserv.time.net"; aliasname = "irc.time.net"; description = "timenet test server"; networkname = "timenet"; networkdesc = "timenet test server"; address = "212.156.4.5"; restartpass = "timediril"; /* please hash with /mkpasswd * or with ircpasswd utility */ diepass = "timegeber"; /* please hash with /mkpasswd * or with ircpasswd utility */ displaypass = "timegoester"; /* please hash with /mkpasswd * or with ircpasswd utility */ identity = 42; }; /* The serverhide directive encompasses the following directives: * enable : This enables whether server hiding is enabled. Enter * yes or no. * flatten_links : If this is set to yes all servers in a links request * will be shown as connected to this server. Enter yes * or no. * links_from_file : If this is set to yes, the links information is read * from the etc/ircd.links file. Enter yes or no. * links_oper_only : This directive restricts the links command to IRC * operators. Enter yes or no. * links_delay : The amount of time the event manager uses to write * down the links file. * */ serverhide { enable = no; flatten_links = no; links_from_file = no; links_oper_only = no; links_delay = 2 hours; }; /* The serveropts directive encompasses the following directives: * ts_warn_delta : This is the maximum lag between two * servers before a warning is given. This * value should be in seconds. * ts_max_delta : This is the maximum lag allowed between * two servers that are to be linked. This * value should be in seconds. * language : This is the default language a user sees * on connecting. Only language names * defined in the language extension files * and "english" are valid. * save_maxclient_stats_time : If this value is set to yes, the server * retains the date the peak number of * users was reached. Enter yes or no. * use_registerfilter : If this value is set to yes, each user * gets the mode +R upon login. Enter yes or * no. * use_short_motd : This determines whether the shor form of * the motd is shown to users on * connection. Enter yes or no. * hide_gcos_with_sgline : This determines if the realname field of * a user matching a SGLINE shall be replaced * Enter yes or no. * realname_replacement : This is the text used for the above setting. * default_fakehost_mode : If this value is set to yes, then the * aforementioned ip masking mode is set * by default to each client upon connect. * Works only if enable_fakehost_mode is set * to yes. * Enter yes or no. * use_regex : This enables the regular expression based * REXCOM command and it enables regex matching * in kline/quarantine/gecos/jupiter commands * Please note that this is extremely cpu intensive. * Enter yes or no. * no_messages_on_away : Setting this to yes prevents users from talking when they are set away */ serveropts { ts_warn_delta = 12 minutes; ts_max_delta = 1 minute; save_maxclient_stats_time = 1 hour; havent_read_conf = yes; use_registerfilter = no; use_short_motd = no; # language = "english"; hide_gcos_with_sgline = no; realname_replacement = "Time waits for nobody"; default_fakehost_mode = yes; use_regex = no; no_messages_on_away = no; }; /* The connect_control directive encompasses the following directives: * default_kline_time : This value is used whenever a kline does * not have the time attribute set. This * value should be a time unit. * server_kline_address : This value will be shown to anyone who * has been klined locally as the email * address to apply to. Please enter a * valid email address. * network_kline_address : This value will be shon to anyone who * has been klined from the network. This * value should correspond with the value * used by every other server in the * network and should be a valid email * address. * wingate_notice : If this is set to yes, users get a * warning that they will be scanned by the * address specified in monitor_host upon * login. Enter yes or no. * monitor_host : This value should correspond to your * proxy control host if wingate_notice is * set to yes. * monitor_url : This value should point to an URL * where you describe your networks policy * about the usage of irc proxies. * throttle_time : This is the time that has to pass before * the server will allow a second connection * from the same host. Enter a time unit. * throttle_count : This is the maximum number of connections that * will be allowed to connect before getting * throttled. * identd_use_tilde : Setting this to yes uses the tilde ~ symbol for * users without a proper identd reply. * identd_complain : If this value is set to yes, users * without proper identd authentification * get a message telling them to install * identd. Enter yes or no. * identd_timeout : This value determines how long the server should * wait for an identd connection. * havent_read_conf : If this directive is encountered, the * server does not start. Delete it. */ connect_control { default_kline_time = 30 seconds; server_kline_address = "kline@local.tile.net"; network_kline_address = "kline@time.net"; wingate_notice = yes; monitor_host = "proxyscan.time.net"; monitor_url = "www.hadiko.de"; identd_use_tilde = no; identd_timeout = 5 seconds; identd_complain = no; throttle_time = 30 seconds; throttle_count = 10; }; /* The flood_control directive encompasses the following directives: * motd_wait : This value denotes the amount of time * which has to pass before using the motd * command more than the number set in * motd_max. This value should be in * seconds. * motd_max : This is the maximum number of motd * attempts that will be answered by the * server in the time specified by * motd_wait. * client_flood : This is the number of bytes that a client * may send in one second before it will * be disconnected for flooding. * anti_nick_flood : This determines whether rapid nick * changes constitute a flood. Enter yes or * no. * max_nick_time : If anti_nick_flood is set to yes, this * value denotes the amount of time which * has to pass before using the nick * command more than the number set in * max_nick_changes. This value should be * in seconds. * max_nick_changes : If anti_nick_flood is set to yes, this * is the maximum number of nick change * attempts that will be allowed by the * server in the time specified by * max_nick_time. * no_away_flood : This determines whether rapid away * changes constitute a flood. Enter yes or * no. * max_away_time : If no_away_flood is set to yes, this * value denotes the amount of time which * has to pass before using the away * command more than the number set in * max_away_count. This value should be * in seconds. * max_away_count : If no_away_flood is set to yes, this * is the maximum number of away uses that * will be allowed by the server in the * time specified by max_away_count. * anti_spambot : This value determines whether join and * part floods should be detected. Enter yes * or no. * min_join_leave_time : This is the amount of time in which a * client is evaluated for spambot * candidacy. Enter a time unit. * min_join_leave_count : This is the number of join or part * commands that are enough for a client to * be considered a spambot if executed * within the period set in * min_join_leave_time. Enter a positive * number. * join_leave_count_expire_time : This is the amount of time in which a * spambot is ignored by the server after * exceeding the limits set by prior * directives. Enter a time unit. * oper_spam_countdown : The number of join & part attempts the * server allows before sending a message * to &SPAMBOTS about the client. * max_knock_time : The number of seconds to pass for the next * knock request * havent_read_conf : If this directive is encountered, the * server does not start. Delete it. */ flood_control { motd_wait = 10 seconds; motd_max = 3; client_flood = 2560 ; anti_nick_flood = yes ; max_nick_time = 20 seconds; max_nick_changes = 5 ; no_away_flood = yes; max_away_time = 3 minutes; havent_read_conf = yes; max_away_count = 5; anti_spambot = yes; min_join_leave_time = 1 minute; max_join_leave_count = 25; join_leave_count_expire_time = 2 minutes; max_knock_time = 1 minute; oper_spam_countdown = 5; }; /* The operator_options directive encompasses the following directives: * staffhide : This determines whether operators get * fakehosts. Enter yes or no. * no_oper_jupiter : If this value is set to yes, operators * cannot use the jupiter command directly. * Enter yes or no. * havent_read_conf : If this directive is encountered, the * server does not start. Delete it. */ operator_options { staffhide = yes; no_oper_jupiter = yes; }; /* The servicesconf directive encompasses the following directives: * chanserv_name : Set this to the nick of ChanServ in your network. * nickserv_name : Set this to the nick of NickServ in your network. * operserv_name : Set this to the nick of OperServ in your network. * memoserv_name : Set this to the nick of MemoServ in your network. * statserv_name : Set this to the nick of StatServ in your network. * helpserv_name : Set this to the nick of HelpServ in your network. * services_name : Set this to the address of Services. * hide_ulined_servers : Set this to yes to hide the server name of * U-lined clients. Enter yes or no. */ servicesconf { chanserv_name = "ChanServ"; nickserv_name = "NickServ"; operserv_name = "Haydar"; memoserv_name = "MemoServ"; statserv_name = "StatServ"; helpserv_name = "HelpServ"; services_name = "services.tr"; hide_ulined_servers = yes; }; /* The admin directive encompasses the following directives: * name : This name is shown in admin requests. * email : This email address is shown as the admin contact address. * description : This is shown in admin requests as extra details. */ admin { name = "Administration"; email = "trircd@time.net"; description = "timenet irc administration"; }; /* The channelconf directive encompasses the following directives: * max_channels_per_user : The maximum amount of channels a user * may join. * default_quit_msg : This is the message shown when a user * quits without message. * default_extended_topic_limitation : Setting this to no makes a channels * default creation mode back to "+tn" * visible_serverchannels : This option stops the ircd from setting * the server owned local (&) channels +ps * so that they become visible by normal * users, but not joinable still. */ channelconf { max_channels_per_user = 10 ; default_quit_message = "timenet - where time stops"; default_extended_topic_limitation = yes; visible_serverchannels = yes; }; /* The modules directive encompasses the following directives: * module : This directive facilitates the loading of additional modules, * allowing additional functionality without having to go to * great lengths. Enter the name of the file containing the * module. * path : Modules added with the module directive are searched for in * MODPATH, LANGPATH and this directory. */ modules { path = "/home/ircd/lib/contrib"; module = "m_locops.so"; }; /* The files directive encompasses the following directive: * load : This directive facilitates the loading of additional, old style * configuration files. Such files are used to keep the main * configuration file clean of repetitive lines such as the kline. * pidfile : This directive sets the path to the pidfile. */ files { load = "klines.conf"; load = "glines.conf"; pidfile = "/home/ircd/var/run/tr-ircd/ircd.pid"; }; /* The operator directive encompasses the following directives: * name : This is the userid of the operator. * user : This is the hostmask from which this operator can login. * password : This is the password required to oper to this operator. * class : This is the connection class that this operator gets * transferred to after entering above credentials. * die : This value determines whether the operator has access to the * die command. Enter yes or no. * admin : This value determines whether the operator is a Server Admin. * Enter yes or no. * restart : This value determines whether the operator has access to the * restart command. Enter yes or no. * sadmin : This value determines whether the operator is a Services * Admin. Enter yes or no. * kill : This value determines whether the operator is allowed * to kill. * gkline : This value determines whether the operator is allowed * to use the kline, gline commands. * operdo : This value determines whether the operator is allowed * to use the operdo command. * see_hidden : This value determines whether the operator is allowed * to see hidden elements like channels, real hosts * login_via_web : This value determines whether the operator is allowed * to login via the web interface. */ operator { name = "talesin"; user = "*@*"; password = "excalibur"; class = 1; die = no; admin = yes; restart = yes; sadmin = yes; kill = no; operdo = yes; gkline = yes; see_hidden = no; login_via_web = no; }; /* The class directive encompasses the following directives: * number : This is the number identifying this connection class. * pingtime : This the time period in which the server does ping a user * continously. Should the user not show any activity after * this time, the connection will be closed. * connectfreq : This is the time interval at which the server attempts to * establish a connection to servers bearing this class. * Enter 0 for client classes, a time unit for servers. * max_links : This is the maximum number of clients that will be allowed * to connect using this class. * sendq : This is the total bandwidth allocated to this class. The * accepted format for this field is a number followed by * either b, kb or mb. */ class { class = 1; pingtime = 1 minute; connectfreq = 0; max_links = 512; sendq = 350 kb; }; class { class = 2; pingtime = 5 minutes; connectfreq = 0; max_links = 24; sendq = 350 kb; }; class { class = 50; pingtime = 1 minute; connectfreq = 30 seconds; max_links = 24; sendq = 1029 kb; }; /* The listen directive encompasses subsections, which include following directives: * port : This directive lists the ports the server listens on. * The format accepted by this directive is a list of port numbers * or port ranges separated by commas (,). A port range consists of * the lower port separated by two dots (..) from the higher port. * ip : This is the IP the server listens for the ports listed in the * subsection. If this and the next directive are not entered, the * ports listed * are bound to all interfaces of the server. * host : This is the hostname the server listens for the ports listed * in the subsection. If this and the previous directive are not * entered, the ports listed are bound to all interfaces of the server. * type : This entry without directive name tells the ircd that this listener * is specific for: * serverport | clientport | serviceport | client_ssl */ listen { { port = 6660 .. 6670; clientport; }; { ip = "212.156.4.5"; port = 15555, 16660; serverport; }; { port = 7000; host = "chat.ttnet.net.tr"; clientport; client_ssl; }; }; /* The auth directive encompasses the following directives: * user : The ident and hostmask that this auth directive applies * to. * password : If this directive is set this password has to be entered * via the PASS command to use this auth. * spoof_notice : If this directive is set to yes, a notice will be sent * each time an operator uses hostmasking. Enter yes or no. * spoof : This is the address that is shown as the hostname of the * operator using hostmasking. * exceed_limit : If this directive is set to yes, users connecting with * this auth will be exempt from flood checks. Enter yes or * no. * kline_exempt : If this directive is set to yes, users connecting with * this auth are unaffected by klines matching their hosts. * Enter yes or no. * redirserv : If and when the class this auth uses is full, this server * is shown along with the port set in redirport. * redirport : If and when the class this auth uses is full, this port * is shown alongside redirserv. * class : This is the class this auth uses. * port : This is the port number used when spoof is active * can_choose_fakehost : Opers can choose fakehost in this class if spoofing is on. */ auth { user = "*@*"; exceed_limit = no; kline_exempt = yes; class = 2; can_choose_fakehost = yes; }; auth { user = "*@127.0.0.1"; password = "BDCD"; /* Please hash this with /mkpasswd or ircpasswd */ spoof_notice = no; spoof = "time.local"; port = 5555; can_choose_fakehost = yes; class = 2; }; /* The connect directive encompasses the following directives: * name : This is the name expected of the connecting server. * host : This is the actual hostname of the server expected. * send_password : This is the password sent to the server as part of the * handshake. This must correspond to the accept_password * of the server to which the connection will be * established. * accept_password : This is the password the other server is expected to * send as part of the handshake. * encrypted : This determines whether data transfer between the * servers is encrypted. Please note that encryption via * RC4 is a CPU intensive operation. Enter yes or no. * compressed : This determines whether data transfer between the * servers is compressed. Enter yes or no. * autoconnect : If this directive is set to yes, the server tries to * automatically connect to this server as set in the * class directive. Enter yes or no. * ishub : This determines whether the other server is accepted * as a hub by this server. Enter yes or no. * aftype : This determines if the connection is made with IPv4 * or IPv6 interfaces. Enter ipv6 or ipv4. * class : This is the class used by this connect directive. * port : This is the port the connection will be made to. * ultimate : This determines whether the other server is accepted * as a U-Lined server by this server. Enter yes or no. */ connect { name = "tales.time.net"; host = "chat.ttnet.net.tr"; send_password = "timetale"; accept_password = "taletime"; /* please hash this with /mkpasswd or ircpasswd */ encrypted = no; compressed = yes; autoconnect = no; ishub = yes; aftype = ipv4; class = 50; port = 16667; ultimate = no; }; /* The service directive encompasses the following directives: * name : This is the name of the service using this directive. * host : This is the hostname the service must have to be able to * connect through this service directive. Either one of host * or ip suffice for a service to connect. * ip : This is the IP address the service must have to be able to * connect through this service directive. Either one of IP or * host suffice for a service to connect. * password : This is the password the service must use during connection * to be allowed to connect. * ultimate : This determines whether the service is given U-line * privileges. Enter yes or no. * send_akill : This determines whether the service can create Akills. * Enter yes or no. * class : This determines the connection class this directive uses. */ /* THIS IS NOT THE SERVICES SERVER !!!!!!!!!!!!!!!!!!!!!!!!! * THIS HAS NOTHING TO DO WITH THE SERVICES SERVER !!!!!!!!! * A SERVICES SERVER REQUIRES ITS CONNECT ENTRY !!!!!!!!!!!! */ service { name = "SockServ"; host = "chat.ttnet.net.tr"; ip = "212.156.4.5" password = "servpass"; ultimate = yes; send_akill = no; class = 30; }; /* The proxy monitor options directive is used to activate the built in * proxy scanner to detect socks, wingate, http proxies. It includes the * following directives: * enable : This enables the usage of the monitor. Enter yes or no * module : This tells the ircd to load which module for the * proxy monitor. * configuration_file : This tells the ircd to load the configuration * options for the monitor from the given file. */ proxy_monitor_options { enable = no; module = "/home/ircd/ircd5/lib/tools/proxymon.so"; configuration_file = "/home/ircd/ircd5/etc/socks.conf"; }; /* The httpd options directive is used to activate the built in httpd * which makes life easier when configuring the ircd. * enable : This enables the usage of the httpd. Enter yes or no * module : This tells the ircd to load which module for the * httpd. * configuration_file : This tells the ircd to load the configuration * options for the httpd from the given file. */ httpd_options { enable = yes; module = "/home/ircd/ircd5/lib/tools/httpd.so"; configuration_file = "/home/ircd/ircd5/etc/ihttpd.conf"; };