Advertisement
Guest User

Untitled

a guest
Jun 7th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 95.89 KB | None | 0 0
  1. # ircd.conf - configuration file for ircd version ircu2.10
  2. #
  3. # Last Updated: 20, March 2002.
  4. #
  5. # Written by Niels <niels@undernet.org>, based on the original example.conf,
  6. # server code and some real-life (ahem) experience.
  7. #
  8. # Updated and heavily modified by Braden <dbtem@yahoo.com>.
  9. #
  10. # Rewritten by A1kmm(Andrew Miller)<a1kmm@mware.virtualave.net> to support
  11. # the new flex/bison configuration parser.
  12. #
  13. # Thanks and credits to: Run, Trillian, Cym, Morrissey, Chaos, Flynn,
  14. # Xorath, WildThang, Mmmm, SeKs, Ghostwolf and
  15. # all other Undernet IRC Admins and Operators,
  16. # and programmers working on the Undernet ircd.
  17. #
  18. # This is an example of the configuration file used by the Undernet ircd.
  19. #
  20. # This document is based on a (fictious) server in Europe with a
  21. # connection to the Undernet IRC network. It is primarily a leaf server,
  22. # but if all the other hubs in Europe aren't in service, it can connect
  23. # to one in the US by itself.
  24. #
  25. # The configuration format consists of a number of blocks in the format
  26. # BlockName { setting = number; setting2 = "string"; setting3 = yes; };
  27. # Note that comments start from a #(hash) and go to the end of the line.
  28. # Whitespace(space, tab, or carriage return/linefeed) are ignored and may
  29. # be used to make the configuration file more readable.
  30. #
  31. # Please note that when ircd puts the configuration lines into practice,
  32. # it parses them exactly the other way round than they are listed here.
  33. # It uses the blocks in reverse order.
  34. #
  35. # This means that you should start your Client blocks with the
  36. # "fall through", most vanilla one, and end with the most detailed.
  37. #
  38. # There is a difference between the "hostname" and the "server name"
  39. # of the machine that the server is run on. For example, the host can
  40. # have "veer.cs.vu.nl" as FQDN, and "Amsterdam.NL.EU.undernet.org" as
  41. # server name.
  42. # A "server mask" is something like "*.EU.UnderNet.org", which is
  43. # matched by "Amsterdam.NL.EU.undernet.org" but not by
  44. # "Manhattan.KS.US.undernet.org".
  45. #
  46. # Please do NOT just rename the example.conf to ircd.conf and expect
  47. # it to work.
  48.  
  49. # [Include]
  50. #
  51. # Include the contents of the specified file.
  52. #
  53. # Include "path/to/include/file";
  54.  
  55. # [General]
  56. #
  57. # First some information about the server.
  58. # General {
  59. # name = "ViewDNS";
  60. # vhost = "irc.viewdns.net";
  61. # vhost = "irc.viewdns.net";
  62. # description = "ViewDNS Network";
  63. # numeric = 4;
  64. # dns vhost = "irc.viewdns.net";
  65. # dns vhost = "irc.viewdns.net";
  66. # dns server = "192.168.245.132";
  67. # dns server = "192.168.245.132";
  68. # };
  69. #
  70. # If present, <virtual host> must contain a valid address in dotted
  71. # quad or IPv6 numeric notation (127.0.0.1 or ::1). The address MUST
  72. # be the address of a physical interface on the host. This address is
  73. # used for outgoing connections if the Connect{} block does not
  74. # override it. See Port{} for listener virtual hosting. If in doubt,
  75. # leave it out -- or use "*", which has the same meaning as no vhost.
  76. #
  77. # You may specify both an IPv4 virtual host and an IPv6 virtual host,
  78. # to indicate which address should be used for outbound connections
  79. # of the respective type.
  80. #
  81. # Note that <server numeric> has to be unique on the network your server
  82. # is running on, must be between 0 and 4095, and is not updated on a rehash.
  83. #
  84. # The two DNS lines allow you to specify the local IP address to use
  85. # for DNS lookups ("dns vhost") and one or more DNS server addresses
  86. # to use. If the vhost is ambiguous for some reason, you may list
  87. # IPV4 and/or IPV6 between the equals sign and the address string.
  88. # The default DNS vhost is to let the operating system assign the
  89. # address, and the default DNS servers are read from /etc/resolv.conf.
  90. # In most cases, you do not need to specify either the dns vhost or
  91. # the dns server.
  92. General {
  93. name = "London.UK.Eu.UnderNet.org";
  94. description = "University of London, England";
  95. numeric = 1;
  96. };
  97.  
  98. # [Admin]
  99. #
  100. # This sets information that can be retrieved with the /ADMIN command.
  101. # It should contain at least an admin Email contact address.
  102. Admin {
  103. # At most two location lines are allowed...
  104. Location = "The University of London";
  105. Location = "Undernet IRC server";
  106. Contact = "IRC Admins <irc@london.ac.uk>";
  107. };
  108.  
  109. # [Classes]
  110. #
  111. # All connections to the server are associated with a certain "connection
  112. # class", be they incoming or outgoing (initiated by the server), be they
  113. # clients or servers.
  114. #
  115. # Class {
  116. # name = "<class>";
  117. # pingfreq = time;
  118. # connectfreq = time;
  119. # maxlinks = number;
  120. # maxchans = number;
  121. # sendq = size;
  122. # recvq = size;
  123. # usermode = "+i";
  124. # snomask = number;
  125. # fakelagminimum = number;
  126. # fakelagfactor = number;
  127. # autojoinchannel = "channellist";
  128. # autojoinnotice = "autojoinnotice";
  129. # restrict_join = yes/no;
  130. # restrict_privmsg = yes/no;
  131. # restrict_umode = yes/no;
  132. # };
  133. #
  134. # For connection classes used on server links, maxlinks should be set
  135. # to either 0 (for hubs) or 1 (for leaf servers). Client connection
  136. # classes may use maxlinks between 0 and approximately 4,000,000,000.
  137. # maxlinks = 0 means there is no limit on the number of connections
  138. # using the class.
  139. #
  140. # <connect freq> applies only to servers, and specifies the frequency
  141. # that the server tries to autoconnect. setting this to 0 will cause
  142. # the server to attempt to connect repeatedly with no delay until the
  143. # <maximum links> condition is satisfied. This is a Bad Thing(tm).
  144. # Note that times can be specified as a number, or by giving something
  145. # like: 1 minutes 20 seconds, or 1*60+20.
  146. #
  147. # <snomask> applies only to classes used for Operator blocks and is
  148. # used to specify the server notice mask an oper gets when he/she uses
  149. # /oper. See doc/snomask.txt or doc/snomask.html for details on what
  150. # this number means.
  151. #
  152. # <fakelagminimum> is the minimum number of seconds to wait before
  153. # processing commands received from clients.
  154. #
  155. # <fakelagfactor> is a number to devide the message length by to
  156. # determine addtional fake lag to apply. If set to 0 (zero) the user
  157. # will not be subject to fake lag at all.
  158. #
  159. # <autojoinchannel> can be specified to automatically join users of the
  160. # class into. If <autojoinnotice> is specified then a notice is sent
  161. # to the user when automatically joined.
  162. #
  163. # <restrict_join> when enabled restricts users in the class from joining
  164. # any channel with the exception of channels specified in the
  165. # autojoinchannel class option.
  166. #
  167. # <restrict_privmsg> when enabled prevents users in the class from
  168. # sending PRIVMSG or NOTICE to other users who are not on the same
  169. # channel as the user.
  170. #
  171. # <restrict_umode> when enabled prevents users in the class from
  172. # changing their user modes.
  173. #
  174. # Recommended server classes:
  175. # All your server uplinks you are not a hub for.
  176. Class {
  177. name = "Server";
  178. pingfreq = 1 minutes 30 seconds;
  179. connectfreq = 5 minutes;
  180. maxlinks = 1;
  181. sendq = 9000000;
  182. };
  183. # All the leaf servers you hub for.
  184. Class {
  185. name = "LeafServer";
  186. pingfreq = 1 minutes 30 seconds;
  187. connectfreq = 5 minutes;
  188. maxlinks = 0;
  189. sendq = 9000000;
  190. };
  191.  
  192. # Client {
  193. # username = "ident";
  194. # host = "host";
  195. # ip = "127.0.0.0/8";
  196. # password = "password";
  197. # class = "classname";
  198. # maxlinks = 3;
  199. # };
  200. #
  201. # Everything in a Client block is optional. If a username mask is
  202. # given, it must match the client's username from the IDENT protocol.
  203. # If a host mask is given, the client's hostname must resolve and
  204. # match the host mask. If a CIDR-style IP mask is given, the client
  205. # must have an IP matching that range. If maxlinks is given, it is
  206. # limits the number of matching clients allowed from a particular IP
  207. # address.
  208. #
  209. # Take the following class blocks only as a guide.
  210. Class {
  211. name = "Local";
  212. pingfreq = 1 minutes 30 seconds;
  213. sendq = 160000;
  214. maxlinks = 100;
  215. usermode = "+iw";
  216. };
  217. Class {
  218. name = "America";
  219. pingfreq = 1 minutes 30 seconds;
  220. sendq = 80000;
  221. maxlinks = 5;
  222. };
  223. Class {
  224. name = "Other";
  225. pingfreq = 1 minutes 30 seconds;
  226. sendq = 160000;
  227. maxlinks = 400;
  228. };
  229. Class {
  230. name = "Opers";
  231. pingfreq = 1 minutes 30 seconds;
  232. sendq = 160000;
  233. maxlinks = 10;
  234.  
  235. # For connection classes intended for operator use, you can specify
  236. # privileges used when the Operator block (see below) names this
  237. # class. The local (aka globally_opered) privilege MUST be defined
  238. # by either the Class or Operator block. The following privileges
  239. # exist:
  240. #
  241. # local (or propagate, with the opposite sense)
  242. # whox (log oper's use of x flag with /WHO)
  243. # display (oper status visible to lusers)
  244. # chan_limit (can join local channels when in
  245. # MAXCHANNELSPERUSER channels)
  246. # mode_lchan (can /MODE &channel without chanops)
  247. # deop_lchan (cannot be deopped or kicked on local channels)
  248. # walk_lchan (can forcibly /JOIN &channel OVERRIDE)
  249. # show_invis (see +i users in /WHO x)
  250. # show_all_invis (see +i users in /WHO x)
  251. # unlimit_query (show more results from /WHO)
  252. # local_kill (can kill clients on this server)
  253. # rehash (can use /REHASH)
  254. # restart (can use /RESTART)
  255. # die (can use /DIE)
  256. # local_jupe (not used)
  257. # set (can use /SET)
  258. # local_gline (can set a G-line for this server only)
  259. # local_badchan (can set a Gchan for this server only)
  260. # local_jupe (can set a Jupe for this server only)
  261. # local_shun (can set a Shun for this server only)
  262. # see_chan (can see users in +s channels in /WHO)
  263. # list_chan (can see +s channels with /LIST S, or modes with /LIST M)
  264. # wide_gline (can use ! to force a wide G-line)
  265. # wide_shun (can use ! to force a wide Shun)
  266. # see_opers (can see opers without DISPLAY privilege)
  267. # local_opmode (can use OPMODE/CLEARMODE on local channels)
  268. # force_local_opmode (can use OPMODE/CLEARMODE on quarantined local channels)
  269. # kill (can kill clients on other servers)
  270. # gline (can issue G-lines to other servers)
  271. # jupe (can issue Jupes to other servers)
  272. # shun (can issue Shuns to other servers)
  273. # opmode (can use /OPMODE)
  274. # badchan (can issue Gchans to other servers)
  275. # force_opmode (can use OPMODE/CLEARMODE on quarantined global channels)
  276. # apass_opmode (can use OPMODE/CLEARMODE on +A and +U keys)
  277. # check (can use /CHECK)
  278. # whois_notice (can set user mode +W)
  279. # hide_oper (can set user mode +H)
  280. # hide_channels (can set user mode +n)
  281. # hide_idle (can set user mode +I)
  282. # admin (gets user mode +a and can set/unset it too)
  283. # xtraop (can set user mode +X)
  284. # service (can set user mode +k)
  285. # remote (can use associated operator block from a remote server)
  286. # freeform (can use /SETHOST to apply a spoofhost not configured with a Spoofhost block)
  287. # remoterehash (can use /REHASH to rehash remote servers)
  288. # remove (can use /REMOVE to remove glines and shuns by force)
  289. # local_zline (can set a Z-line for this server only)
  290. # zline (can issue Z-lines to other servers)
  291. # wide_zline (can use ! to force a wide Z-line)
  292. #
  293. # For global opers (with propagate = yes or local = no), the default
  294. # is to grant all of the above privileges EXCEPT walk_lchan,
  295. # unlimit_query, set, badchan, local_badchan, apass_opmode,
  296. # whois_notice, hide_oper, hide-channels, hide_idle, admin, xtraop,
  297. # service, remote, freeform and remove.
  298. # For local opers, the default is to grant ONLY the following
  299. # privileges:
  300. # chan_limit, mode_lchan, show_invis, show_all_invis, local_kill,
  301. # rehash, local_gline, local_jupe, local_opmode, whox, display,
  302. # force_local_opmode, local_shun and local_zline
  303. # Any privileges listed in a Class block override the defaults.
  304.  
  305. local = no;
  306. };
  307. # [Client]
  308. #
  309. # To allow clients to connect, they need authorization. This can be
  310. # done based on hostmask, address mask, and/or with a password.
  311. # With intelligent use of classes and the maxconnections field in the
  312. # Client blocks, you can let in a specific domain, but get rid of all other
  313. # domains in the same toplevel, thus setting up some sort of "reverse
  314. # Kill block".
  315. # Client {
  316. # host = "user@host";
  317. # ip = "user@ip";
  318. # password = "password";
  319. # class = "classname";
  320. # sslfp = "sslfingerprint";
  321. # noidenttilde = yes/no;
  322. # hidehostcomponents = number;
  323. # autojoinchannel = "channellist";
  324. # autojoinnotice = "autojoinnotice";
  325. # };
  326. #
  327. # Technical description (for examples, see below):
  328. # For every connecting client, the IP address is known. A reverse lookup
  329. # on this IP-number is done to get the (/all) hostname(s).
  330. # Each hostname that belongs to this IP-number is matched to <hostmask>,
  331. # and the Client {} is used when any matches; the client will then show
  332. # with this particular hostname. If none of the hostnames match, then
  333. # the IP-number is matched against the <IP mask ...> field, if this matches
  334. # then the Client{} is used nevertheless and the client will show with the
  335. # first (main) hostname if any; if the IP-number did not resolve then the
  336. # client will show with the dot notation of the IP-number.
  337. # There is a special case for the UNIX domain sockets and localhost connections
  338. # though; in this case the <IP mask ...> field is compared with the
  339. # name of the server (thus not with any IP-number representation). The name
  340. # of the server is the one returned in the numeric 002 reply, for example:
  341. # 002 Your host is 2.undernet.org[jolan.ppro], running version ...
  342. # Then the "jolan.ppro" is the name used for matching.
  343. # Therefore, unix domain sockets, and connections to localhost would
  344. # match this block:
  345. # host = "*@jolan.ppro";
  346. #
  347. # This is the "fallback" entry. All .uk, .nl, and all unresolved are
  348. # in these two lines.
  349. # By using two different lines, multiple connections from a single IP
  350. # are only allowed from hostnames which have both valid forward and
  351. # reverse DNS mappings.
  352. Client
  353. {
  354. class = "Other";
  355. ip = "*@*";
  356. maxlinks = 2;
  357. };
  358.  
  359.  
  360. Client
  361. {
  362. class = "Other";
  363. host = "*@*";
  364. maxlinks = 2;
  365. };
  366. # If you don't want unresolved dudes to be able to connect to your
  367. # server, do not specify any "ip = " settings.
  368. #
  369. # Here, take care of all American ISPs.
  370. Client
  371. {
  372. host = "*@*.com";
  373. class = "America";
  374. maxlinks = 2;
  375. };
  376.  
  377. Client
  378. {
  379. host = "*@*.net";
  380. class = "America";
  381. maxlinks = 2;
  382. };
  383. # Now list all the .com / .net domains that you wish to have access...
  384. # actually it's less work to do it this way than to do it the other
  385. # way around - K-lining every single ISP in the US.
  386. # I wish people in Holland just got a .nl domain, and not try to be
  387. # cool and use .com...
  388. Client { host = "*@*.wirehub.net"; class = "Other"; maxlinks=2; };
  389. Client { host = "*@*.planete.net"; class = "Other"; maxlinks=2; };
  390. Client { host = "*@*.ivg.com"; class = "Other"; maxlinks=2; };
  391. Client { host = "*@*.ib.com"; class = "Other"; maxlinks=2; };
  392. Client { host = "*@*.ibm.net"; class = "Other"; maxlinks=2; };
  393. Client { host = "*@*.hydro.com"; class = "Other"; maxlinks=2; };
  394. Client { host = "*@*.nl.net"; class = "Local"; maxlinks=2; };
  395.  
  396. # You can request a more complete listing, including the "list of standard
  397. # Kill blocks" from the Routing Committee; it will also be sent to you if
  398. # you apply for a server and get accepted.
  399. #
  400. # Ourselves - this makes sure that we can get in, no matter how full
  401. # the server is (hopefully).
  402. Client
  403. {
  404. host = "*@*.london.ac.uk";
  405. ip = "*@193.37.*";
  406. class = "Local";
  407. # A maxlinks of over 5 will automatically be glined by euworld on Undernet
  408. maxlinks = 5;
  409. };
  410.  
  411. # You can put an expression in the maxlinks value, which will make ircd
  412. # only accept a client when the total number of connections to the network
  413. # from the same IP number doesn't exceed this number.
  414. # The following example would accept at most one connection per IP number
  415. # from "*.swipnet.se" and at most two connections from dial up accounts
  416. # that have "dial??.*" as host mask:
  417. # Client {
  418. # host = "*@*.swipnet.se";
  419. # maxlinks = 1;
  420. # class = "Other";
  421. # };
  422. # Client {
  423. # host = "*@dial??.*";
  424. # maxlinks = 2;
  425. # class = "Other";
  426. # };
  427. #
  428. # If you are not worried about who connects, this line will allow everyone
  429. # to connect.
  430. Client {
  431. host = "*@*";
  432. ip = "*@*";
  433. class = "Other";
  434. maxlinks = 2;
  435. };
  436.  
  437. # You can additionally specify either a country code or continent code
  438. # using the country or continent fields for a Client block to be matched
  439. # by.
  440. # Client {
  441. # country = "GB";
  442. # class = "Local";
  443. # };
  444.  
  445. # You can also specify an SSL client certificate fingerprint for a Client
  446. # block as an alternative, or addition to the password for authentication.
  447. # Client {
  448. # host "*@*";
  449. # ip = "*@*";
  450. # class = "Other";
  451. # sslfp = "61D0720B27D8AED9C0A7CB788091B0D8D9A94E119D5118E574B70EECD41B3C26";
  452. # };
  453.  
  454. # You can disable the '~' prefix applied to users with no ident reply by
  455. # setting noidenttilde to 'no' (default: 'yes').
  456. # Client {
  457. # host = "*@*";
  458. # ip = "*@*";
  459. # class = "Other";
  460. # noidenttilde = no;
  461. # }
  462.  
  463. # You can specify a server (and optionally a port) that a client should be advised
  464. # to reconnect to using the 'redirect' option. If a port is not specified then
  465. # 6667 is used.
  466. #
  467. # Client {
  468. # host = "*@*";
  469. # ip = "*@*";
  470. # class = "Other";
  471. # redirect = "some.other.server.com" 6667;
  472. # };
  473.  
  474. # You can specify the number of host name components to hide when using
  475. # HOST_HIDING_STYLE 2 or 3 by adding the hidehostcomponents option to a Client
  476. # block.
  477. #
  478. # Client {
  479. # host = "*@*";
  480. # ip = "*@*";
  481. # class = "Other";
  482. # hidehostcomponents = 2;
  483. # };
  484.  
  485. # You can specify a list of channels to automatically join users into upon
  486. # connecting by adding the autojoinchannel option to the Client block. You
  487. # can also specify a notice to send to users when they are automatically.
  488. #
  489. # Client {
  490. # host = "*@*";
  491. # ip = "*@*";
  492. # class = "Other";
  493. # autojoinchannel = "#channel1,#channel2";
  494. # autojoinnotice = "*** Notice -- You are now being autojoined into #channel1 and #channel2";
  495. # };
  496.  
  497. # [motd]
  498. #
  499. # It is possible to show a different Message of the Day to a connecting
  500. # client depending on its origin.
  501. # motd {
  502. # # Note: host can also be a classname.
  503. # host = "Other";
  504. # country = "countrycode";
  505. # continent = "continentcode";
  506. # file = "path/to/motd/file";
  507. # };
  508. #
  509. # More than one host/country/continent = "mask"; entry may be present in
  510. # one block; this has the same effect as one Motd block for each host
  511. # entry, but makes it easier to update the messages's filename.
  512. #
  513. # DPATH/net_com.motd contains a special MOTD where users are encouraged
  514. # to register their domains and get their own client{} lines if they're in
  515. # Europe, or move to US.UnderNet.org if they're in the USA.
  516. motd {
  517. host = "*.net";
  518. file = "net_com.motd";
  519. };
  520. motd {
  521. host = "*.com";
  522. file = "net_com.motd";
  523. };
  524. motd {
  525. host = "America";
  526. file = "net_com.motd";
  527. };
  528.  
  529. # A different MOTD for ourselves, where we point out that the helpdesk
  530. # better not be bothered with questions regarding irc...
  531. motd {
  532. host = "*.london.ac.uk";
  533. file = "london.motd";
  534. };
  535.  
  536. # [UWorld]
  537. #
  538. # One of the many nice features of Undernet is "Uworld", a program
  539. # connected to the net as a server. This allows it to broadcast any mode
  540. # change, thus allowing opers to, for example, "unlock" a channel that
  541. # has been taken over.
  542. # There is only one slight problem: the TimeStamp protocol prevents this.
  543. # So there is a configuration option to allow them anyway from a certain
  544. # server.
  545. # UWorld {
  546. # # The servername or wildcard mask for it that this applies to.
  547. # name = "relservername";
  548. # };
  549. #
  550. # You may have have more than one name listed in each block.
  551. #
  552. # Note: (1) These lines are agreed on by every server admin on Undernet;
  553. # (2) These lines must be the same on every single server, or results
  554. # will be disasterous; (3) This is a useful feature, not something that
  555. # is a liability and abused regularly (well... :-)
  556. # If you're on Undernet, you MUST have these lines. I cannnot stress
  557. # this enough. If all of the servers don't have the same lines, the
  558. # servers will try to undo the mode hacks that Uworld does. Make SURE that
  559. # all of the servers have the EXACT same UWorld blocks.
  560. #
  561. # If your server starts on a bit larger network, you'll probably get
  562. # assigned one or two uplinks to which your server can connect.
  563. # If your uplink(s) also connect to other servers than yours (which is
  564. # probable), you need to define your uplink as being allowed to "hub".
  565. # See the Connect block documentation for details on how to do that.
  566.  
  567. UWorld {
  568. name = "uworld.eu.undernet.org";
  569. name = "uworld2.undernet.org";
  570. name = "uworld.undernet.org";
  571. name = "channels.undernet.org";
  572. name = "channels2.undernet.org";
  573. name = "channels3.undernet.org";
  574. name = "channels4.undernet.org";
  575. name = "channels5.undernet.org";
  576. name = "channels6.undernet.org";
  577. };
  578.  
  579. # As of ircu2.10.05 is it possible to Jupe nicks. As per CFV-0095 and
  580. # CFV-0255, the following nicks must be juped, it is not allowed to
  581. # jupe others as well.
  582. Jupe {
  583. nick = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,{,|,},~,-,_,`";
  584. nick = "EuWorld,UWorld,UWorld2";
  585. nick = "login,undernet,protocol,pass,newpass,org";
  586. nick = "StatServ,NoteServ";
  587. nick = "ChanSvr,ChanSaver,ChanServ";
  588. nick = "NickSvr,NickSaver,NickServ";
  589. nick = "LPT1,LPT2,COM1,COM2,COM3,COM4,AUX";
  590. };
  591.  
  592. # [Kill]
  593. #
  594. # While running your server, you will most probably encounter individuals
  595. # or groups of persons that you do not wish to have access to your server.
  596. #
  597. # For this purpose, the ircd understands "kill blocks". These are also
  598. # known as K-lines, by virtue of the former config file format.
  599. # Kill
  600. # {
  601. # host = "user@host";
  602. # reason = "The reason the user will see";
  603. # };
  604. # It is possible to ban on the basis of the real name.
  605. # It is also possible to use a file as comment for the ban, using
  606. # file = "file":
  607. # Kill
  608. # {
  609. # realname = "realnametoban";
  610. # file = "path/to/file/with/reason/to/show";
  611. # };
  612. # It is also possible to ban using either the 2 letter country code or
  613. # the 2 letter continent code provided by GeoIP using either the country
  614. # or continent fields.
  615. # Kill
  616. # {
  617. # country = "US";
  618. # reason = "Local server for local people!";
  619. # };
  620. #
  621. #
  622. # The default reason is: "You are banned from this server"
  623. # Note that Kill blocks are local to the server; if you ban a person or a
  624. # whole domain from your server, they can get on IRC via any other server
  625. # that doesn't have them Killed (yet).
  626. #
  627. # With a simple comment, using quotes:
  628. Kill { host = "*.au"; reason = "Please use a nearer server"; };
  629. Kill { host = "*.edu"; reason = "Please use a nearer server"; };
  630.  
  631. # You can also kill based on username.
  632. Kill { username = "sub7"; realname = "s*7*"; reason = "You are infected with a Trojan"; };
  633.  
  634. # The file can contain for example, a reason, a link to the
  635. # server rules and a contact address. Note the combination
  636. # of username and host in the host field.
  637. Kill
  638. {
  639. host = "*luser@unixbox.flooder.co.uk";
  640. file = "kline/youflooded.txt";
  641. };
  642.  
  643. # IP-based kill lines apply to all hosts, even if an IP address has a
  644. # properly resolving host name.
  645. Kill
  646. {
  647. host = "192.168.*";
  648. file = "klines/martians";
  649. };
  650.  
  651. # The realname field lets you ban by realname...
  652. Kill
  653. {
  654. realname = "*sub7*";
  655. reason = "You are infected with a Trojan";
  656. };
  657.  
  658. # The version field lets you ban by CTCP version (requires "CTCP_VERSION" and
  659. # "CTCP_VERSIONING_KILL" to be enabled in the Features block)
  660. Kill
  661. {
  662. version = "*iroffer*";
  663. reason = "You are using a disallowed chat client version. Either upgrade or get a new client.";
  664. };
  665.  
  666. # A Kill block can also allow authenticated users to connect even if they match
  667. # the kill block in question. This can be achieved by adding the authexempt
  668. # option to the kill block. Addition of the mark option will add a line to the
  669. # users WHOIS with the value of the mark option.
  670. Kill
  671. {
  672. host = "silly.people";
  673. reason = "Silly people are not allowed unless authenticated.";
  674. authexempt = yes;
  675. mark = "Silly Person";
  676. };
  677.  
  678. # [Connect]
  679. #
  680. # You probably want your server connected to other servers, so your users
  681. # have other users to chat with.
  682. # IRC servers connect to other servers forming a network with a star or
  683. # tree topology. Loops are not allowed.
  684. # In this network, two servers can be distinguished: "hub" and "leaf"
  685. # servers. Leaf servers connect to hubs; hubs connect to each other.
  686. # Of course, many servers can't be directly classified in one of these
  687. # categories. Both a fixed and a rule-based decision making system for
  688. # server links is provided for ircd to decide what links to allow, what
  689. # to let humans do themselves, and what links to (forcefully) disallow.
  690. #
  691. # The Connect blocks
  692. # define what servers the server connect to, and which servers are
  693. # allowed to connect.
  694. # Connect {
  695. # name = "servername";
  696. # host = "hostnameORip";
  697. # vhost = "localIP";
  698. # password = "passwd";
  699. # port = portno;
  700. # class = "classname";
  701. # maxhops = 2;
  702. # hub = "*.eu.undernet.org";
  703. # autoconnect = no;
  704. # sslfp = "sslfingerprint";
  705. # sslciphers = "ssl ciphers string";
  706. # ssl = no;
  707. # };
  708. #
  709. # The "port" field defines the default port the server tries to connect
  710. # to if an operator uses /connect without specifying a port. This is also
  711. # the port used when the server attempts to auto-connect to the remote
  712. # server. (See Class blocks for more informationa about auto-connects).
  713. # You may tell ircu to not automatically connect to a server by adding
  714. # "autoconnect = no;"; the default is to autoconnect.
  715. #
  716. # If the vhost field is present, the server will use that IP as the
  717. # local end of connections that it initiates to this server. This
  718. # overrides the vhost value from the General block.
  719. #
  720. # If the sslfp field is present the remote server must be connected via
  721. # SSL using an SSL certificate with the SHA256 fingerprint specified to
  722. # be allowed to use the Connect block.
  723. #
  724. # If the ssliphers field is present then the ciphers list specified will
  725. # be used when this server connects to the server the Connect block
  726. # belongs to. See https://www.openssl.org/docs/apps/ciphers.html for an
  727. # explanation on how to format this string.
  728. #
  729. # The maxhops field causes an SQUIT if a hub tries to introduce
  730. # servers farther away than that; the element 'leaf;' is an alias for
  731. # 'maxhops = 0;'. The hub field limits the names of servers that may
  732. # be introduced by a hub; the element 'hub;' is an alias for
  733. # 'hub = "*";'.
  734. #
  735. # Our primary uplink.
  736. Connect {
  737. name = "Amsterdam.NL.Eu.UnderNet.org";
  738. host = "1.2.3.4";
  739. password = "passwd";
  740. port = 4400;
  741. class = "Server";
  742. hub;
  743. };
  744.  
  745. # [crule]
  746. #
  747. # For an advanced, real-time rule-based routing decision making system
  748. # you can use crule blocks. For more information, see doc/readme.crules.
  749. # If more than one server mask is present in a single crule, the rule
  750. # applies to all servers.
  751. # CRULE
  752. # {
  753. # server = "servermask";
  754. # rule = "connectrule";
  755. # # Setting all to yes makes the rule always apply. Otherwise it only
  756. # # applies to autoconnects.
  757. # all = yes;
  758. # };
  759. CRULE
  760. {
  761. server = "*.US.UnderNet.org";
  762. rule = "connected(*.US.UnderNet.org)";
  763. };
  764. CRULE
  765. {
  766. server = "*.EU.UnderNet.org";
  767. rule = "connected(Amsterdam.NL.EU.*)";
  768. };
  769.  
  770. # The following block is recommended for leaf servers:
  771. CRULE
  772. {
  773. server = "*";
  774. rule = "directcon(*)";
  775. };
  776.  
  777. # [Operator]
  778. #
  779. # Inevitably, you have reached the part about "IRC Operators". Oper status
  780. # grants some special privileges to a user, like the power to make the
  781. # server break or (try to) establish a connection with another server,
  782. # and to "kill" users off IRC.
  783. # I can write many pages about this; I will restrict myself to saying that
  784. # if you want to appoint somebody as IRC Operator on your server, that
  785. # person should be aware of his/her responsibilities, and that you, being
  786. # the admin, will be held accountable for their actions.
  787. #
  788. # There are two sorts of IRC Operators: "local" and "global". Local opers
  789. # can squit, connect and kill - but only locally: their +o user mode
  790. # is not not passed along to other servers. On Undernet, this prevents
  791. # them from using Uworld as well.
  792. #
  793. # More than one host = "mask"; entry may be present in one block; this
  794. # has the same effect as one Operator block for each host entry, but
  795. # makes it easier to update operator nicks, passwords, classes, and
  796. # privileges.
  797. #
  798. # Operator {
  799. # host = "host/IP mask";
  800. # name = "opername";
  801. # password = "encryptedpass";
  802. # class = "classname";
  803. # sslfp = "sslfingerprint";
  804. # snomask = number;
  805. # autojoinchannel = "channellist";
  806. # autojoinnotice = "autjoinnotice";
  807. # # You can also set any operator privilege; see the Class block
  808. # # documentation for details. A privilege defined for a single
  809. # # Operator will override the privilege settings for the Class
  810. # # and the default setting.
  811. # };
  812. #
  813. # By default, the password is hashed using the system's native crypt()
  814. # function. Other password mechanisms are available; the umkpasswd
  815. # utility from the ircd directory can hash passwords using those
  816. # mechanisms. If you use a password format that is NOT generated by
  817. # umkpasswd, ircu will not recognize the oper's password.
  818. #
  819. # If sslfp is present the user must be connected via SSL from a client
  820. # setup to use an SSL client certificate with the SHA256 fingerprint
  821. # specified.
  822. #
  823. # snomask is used to specify the server notice mask an oper gets when
  824. # he/she uses /oper. See doc/snomask.txt or doc/snomask.html for
  825. # details on what this number means.
  826. #
  827. # autjoinchannel allows you to specify channels the user is automatically
  828. # joined into when he/she uses /oper. Additionally you can specify a
  829. # notice to be sent to the user by using autojoinnotice.
  830. #
  831. # All privileges are shown with their default values; if you wish to
  832. # override defaults, you should set only those privileges for the
  833. # operator. Listing defaulted privileges just makes things harder to
  834. # find.
  835. Operator {
  836. local = no;
  837. host = "*@*.cs.vu.nl";
  838. password = "VRKLKuGKn0jLt";
  839. name = "Niels";
  840. class = "Local";
  841. };
  842. Operator {
  843. host = "*@*.uu.net";
  844. password = "$PLAIN$notencryptedpass";
  845. name = "Niels";
  846. class = "Opers";
  847. };
  848.  
  849. # Note that the <connection class> is optional, but leaving it away
  850. # puts the opers in class "default", which usually only accepts one
  851. # connection at a time. If you want users to Oper up more then once per
  852. # block, then use a connection class that allows more then one connection,
  853. # for example (using class Local as in the example above):
  854. #
  855. # Once you OPER your connection class changes no matter where you are or
  856. # your previous connection classes. If the defined connection class is
  857. # Local for the operator block, then your new connection class is Local.
  858.  
  859. # [Port]
  860. # When your server gets more full, you will notice delays when trying to
  861. # connect to your server's primary listening port. It is possible via the
  862. # Port lines to specify additional ports for the ircd to listen to.
  863. # De facto ports are: 6667 - standard; 6660-6669 - additional client
  864. # ports;
  865. # Undernet uses 4400 for server listener ports.
  866. # These are just hints, they are in no way official IANA or IETF policies.
  867. # IANA says we should use port 194, but that requires us to run as root,
  868. # so we don't do that.
  869. #
  870. #
  871. # Port {
  872. # port = [ipv4] [ipv6] number;
  873. # mask = "ipmask";
  874. # # Use this to control the interface you bind to.
  875. # vhost = [ipv4] [ipv6] "virtualhostip";
  876. # # You can specify both virtual host and port number in one entry.
  877. # vhost = [ipv4] [ipv6] "virtualhostip" number;
  878. # # Setting to yes makes this server only.
  879. # server = yes;
  880. # # Setting to yes makes the port "hidden" from stats.
  881. # hidden = yes;
  882. # # Setting to yes makes the port accept SSL encrypted connections.
  883. # ssl = yes;
  884. # };
  885. #
  886. # The port and vhost lines allow you to specify one or both of "ipv4"
  887. # and "ipv6" as address families to use for the port. The default is
  888. # to listen on both IPv4 and IPv6.
  889. #
  890. # The mask setting allows you to specify a range of IP addresses that
  891. # you will allow connections from. This should only contain IP addresses
  892. # and '*' if used. This field only uses IP addresses. This does not use
  893. # DNS in any way so you can't use it to allow *.nl or *.uk. Attempting
  894. # to specify anything other than numbers, dots and stars [0-9.*] will result
  895. # in the port allowing connections from anyone.
  896. #
  897. # The interface setting allows multiply homed hosts to specify which
  898. # interface to use on a port by port basis, if an interface is not specified
  899. # the default interface will be used. The interface MUST be the complete
  900. # IP address for a real hardware interface on the machine running ircd.
  901. # If you want to use virtual hosting *YOU* *MUST* *USE* *THIS* otherwise it
  902. # WILL bind to all interfaces - not what most people seem to expect.
  903. #
  904. Port {
  905. server = yes;
  906. port = 4400;
  907. };
  908.  
  909. # This is an SSL port.
  910. Port {
  911. ssl = yes;
  912. port = 6697;
  913. };
  914.  
  915. # This is an IPv4-only Server port that is Hidden
  916. Port {
  917. server = yes;
  918. hidden = yes;
  919. port = ipv4 4401;
  920. };
  921.  
  922. # The following are normal client ports
  923. Port { port = 6667; };
  924. Port { port = 6668; };
  925. Port {
  926. # This only accepts clients with IPs like 192.168.*.
  927. mask = "192.168.*";
  928. port = 6666;
  929. };
  930.  
  931. # This is a hidden client port, listening on 168.8.21.107.
  932. Port {
  933. vhost = "168.8.21.107";
  934. hidden = yes;
  935. port = 7000;
  936. };
  937.  
  938. # More than one vhost may be present in a single Port block; in this case,
  939. # we recommend listing the port number on the vhost line for clarity.
  940. Port {
  941. vhost = "172.16.0.1" 6667;
  942. vhost = "172.16.3.1" 6668;
  943. hidden = no;
  944. };
  945.  
  946. # [Spoofhost]
  947. #
  948. # Spoofhost "<spoof host>" {
  949. # pass = "<password>";
  950. # host = "<hostmask>";
  951. # autoapply = <yes/no>;
  952. # ismask = <yes/no>;
  953. # matchusername = <yes/no>;
  954. # };
  955. #
  956. # <spoof host> An ident@hostname or hostname to be spoofed
  957. # <password> A password for this spoof host. Used if SETHOST_USER is enabled.
  958. # <hostmask> A hostmask for matching against users that are to be auto
  959. # spoofed or to restrict access to a spoof host.
  960. # <autoapply> Either yes or no, yes indicates that the Spoofhost should be
  961. # automatically applied to a user. If set to yes, <pass> is
  962. # ignored when automatically applying the host.
  963. # <ismask> Either yes or no, yes indicates that <spoof host> is a wild
  964. # card mask (includes * or ?) to match against the supplied spoof
  965. # host. A yes also sets <autoapply> to no.
  966. # <matchusername> If set to yes when <autoapply> is set to yes, the user portion
  967. # of <hostmask> will match against the USER supplied user name
  968. # as well as the ident supplied user name.
  969. #
  970. # NOTE: When using ismask steps should be taken to ensure only users you trust
  971. # can make use of a Spoofhost block using the option. The reason for this
  972. # is because of the nature of ismask, users who can use a Spoofhost block
  973. # with ismask enabled can make use of a wild card mask to change their
  974. # host name and evade channel bans.
  975. #
  976. # Spoofhost "testsline.AfterNET.Org" { pass = "secret"; host = "*"; };
  977. #
  978. # This is how to define Spoofhosts when having freeform turned off.
  979. # Spoofhost "testsline2.AfterNET.Org" { username = "x"; host = "nohost"; };
  980.  
  981. # Quarantine blocks disallow operators from using OPMODE and CLEARMODE
  982. # on certain channels. Opers with the force_opmode (for local
  983. # channels, force_local_opmode) privilege may override the quarantine
  984. # by prefixing the channel name with an exclamation point ('!').
  985. # Wildcards are NOT supported; the channel name must match exactly.
  986. Quarantine {
  987. "#shells" = "Thou shalt not support the h4><0rz";
  988. "&kiddies" = "They can take care of themselves";
  989. };
  990.  
  991. # This is a server-implemented alias to send a message to a service.
  992. # The string after Pseudo is the command name; the name entry inside
  993. # is the service name, used for error messages. More than one nick
  994. # entry can be provided; the last one listed has highest priority.
  995. Pseudo "CHANSERV" {
  996. name = "X";
  997. nick = "X@channels.undernet.org";
  998. };
  999.  
  1000. # You can also prepend text before the user's message.
  1001. Pseudo "LOGIN" {
  1002. name = "X";
  1003. prepend = "LOGIN ";
  1004. nick = "X@channels.undernet.org";
  1005. };
  1006.  
  1007. # You can also specify the default text to send if the user does not
  1008. # supply some text.
  1009. Pseudo "AUTHSERV" {
  1010. name = "AuthServ";
  1011. nick = "AuthServ@channels.undernet.org";
  1012. defaulttext = "HELP";
  1013. };
  1014.  
  1015. # You can ask a separate server whether to allow users to connect.
  1016. # Uncomment this ONLY if you have an iauth helper program.
  1017. # IAuth {
  1018. # program = "../path/to/iauth" "-n" "options go here";
  1019. # };
  1020.  
  1021. # [Forwards]
  1022. # These blocks will enable the server to forward any messages which
  1023. # are prefixed and specific with a b:line. This will allow users to
  1024. # use the services without the services being in channel.
  1025. #
  1026. # Forwards {
  1027. # "<prefix>" = "<services server>";
  1028. # };
  1029. #
  1030. # Forwards {
  1031. # "!" = "channels.undernet.org";
  1032. # "?" = "channels.undernet.org";
  1033. # "." = "channels.undernet.org";
  1034. # };
  1035. #
  1036. # Any channel messages prefixed with a ? ! or a . would be sent to
  1037. # channels.undernet.org in the above examples.
  1038.  
  1039. # [WebIRC]
  1040. # These blocks allow you to run a WEBIRC client on your website without
  1041. # having to set clone exceptions for your websites hostname on your IRCd.
  1042. # WEBIRC will send a WEBIRC command along with the clients hostname, ip and
  1043. # WEBIRC password.
  1044. #
  1045. # WebIRC {
  1046. # host = "user@host";
  1047. # password = "password";
  1048. # ident = "fakeident";
  1049. # userident = yes/no;
  1050. # ignoreident = yes/no;
  1051. # stripsslfp = yes/no;
  1052. # description = "description";
  1053. # };
  1054. #
  1055. # The host and password fields take the same formats as in the Client block.
  1056. # The host field is matched against the host mask of the client attempting
  1057. # to use the WEBIRC command. The ident field is optional and if specified
  1058. # is used as if it were the reply from the users identd. The ignoreident
  1059. # option causes any identd reply already received to be ignored. The
  1060. # userident option uses the USER user name as if it were an identd reply if
  1061. # none was received or if ignoreident is set to yes. The description field is
  1062. # a short line of text to be added to the user's WHOIS to mark them as a
  1063. # WEBIRC user. If the client issuing the WEBIRC command uses an SSL client
  1064. # certificate then stripsslfp should be set to yes.
  1065. #
  1066. # Example:
  1067. # WebIRC {
  1068. # host = "*@127.0.0.1";
  1069. # password = "$PLAIN$kg533n6xVI";
  1070. # };
  1071.  
  1072. # [Except]
  1073. # These blocks allow you to exempt matching clients from various
  1074. # restrictions or checks.
  1075. #
  1076. # Except {
  1077. # host = "user@host";
  1078. # shun = yes/no;
  1079. # kline = yes/no;
  1080. # gline = yes/no;
  1081. # ident = yes/no;
  1082. # rdns = yes/no;
  1083. # ipcheck = yes/no;
  1084. # targetlimit = yes/no;
  1085. # };
  1086. #
  1087. # The host field is used to specify a user@host mask to select clients to
  1088. # apply the exemptions to. For some exemption types such as ipcheck, ident and
  1089. # rdns, you can only specify a mask of *@<ip> or *@<cidr> as neither ident nor
  1090. # rDNS checks have been performed when exceptions have been checked. The kline
  1091. # type exempts users from Kill blocks in ircd.conf that the client matches.
  1092. # The gline and shun types exempt matching clients from glines and shuns
  1093. # respectively. The ident and rdns types stop the IRCd from performing ident
  1094. # and reverse DNS lookups for matching clients. The ipcheck type exempts
  1095. # matching clients from connection throttling and IP limits. The targetlimit
  1096. # type exempts matching clients from the message target limits.
  1097.  
  1098. # [features]
  1099. # IRC servers have a large number of options and features. Most of these
  1100. # are set at compile time through the use of #define's--see "make config"
  1101. # for more details--but we are working to move many of these into the
  1102. # configuration file. Features let you configure these at runtime.
  1103. # You only need one feature block in which you use
  1104. # "featurename" = "value1" , "value2", ..., "valuen-1", "valuen";
  1105. #
  1106. # The entire purpose of F:lines are so that you do not have to recompile
  1107. # the IRCD everytime you want to change a feature. All of the features
  1108. # are listed below, and at the bottom is how to set logging.
  1109. #
  1110. # A Special Thanks to Kev for writing the documentation of F:lines. It can
  1111. # be found at doc/readme.features and the logging documentation can be
  1112. # found at doc/readme.log. The defaults used by the Undernet network are
  1113. # below.
  1114. #
  1115. features
  1116. {
  1117. # These log features are the only way to get certain error messages
  1118. # (such as when the server dies from being out of memory). For more
  1119. # explanation of how they work, see doc/readme.log.
  1120. "LOG" = "SYSTEM" "FILE" "ircd.log";
  1121. "LOG" = "SYSTEM" "LEVEL" "CRIT";
  1122. # "DOMAINNAME"="<obtained from /etc/resolv.conf by ./configure>";
  1123. # "RELIABLE_CLOCK"="FALSE";
  1124. # "BUFFERPOOL"="27000000";
  1125. # "HAS_FERGUSON_FLUSHER"="FALSE";
  1126. # "CLIENT_FLOOD"="1024";
  1127. # "SERVER_PORT"="4400";
  1128. # "NODEFAULTMOTD"="TRUE";
  1129. # "MOTD_BANNER"="";
  1130. # "KILL_IPMISMATCH"="FALSE";
  1131. # "IDLE_FROM_MSG"="TRUE";
  1132. # "HUB"="FALSE";
  1133. # "WALLOPS_OPER_ONLY"="FALSE";
  1134. # "NODNS"="FALSE";
  1135. # "RANDOM_SEED"="<you should set one explicitly>";
  1136. # "DEFAULT_LIST_PARAM"="";
  1137. # "NICKNAMEHISTORYLENGTH"="800";
  1138. # "NETWORK"="UnderNet";
  1139. # "HOST_HIDING"="FALSE";
  1140. # "HIDDEN_HOST"="users.undernet.org";
  1141. # "HIDDEN_IP"="127.0.0.1";
  1142. # "KILLCHASETIMELIMIT"="30";
  1143. # "MAXCHANNELSPERUSER"="10";
  1144. # "NICKLEN" = "12";
  1145. # "AVBANLEN"="40";
  1146. # "MAXBANS"="50";
  1147. # "MAXSILES"="15";
  1148. # "HANGONGOODLINK"="300";
  1149. # "HANGONRETRYDELAY" = "10";
  1150. # "CONNECTTIMEOUT" = "90";
  1151. # "MAXIMUM_LINKS" = "1";
  1152. # "PINGFREQUENCY" = "120";
  1153. # "CONNECTFREQUENCY" = "600";
  1154. # "DEFAULTMAXSENDQLENGTH" = "40000";
  1155. # "GLINEMAXUSERCOUNT" = "20";
  1156. # "MPATH" = "ircd.motd";
  1157. # "RPATH" = "remote.motd";
  1158. # "PPATH" = "ircd.pid";
  1159. # "TOS_SERVER" = "0x08";
  1160. # "TOS_CLIENT" = "0x08";
  1161. # "POLLS_PER_LOOP" = "200";
  1162. # "IRCD_RES_TIMEOUT" = "4";
  1163. # "IRCD_RES_RETRIES" = "2";
  1164. # "AUTH_TIMEOUT" = "9";
  1165. # "IPCHECK_CLONE_LIMIT" = "4";
  1166. # "IPCHECK_CLONE_PERIOD" = "40";
  1167. # "IPCHECK_CLONE_DELAY" = "600";
  1168. # "CHANNELLEN" = "200";
  1169. # "CONFIG_OPERCMDS" = "TRUE";
  1170. # "OPLEVELS" = "TRUE";
  1171. # "ZANNELS" = "TRUE";
  1172. # "LOCAL_CHANNELS" = "TRUE";
  1173. # "ANNOUNCE_INVITES" = "FALSE";
  1174. # These were introduced by Undernet CFV-165 to add "Head-In-Sand" (HIS)
  1175. # behavior to hide most network topology from users.
  1176. # "HIS_SNOTICES" = "TRUE";
  1177. # "HIS_SNOTICES_OPER_ONLY" = "TRUE";
  1178. # "HIS_DEBUG_OPER_ONLY" = "TRUE";
  1179. # "HIS_WALLOPS" = "TRUE";
  1180. # "HIS_MAP" = "TRUE";
  1181. # "HIS_LINKS" = "TRUE";
  1182. # "HIS_TRACE" = "TRUE";
  1183. # "HIS_STATS_a" = "TRUE";
  1184. # "HIS_STATS_c" = "TRUE";
  1185. # "HIS_STATS_d" = "TRUE";
  1186. # "HIS_STATS_e" = "TRUE";
  1187. # "HIS_STATS_f" = "TRUE";
  1188. # "HIS_STATS_g" = "TRUE";
  1189. # "HIS_STATS_i" = "TRUE";
  1190. # "HIS_STATS_j" = "TRUE";
  1191. # "HIS_STATS_J" = "TRUE";
  1192. # "HIS_STATS_k" = "TRUE";
  1193. # "HIS_STATS_l" = "TRUE";
  1194. # "HIS_STATS_L" = "TRUE";
  1195. # "HIS_STATS_m" = "TRUE";
  1196. # "HIS_STATS_M" = "TRUE";
  1197. # "HIS_STATS_o" = "TRUE";
  1198. # "HIS_STATS_p" = "TRUE";
  1199. # "HIS_STATS_q" = "TRUE";
  1200. # "HIS_STATS_r" = "TRUE";
  1201. # "HIS_STATS_R" = "TRUE";
  1202. # "HIS_STATS_S" = "TRUE";
  1203. # "HIS_STATS_t" = "TRUE";
  1204. # "HIS_STATS_T" = "TRUE";
  1205. # "HIS_STATS_u" = "FALSE";
  1206. # "HIS_STATS_U" = "TRUE";
  1207. # "HIS_STATS_v" = "TRUE";
  1208. # "HIS_STATS_w" = "TRUE";
  1209. # "HIS_STATS_x" = "TRUE";
  1210. # "HIS_STATS_y" = "TRUE";
  1211. # "HIS_STATS_z" = "TRUE";
  1212. # "HIS_STATS_IAUTH" = "TRUE";
  1213. # "HIS_WHOIS_SERVERNAME" = "TRUE";
  1214. # "HIS_WHOIS_IDLETIME" = "TRUE";
  1215. # "HIS_WHOIS_LOCALCHAN" = "TRUE";
  1216. # "HIS_WHO_SERVERNAME" = "TRUE";
  1217. # "HIS_WHO_HOPCOUNT" = "TRUE";
  1218. # "HIS_MODEWHO" = "TRUE";
  1219. # "HIS_BANWHO" = "TRUE";
  1220. # "HIS_KILLWHO" = "FALSE";
  1221. # "HIS_REWRITE" = "TRUE";
  1222. # "HIS_REMOTE" = "TRUE";
  1223. # "HIS_NETSPLIT" = "TRUE";
  1224. # "HIS_SERVERNAME" = "*.undernet.org";
  1225. # "HIS_SERVERINFO" = "The Undernet Underworld";
  1226. # "HIS_URLSERVERS" = "http://www.undernet.org/servers.php";
  1227. # "URLREG" = "http://cservice.undernet.org/live/";
  1228. # "CHECK" = "TRUE";
  1229. # "CHECK_EXTENDED" = "TRUE";
  1230. # "MAX_CHECK_OUTPUT" = "1000";
  1231. # "OPER_WHOIS_PARANOIA" = "FALSE";
  1232. # "OPER_HIDE" = "FALSE";
  1233. # "AUTOCHANMODES" = "FALSE";
  1234. # "AUTOCHANMODES_LIST" = "";
  1235. # "UHNAMES" = "TRUE";
  1236. # "RESTARTPASS" = "";
  1237. # "DIEPASS" = "";
  1238. # "HIS_STATS_W" = "TRUE";
  1239. # "WHOIS_OPER" = "is an IRC Operator";
  1240. # "WHOIS_SERVICE" = "is a Network Service";
  1241. # "TARGET_LIMITING" = "TRUE";
  1242. # "OPER_XTRAOP" = "FALSE";
  1243. # "OPERMOTD" = "FALSE";
  1244. # "RULES" = "FALSE";
  1245. # "DISABLE_SHUNS" = FALSE";
  1246. # "SHUNMAXUSERCOUNT" = "20";
  1247. # "HIS_SHUN_REASON" = "TRUE";
  1248. # "HIS_GLINE_REASON" = "FALSE";
  1249. # "NOIDENT" = "FALSE";
  1250. # "EXTENDED_ACCOUNTS" = "TRUE";
  1251. # "LOGIN_ON_CONNECT" = "FALSE";
  1252. # "LOC_SENDHOST" = "FALSE";
  1253. # "LOC_SENDSSLFP" = "FALSE";
  1254. # "LOC_DEFAULT_SERVICE" = "AuthServ";
  1255. # "LOC_TIMEOUT" = "3";
  1256. # "STRICTUSERNAME" = "FALSE";
  1257. # "APASS_CANSEND" = "FALSE";
  1258. # "HOST_IN_TOPIC" = "TRUE";
  1259. # "HIS_STATS_s" = "TRUE";
  1260. # "SETHOST" = "TRUE";
  1261. # "FLEXIBLEKEYS" = "FALSE";
  1262. # "HIS_STATS_E" = "TRUE";
  1263. # "SASL_SERVER" = "*";
  1264. # "LISTDELAY" = "15";
  1265. # "ALLOW_OPLEVEL_CHANGE" = "FALSE";
  1266. # "NETWORK_REHASH" = "TRUE";
  1267. # "LIST_SHOWMODES_OPERONLY" = "FALSE";
  1268. # "LIST_PRIVATE_CHANNELS" = "";
  1269. # "MAXWATCHS" = "128";
  1270. # "HIS_STATS_Z" = "TRUE";
  1271. # "SASL_TIMEOUT" = "8";
  1272. # "NOMULTITARGETS" = "FALSE";
  1273. # "HIS_IRCOPS" = "TRUE";
  1274. # "HIS_IRCOPS_SERVERS" = "TRUE";
  1275. # "SASL_SENDHOST" = "TRUE";
  1276. # "SASL_AUTOHIDEHOST" = "TRUE";
  1277. # "SNOMASK_DEFAULT" = "1540";
  1278. # "SNOMASK_OPERDEFAULT" = "5645";
  1279. # "TPATH" = "ircd.tune";
  1280. # "CHMODE_m_NONICKCHANGE" = "TRUE";
  1281. # "CHMODE_r_NONICKCHANGE" = "TRUE";
  1282. # "SILENCE_CHANMSGS" = "TRUE";
  1283. # "CHANNEL_CREATE_IRCOPONLY" = "FALSE";
  1284. # "CHMODE_a" = "TRUE";
  1285. # "CHMODE_c" = "TRUE";
  1286. # "CHMODE_C" = "TRUE";
  1287. # "CHMODE_L" = "TRUE";
  1288. # "CHMODE_M" = "TRUE";
  1289. # "CHMODE_N" = "TRUE";
  1290. # "CHMODE_O" = "TRUE";
  1291. # "CHMODE_Q" = "TRUE";
  1292. # "CHMODE_S" = "TRUE";
  1293. # "CHMODE_T" = "TRUE";
  1294. # "CHMODE_Z" = "TRUE";
  1295. # "HALFOPS" = "FALSE";
  1296. # "EXCEPTS" = "FALSE";
  1297. # "MAXEXCEPTS" = "45";
  1298. # "AVEXCEPTLEN" = "40";
  1299. # "CHMODE_e_CHMODEEXCEPTION" = "FALSE";
  1300. # "HALFOP_DEHALFOP_SELF" = "FALSE";
  1301. # "CHMODE_Z_STRICT" = "TRUE";
  1302. # "MAX_BOUNCE" = "5";
  1303. # "EXTBANS" = "TRUE";
  1304. # "EXTBAN_j_MAXDEPTH" = "1";
  1305. # "EXTBAN_j_MAXPERCHAN" = "2";
  1306. # "EXTBAN_a" = "TRUE";
  1307. # "EXTBAN_c" = "TRUE";
  1308. # "EXTBAN_j" = "TRUE";
  1309. # "EXTBAN_n" = "TRUE";
  1310. # "EXTBAN_q" = "TRUE";
  1311. # "EXTBAN_r" = "TRUE";
  1312. # "EXTBAN_m" = "TRUE";
  1313. # "EXTBAN_M" = "TRUE";
  1314. # "OMPATH" = "ircd.opermotd";
  1315. # "EPATH" = "ircd.rules";
  1316. # "HIDDEN_HOST_QUIT" = "TRUE";
  1317. # "HIDDEN_HOST_SET_MESSAGE" = "Registered";
  1318. # "HIDDEN_HOST_UNSET_MESSAGE" = "UnRegistered";
  1319. # "ALLOWRMX" = "FALSE";
  1320. # "OPERHOST_HIDING" = "TRUE";
  1321. # "HIDDEN_OPERHOST" = "Staff.Nefarious";
  1322. # "HOST_HIDING_STYLE" = "1";
  1323. # "HOST_HIDING_PREFIX" = "Nefarious";
  1324. # "HOST_HIDING_KEY1" = "aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
  1325. # "HOST_HIDING_KEY2" = "sdfjkLJKHlkjdkfjsdklfjlkjKLJ";
  1326. # "HOST_HIDING_KEY3" = "KJklJSDFLkjLKDFJSLKjlKJFlkjS";
  1327. # "HOST_HIDING_COMPONENTS" = "1";
  1328. # "CTCP_VERSIONING" = "FALSE";
  1329. # "CTCP_VERSIONING_KILL" = "FALSE";
  1330. # "CTCP_VERSIONING_CHAN" = "FALSE";
  1331. # "CTCP_VERSIONING_CHANNAME" = "#opers";
  1332. # "CTCP_VERSIONING_USEMSG" = "FALSE";
  1333. # "CTCP_VERSIONING_NOTICE" = "*** Checking your client version";
  1334. # "GEOIP_ENABLE" = "FALSE";
  1335. # "GEOIP_FILE" = "GeoIP.dat";
  1336. # "GEOIP_IPV6_FILE" = "GeoIPv6.dat";
  1337. # "SSL_CERTFILE" = "ircd.pem";
  1338. # "SSL_KEYFILE" = "ircd.pem";
  1339. # "SSL_CACERTFILE" = "";
  1340. # "SSL_VERIFYCERT" = "FALSE";
  1341. # "SSL_NOSELFSIGNED" = "FALSE";
  1342. # "SSL_REQUIRECLIENTCERT" = "FALSE";
  1343. # "SSL_NOSSLV2" = "TRUE";
  1344. # "SSL_NOSSLv3" = "TRUE";
  1345. # "SSL_NOTLSV1" = "TRUE";
  1346. # "SSL_CIPHERS" = "";
  1347. # "DISABLE_ZLINES" = "FALSE";
  1348. # "HIS_ZLINE_REASON" = "FALSE";
  1349. # "ZLINEMAXUSERCOUNT" = "20";
  1350. # "CAP_multi_prefix" = "TRUE";
  1351. # "CAP_userhost_in_names" = "TRUE";
  1352. # "CAP_extended_join" = "TRUE";
  1353. # "CAP_away_notify" = "TRUE";
  1354. # "CAP_account_notify" = "TRUE";
  1355. # "CAP_sasl" = "TRUE";
  1356. # "CAP_tls" = "TRUE";
  1357. # "CONNEXIT_NOTICES" = "FALSE";
  1358. # "UPING_ENABLE" = "TRUE";
  1359. # "UPING_PORT" = "7007";
  1360. };
  1361.  
  1362. # Well, you have now reached the end of this sample configuration
  1363. # file. If you have any questions, feel free to mail
  1364. # <coder-com@undernet.org>. If you are interested in linking your
  1365. # server to the Undernet IRC network visit
  1366. # http://www.routing-com.undernet.org/, and if there are any
  1367. # problems then contact <routing-com@undernet.org> asking for
  1368. # information. Upgrades of the Undernet ircd can be found on
  1369. # http://coder-com.undernet.org/.
  1370. #
  1371. # For the rest: Good Luck!# ircd.conf - configuration file for ircd version ircu2.10
  1372. #
  1373. # Last Updated: 20, March 2002.
  1374. #
  1375. # Written by Niels <niels@undernet.org>, based on the original example.conf,
  1376. # server code and some real-life (ahem) experience.
  1377. #
  1378. # Updated and heavily modified by Braden <dbtem@yahoo.com>.
  1379. #
  1380. # Rewritten by A1kmm(Andrew Miller)<a1kmm@mware.virtualave.net> to support
  1381. # the new flex/bison configuration parser.
  1382. #
  1383. # Thanks and credits to: Run, Trillian, Cym, Morrissey, Chaos, Flynn,
  1384. # Xorath, WildThang, Mmmm, SeKs, Ghostwolf and
  1385. # all other Undernet IRC Admins and Operators,
  1386. # and programmers working on the Undernet ircd.
  1387. #
  1388. # This is an example of the configuration file used by the Undernet ircd.
  1389. #
  1390. # This document is based on a (fictious) server in Europe with a
  1391. # connection to the Undernet IRC network. It is primarily a leaf server,
  1392. # but if all the other hubs in Europe aren't in service, it can connect
  1393. # to one in the US by itself.
  1394. #
  1395. # The configuration format consists of a number of blocks in the format
  1396. # BlockName { setting = number; setting2 = "string"; setting3 = yes; };
  1397. # Note that comments start from a #(hash) and go to the end of the line.
  1398. # Whitespace(space, tab, or carriage return/linefeed) are ignored and may
  1399. # be used to make the configuration file more readable.
  1400. #
  1401. # Please note that when ircd puts the configuration lines into practice,
  1402. # it parses them exactly the other way round than they are listed here.
  1403. # It uses the blocks in reverse order.
  1404. #
  1405. # This means that you should start your Client blocks with the
  1406. # "fall through", most vanilla one, and end with the most detailed.
  1407. #
  1408. # There is a difference between the "hostname" and the "server name"
  1409. # of the machine that the server is run on. For example, the host can
  1410. # have "veer.cs.vu.nl" as FQDN, and "Amsterdam.NL.EU.undernet.org" as
  1411. # server name.
  1412. # A "server mask" is something like "*.EU.UnderNet.org", which is
  1413. # matched by "Amsterdam.NL.EU.undernet.org" but not by
  1414. # "Manhattan.KS.US.undernet.org".
  1415. #
  1416. # Please do NOT just rename the example.conf to ircd.conf and expect
  1417. # it to work.
  1418.  
  1419. # [Include]
  1420. #
  1421. # Include the contents of the specified file.
  1422. #
  1423. # Include "path/to/include/file";
  1424.  
  1425. # [General]
  1426. #
  1427. # First some information about the server.
  1428. # General {
  1429. # name = "ViewDNS";
  1430. # vhost = "irc.viewdns.net";
  1431. # vhost = "irc.viewdns.net";
  1432. # description = "ViewDNS Network";
  1433. # numeric = 4;
  1434. # dns vhost = "irc.viewdns.net";
  1435. # dns vhost = "irc.viewdns.net";
  1436. # dns server = "192.168.245.132";
  1437. # dns server = "192.168.245.132";
  1438. # };
  1439. #
  1440. # If present, <virtual host> must contain a valid address in dotted
  1441. # quad or IPv6 numeric notation (127.0.0.1 or ::1). The address MUST
  1442. # be the address of a physical interface on the host. This address is
  1443. # used for outgoing connections if the Connect{} block does not
  1444. # override it. See Port{} for listener virtual hosting. If in doubt,
  1445. # leave it out -- or use "*", which has the same meaning as no vhost.
  1446. #
  1447. # You may specify both an IPv4 virtual host and an IPv6 virtual host,
  1448. # to indicate which address should be used for outbound connections
  1449. # of the respective type.
  1450. #
  1451. # Note that <server numeric> has to be unique on the network your server
  1452. # is running on, must be between 0 and 4095, and is not updated on a rehash.
  1453. #
  1454. # The two DNS lines allow you to specify the local IP address to use
  1455. # for DNS lookups ("dns vhost") and one or more DNS server addresses
  1456. # to use. If the vhost is ambiguous for some reason, you may list
  1457. # IPV4 and/or IPV6 between the equals sign and the address string.
  1458. # The default DNS vhost is to let the operating system assign the
  1459. # address, and the default DNS servers are read from /etc/resolv.conf.
  1460. # In most cases, you do not need to specify either the dns vhost or
  1461. # the dns server.
  1462. General {
  1463. name = "London.UK.Eu.UnderNet.org";
  1464. description = "University of London, England";
  1465. numeric = 1;
  1466. };
  1467.  
  1468. # [Admin]
  1469. #
  1470. # This sets information that can be retrieved with the /ADMIN command.
  1471. # It should contain at least an admin Email contact address.
  1472. Admin {
  1473. # At most two location lines are allowed...
  1474. Location = "The University of London";
  1475. Location = "Undernet IRC server";
  1476. Contact = "IRC Admins <irc@london.ac.uk>";
  1477. };
  1478.  
  1479. # [Classes]
  1480. #
  1481. # All connections to the server are associated with a certain "connection
  1482. # class", be they incoming or outgoing (initiated by the server), be they
  1483. # clients or servers.
  1484. #
  1485. # Class {
  1486. # name = "<class>";
  1487. # pingfreq = time;
  1488. # connectfreq = time;
  1489. # maxlinks = number;
  1490. # maxchans = number;
  1491. # sendq = size;
  1492. # recvq = size;
  1493. # usermode = "+i";
  1494. # snomask = number;
  1495. # fakelagminimum = number;
  1496. # fakelagfactor = number;
  1497. # autojoinchannel = "channellist";
  1498. # autojoinnotice = "autojoinnotice";
  1499. # restrict_join = yes/no;
  1500. # restrict_privmsg = yes/no;
  1501. # restrict_umode = yes/no;
  1502. # };
  1503. #
  1504. # For connection classes used on server links, maxlinks should be set
  1505. # to either 0 (for hubs) or 1 (for leaf servers). Client connection
  1506. # classes may use maxlinks between 0 and approximately 4,000,000,000.
  1507. # maxlinks = 0 means there is no limit on the number of connections
  1508. # using the class.
  1509. #
  1510. # <connect freq> applies only to servers, and specifies the frequency
  1511. # that the server tries to autoconnect. setting this to 0 will cause
  1512. # the server to attempt to connect repeatedly with no delay until the
  1513. # <maximum links> condition is satisfied. This is a Bad Thing(tm).
  1514. # Note that times can be specified as a number, or by giving something
  1515. # like: 1 minutes 20 seconds, or 1*60+20.
  1516. #
  1517. # <snomask> applies only to classes used for Operator blocks and is
  1518. # used to specify the server notice mask an oper gets when he/she uses
  1519. # /oper. See doc/snomask.txt or doc/snomask.html for details on what
  1520. # this number means.
  1521. #
  1522. # <fakelagminimum> is the minimum number of seconds to wait before
  1523. # processing commands received from clients.
  1524. #
  1525. # <fakelagfactor> is a number to devide the message length by to
  1526. # determine addtional fake lag to apply. If set to 0 (zero) the user
  1527. # will not be subject to fake lag at all.
  1528. #
  1529. # <autojoinchannel> can be specified to automatically join users of the
  1530. # class into. If <autojoinnotice> is specified then a notice is sent
  1531. # to the user when automatically joined.
  1532. #
  1533. # <restrict_join> when enabled restricts users in the class from joining
  1534. # any channel with the exception of channels specified in the
  1535. # autojoinchannel class option.
  1536. #
  1537. # <restrict_privmsg> when enabled prevents users in the class from
  1538. # sending PRIVMSG or NOTICE to other users who are not on the same
  1539. # channel as the user.
  1540. #
  1541. # <restrict_umode> when enabled prevents users in the class from
  1542. # changing their user modes.
  1543. #
  1544. # Recommended server classes:
  1545. # All your server uplinks you are not a hub for.
  1546. Class {
  1547. name = "Server";
  1548. pingfreq = 1 minutes 30 seconds;
  1549. connectfreq = 5 minutes;
  1550. maxlinks = 1;
  1551. sendq = 9000000;
  1552. };
  1553. # All the leaf servers you hub for.
  1554. Class {
  1555. name = "LeafServer";
  1556. pingfreq = 1 minutes 30 seconds;
  1557. connectfreq = 5 minutes;
  1558. maxlinks = 0;
  1559. sendq = 9000000;
  1560. };
  1561.  
  1562. # Client {
  1563. # username = "ident";
  1564. # host = "host";
  1565. # ip = "127.0.0.0/8";
  1566. # password = "password";
  1567. # class = "classname";
  1568. # maxlinks = 3;
  1569. # };
  1570. #
  1571. # Everything in a Client block is optional. If a username mask is
  1572. # given, it must match the client's username from the IDENT protocol.
  1573. # If a host mask is given, the client's hostname must resolve and
  1574. # match the host mask. If a CIDR-style IP mask is given, the client
  1575. # must have an IP matching that range. If maxlinks is given, it is
  1576. # limits the number of matching clients allowed from a particular IP
  1577. # address.
  1578. #
  1579. # Take the following class blocks only as a guide.
  1580. Class {
  1581. name = "Local";
  1582. pingfreq = 1 minutes 30 seconds;
  1583. sendq = 160000;
  1584. maxlinks = 100;
  1585. usermode = "+iw";
  1586. };
  1587. Class {
  1588. name = "America";
  1589. pingfreq = 1 minutes 30 seconds;
  1590. sendq = 80000;
  1591. maxlinks = 5;
  1592. };
  1593. Class {
  1594. name = "Other";
  1595. pingfreq = 1 minutes 30 seconds;
  1596. sendq = 160000;
  1597. maxlinks = 400;
  1598. };
  1599. Class {
  1600. name = "Opers";
  1601. pingfreq = 1 minutes 30 seconds;
  1602. sendq = 160000;
  1603. maxlinks = 10;
  1604.  
  1605. # For connection classes intended for operator use, you can specify
  1606. # privileges used when the Operator block (see below) names this
  1607. # class. The local (aka globally_opered) privilege MUST be defined
  1608. # by either the Class or Operator block. The following privileges
  1609. # exist:
  1610. #
  1611. # local (or propagate, with the opposite sense)
  1612. # whox (log oper's use of x flag with /WHO)
  1613. # display (oper status visible to lusers)
  1614. # chan_limit (can join local channels when in
  1615. # MAXCHANNELSPERUSER channels)
  1616. # mode_lchan (can /MODE &channel without chanops)
  1617. # deop_lchan (cannot be deopped or kicked on local channels)
  1618. # walk_lchan (can forcibly /JOIN &channel OVERRIDE)
  1619. # show_invis (see +i users in /WHO x)
  1620. # show_all_invis (see +i users in /WHO x)
  1621. # unlimit_query (show more results from /WHO)
  1622. # local_kill (can kill clients on this server)
  1623. # rehash (can use /REHASH)
  1624. # restart (can use /RESTART)
  1625. # die (can use /DIE)
  1626. # local_jupe (not used)
  1627. # set (can use /SET)
  1628. # local_gline (can set a G-line for this server only)
  1629. # local_badchan (can set a Gchan for this server only)
  1630. # local_jupe (can set a Jupe for this server only)
  1631. # local_shun (can set a Shun for this server only)
  1632. # see_chan (can see users in +s channels in /WHO)
  1633. # list_chan (can see +s channels with /LIST S, or modes with /LIST M)
  1634. # wide_gline (can use ! to force a wide G-line)
  1635. # wide_shun (can use ! to force a wide Shun)
  1636. # see_opers (can see opers without DISPLAY privilege)
  1637. # local_opmode (can use OPMODE/CLEARMODE on local channels)
  1638. # force_local_opmode (can use OPMODE/CLEARMODE on quarantined local channels)
  1639. # kill (can kill clients on other servers)
  1640. # gline (can issue G-lines to other servers)
  1641. # jupe (can issue Jupes to other servers)
  1642. # shun (can issue Shuns to other servers)
  1643. # opmode (can use /OPMODE)
  1644. # badchan (can issue Gchans to other servers)
  1645. # force_opmode (can use OPMODE/CLEARMODE on quarantined global channels)
  1646. # apass_opmode (can use OPMODE/CLEARMODE on +A and +U keys)
  1647. # check (can use /CHECK)
  1648. # whois_notice (can set user mode +W)
  1649. # hide_oper (can set user mode +H)
  1650. # hide_channels (can set user mode +n)
  1651. # hide_idle (can set user mode +I)
  1652. # admin (gets user mode +a and can set/unset it too)
  1653. # xtraop (can set user mode +X)
  1654. # service (can set user mode +k)
  1655. # remote (can use associated operator block from a remote server)
  1656. # freeform (can use /SETHOST to apply a spoofhost not configured with a Spoofhost block)
  1657. # remoterehash (can use /REHASH to rehash remote servers)
  1658. # remove (can use /REMOVE to remove glines and shuns by force)
  1659. # local_zline (can set a Z-line for this server only)
  1660. # zline (can issue Z-lines to other servers)
  1661. # wide_zline (can use ! to force a wide Z-line)
  1662. #
  1663. # For global opers (with propagate = yes or local = no), the default
  1664. # is to grant all of the above privileges EXCEPT walk_lchan,
  1665. # unlimit_query, set, badchan, local_badchan, apass_opmode,
  1666. # whois_notice, hide_oper, hide-channels, hide_idle, admin, xtraop,
  1667. # service, remote, freeform and remove.
  1668. # For local opers, the default is to grant ONLY the following
  1669. # privileges:
  1670. # chan_limit, mode_lchan, show_invis, show_all_invis, local_kill,
  1671. # rehash, local_gline, local_jupe, local_opmode, whox, display,
  1672. # force_local_opmode, local_shun and local_zline
  1673. # Any privileges listed in a Class block override the defaults.
  1674.  
  1675. local = no;
  1676. };
  1677. # [Client]
  1678. #
  1679. # To allow clients to connect, they need authorization. This can be
  1680. # done based on hostmask, address mask, and/or with a password.
  1681. # With intelligent use of classes and the maxconnections field in the
  1682. # Client blocks, you can let in a specific domain, but get rid of all other
  1683. # domains in the same toplevel, thus setting up some sort of "reverse
  1684. # Kill block".
  1685. # Client {
  1686. # host = "user@host";
  1687. # ip = "user@ip";
  1688. # password = "password";
  1689. # class = "classname";
  1690. # sslfp = "sslfingerprint";
  1691. # noidenttilde = yes/no;
  1692. # hidehostcomponents = number;
  1693. # autojoinchannel = "channellist";
  1694. # autojoinnotice = "autojoinnotice";
  1695. # };
  1696. #
  1697. # Technical description (for examples, see below):
  1698. # For every connecting client, the IP address is known. A reverse lookup
  1699. # on this IP-number is done to get the (/all) hostname(s).
  1700. # Each hostname that belongs to this IP-number is matched to <hostmask>,
  1701. # and the Client {} is used when any matches; the client will then show
  1702. # with this particular hostname. If none of the hostnames match, then
  1703. # the IP-number is matched against the <IP mask ...> field, if this matches
  1704. # then the Client{} is used nevertheless and the client will show with the
  1705. # first (main) hostname if any; if the IP-number did not resolve then the
  1706. # client will show with the dot notation of the IP-number.
  1707. # There is a special case for the UNIX domain sockets and localhost connections
  1708. # though; in this case the <IP mask ...> field is compared with the
  1709. # name of the server (thus not with any IP-number representation). The name
  1710. # of the server is the one returned in the numeric 002 reply, for example:
  1711. # 002 Your host is 2.undernet.org[jolan.ppro], running version ...
  1712. # Then the "jolan.ppro" is the name used for matching.
  1713. # Therefore, unix domain sockets, and connections to localhost would
  1714. # match this block:
  1715. # host = "*@jolan.ppro";
  1716. #
  1717. # This is the "fallback" entry. All .uk, .nl, and all unresolved are
  1718. # in these two lines.
  1719. # By using two different lines, multiple connections from a single IP
  1720. # are only allowed from hostnames which have both valid forward and
  1721. # reverse DNS mappings.
  1722. Client
  1723. {
  1724. class = "Other";
  1725. ip = "*@*";
  1726. maxlinks = 2;
  1727. };
  1728.  
  1729.  
  1730. Client
  1731. {
  1732. class = "Other";
  1733. host = "*@*";
  1734. maxlinks = 2;
  1735. };
  1736. # If you don't want unresolved dudes to be able to connect to your
  1737. # server, do not specify any "ip = " settings.
  1738. #
  1739. # Here, take care of all American ISPs.
  1740. Client
  1741. {
  1742. host = "*@*.com";
  1743. class = "America";
  1744. maxlinks = 2;
  1745. };
  1746.  
  1747. Client
  1748. {
  1749. host = "*@*.net";
  1750. class = "America";
  1751. maxlinks = 2;
  1752. };
  1753. # Now list all the .com / .net domains that you wish to have access...
  1754. # actually it's less work to do it this way than to do it the other
  1755. # way around - K-lining every single ISP in the US.
  1756. # I wish people in Holland just got a .nl domain, and not try to be
  1757. # cool and use .com...
  1758. Client { host = "*@*.wirehub.net"; class = "Other"; maxlinks=2; };
  1759. Client { host = "*@*.planete.net"; class = "Other"; maxlinks=2; };
  1760. Client { host = "*@*.ivg.com"; class = "Other"; maxlinks=2; };
  1761. Client { host = "*@*.ib.com"; class = "Other"; maxlinks=2; };
  1762. Client { host = "*@*.ibm.net"; class = "Other"; maxlinks=2; };
  1763. Client { host = "*@*.hydro.com"; class = "Other"; maxlinks=2; };
  1764. Client { host = "*@*.nl.net"; class = "Local"; maxlinks=2; };
  1765.  
  1766. # You can request a more complete listing, including the "list of standard
  1767. # Kill blocks" from the Routing Committee; it will also be sent to you if
  1768. # you apply for a server and get accepted.
  1769. #
  1770. # Ourselves - this makes sure that we can get in, no matter how full
  1771. # the server is (hopefully).
  1772. Client
  1773. {
  1774. host = "*@*.london.ac.uk";
  1775. ip = "*@193.37.*";
  1776. class = "Local";
  1777. # A maxlinks of over 5 will automatically be glined by euworld on Undernet
  1778. maxlinks = 5;
  1779. };
  1780.  
  1781. # You can put an expression in the maxlinks value, which will make ircd
  1782. # only accept a client when the total number of connections to the network
  1783. # from the same IP number doesn't exceed this number.
  1784. # The following example would accept at most one connection per IP number
  1785. # from "*.swipnet.se" and at most two connections from dial up accounts
  1786. # that have "dial??.*" as host mask:
  1787. # Client {
  1788. # host = "*@*.swipnet.se";
  1789. # maxlinks = 1;
  1790. # class = "Other";
  1791. # };
  1792. # Client {
  1793. # host = "*@dial??.*";
  1794. # maxlinks = 2;
  1795. # class = "Other";
  1796. # };
  1797. #
  1798. # If you are not worried about who connects, this line will allow everyone
  1799. # to connect.
  1800. Client {
  1801. host = "*@*";
  1802. ip = "*@*";
  1803. class = "Other";
  1804. maxlinks = 2;
  1805. };
  1806.  
  1807. # You can additionally specify either a country code or continent code
  1808. # using the country or continent fields for a Client block to be matched
  1809. # by.
  1810. # Client {
  1811. # country = "GB";
  1812. # class = "Local";
  1813. # };
  1814.  
  1815. # You can also specify an SSL client certificate fingerprint for a Client
  1816. # block as an alternative, or addition to the password for authentication.
  1817. # Client {
  1818. # host "*@*";
  1819. # ip = "*@*";
  1820. # class = "Other";
  1821. # sslfp = "61D0720B27D8AED9C0A7CB788091B0D8D9A94E119D5118E574B70EECD41B3C26";
  1822. # };
  1823.  
  1824. # You can disable the '~' prefix applied to users with no ident reply by
  1825. # setting noidenttilde to 'no' (default: 'yes').
  1826. # Client {
  1827. # host = "*@*";
  1828. # ip = "*@*";
  1829. # class = "Other";
  1830. # noidenttilde = no;
  1831. # }
  1832.  
  1833. # You can specify a server (and optionally a port) that a client should be advised
  1834. # to reconnect to using the 'redirect' option. If a port is not specified then
  1835. # 6667 is used.
  1836. #
  1837. # Client {
  1838. # host = "*@*";
  1839. # ip = "*@*";
  1840. # class = "Other";
  1841. # redirect = "some.other.server.com" 6667;
  1842. # };
  1843.  
  1844. # You can specify the number of host name components to hide when using
  1845. # HOST_HIDING_STYLE 2 or 3 by adding the hidehostcomponents option to a Client
  1846. # block.
  1847. #
  1848. # Client {
  1849. # host = "*@*";
  1850. # ip = "*@*";
  1851. # class = "Other";
  1852. # hidehostcomponents = 2;
  1853. # };
  1854.  
  1855. # You can specify a list of channels to automatically join users into upon
  1856. # connecting by adding the autojoinchannel option to the Client block. You
  1857. # can also specify a notice to send to users when they are automatically.
  1858. #
  1859. # Client {
  1860. # host = "*@*";
  1861. # ip = "*@*";
  1862. # class = "Other";
  1863. # autojoinchannel = "#channel1,#channel2";
  1864. # autojoinnotice = "*** Notice -- You are now being autojoined into #channel1 and #channel2";
  1865. # };
  1866.  
  1867. # [motd]
  1868. #
  1869. # It is possible to show a different Message of the Day to a connecting
  1870. # client depending on its origin.
  1871. # motd {
  1872. # # Note: host can also be a classname.
  1873. # host = "Other";
  1874. # country = "countrycode";
  1875. # continent = "continentcode";
  1876. # file = "path/to/motd/file";
  1877. # };
  1878. #
  1879. # More than one host/country/continent = "mask"; entry may be present in
  1880. # one block; this has the same effect as one Motd block for each host
  1881. # entry, but makes it easier to update the messages's filename.
  1882. #
  1883. # DPATH/net_com.motd contains a special MOTD where users are encouraged
  1884. # to register their domains and get their own client{} lines if they're in
  1885. # Europe, or move to US.UnderNet.org if they're in the USA.
  1886. motd {
  1887. host = "*.net";
  1888. file = "net_com.motd";
  1889. };
  1890. motd {
  1891. host = "*.com";
  1892. file = "net_com.motd";
  1893. };
  1894. motd {
  1895. host = "America";
  1896. file = "net_com.motd";
  1897. };
  1898.  
  1899. # A different MOTD for ourselves, where we point out that the helpdesk
  1900. # better not be bothered with questions regarding irc...
  1901. motd {
  1902. host = "*.london.ac.uk";
  1903. file = "london.motd";
  1904. };
  1905.  
  1906. # [UWorld]
  1907. #
  1908. # One of the many nice features of Undernet is "Uworld", a program
  1909. # connected to the net as a server. This allows it to broadcast any mode
  1910. # change, thus allowing opers to, for example, "unlock" a channel that
  1911. # has been taken over.
  1912. # There is only one slight problem: the TimeStamp protocol prevents this.
  1913. # So there is a configuration option to allow them anyway from a certain
  1914. # server.
  1915. # UWorld {
  1916. # # The servername or wildcard mask for it that this applies to.
  1917. # name = "relservername";
  1918. # };
  1919. #
  1920. # You may have have more than one name listed in each block.
  1921. #
  1922. # Note: (1) These lines are agreed on by every server admin on Undernet;
  1923. # (2) These lines must be the same on every single server, or results
  1924. # will be disasterous; (3) This is a useful feature, not something that
  1925. # is a liability and abused regularly (well... :-)
  1926. # If you're on Undernet, you MUST have these lines. I cannnot stress
  1927. # this enough. If all of the servers don't have the same lines, the
  1928. # servers will try to undo the mode hacks that Uworld does. Make SURE that
  1929. # all of the servers have the EXACT same UWorld blocks.
  1930. #
  1931. # If your server starts on a bit larger network, you'll probably get
  1932. # assigned one or two uplinks to which your server can connect.
  1933. # If your uplink(s) also connect to other servers than yours (which is
  1934. # probable), you need to define your uplink as being allowed to "hub".
  1935. # See the Connect block documentation for details on how to do that.
  1936.  
  1937. UWorld {
  1938. name = "uworld.eu.undernet.org";
  1939. name = "uworld2.undernet.org";
  1940. name = "uworld.undernet.org";
  1941. name = "channels.undernet.org";
  1942. name = "channels2.undernet.org";
  1943. name = "channels3.undernet.org";
  1944. name = "channels4.undernet.org";
  1945. name = "channels5.undernet.org";
  1946. name = "channels6.undernet.org";
  1947. };
  1948.  
  1949. # As of ircu2.10.05 is it possible to Jupe nicks. As per CFV-0095 and
  1950. # CFV-0255, the following nicks must be juped, it is not allowed to
  1951. # jupe others as well.
  1952. Jupe {
  1953. nick = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,{,|,},~,-,_,`";
  1954. nick = "EuWorld,UWorld,UWorld2";
  1955. nick = "login,undernet,protocol,pass,newpass,org";
  1956. nick = "StatServ,NoteServ";
  1957. nick = "ChanSvr,ChanSaver,ChanServ";
  1958. nick = "NickSvr,NickSaver,NickServ";
  1959. nick = "LPT1,LPT2,COM1,COM2,COM3,COM4,AUX";
  1960. };
  1961.  
  1962. # [Kill]
  1963. #
  1964. # While running your server, you will most probably encounter individuals
  1965. # or groups of persons that you do not wish to have access to your server.
  1966. #
  1967. # For this purpose, the ircd understands "kill blocks". These are also
  1968. # known as K-lines, by virtue of the former config file format.
  1969. # Kill
  1970. # {
  1971. # host = "user@host";
  1972. # reason = "The reason the user will see";
  1973. # };
  1974. # It is possible to ban on the basis of the real name.
  1975. # It is also possible to use a file as comment for the ban, using
  1976. # file = "file":
  1977. # Kill
  1978. # {
  1979. # realname = "realnametoban";
  1980. # file = "path/to/file/with/reason/to/show";
  1981. # };
  1982. # It is also possible to ban using either the 2 letter country code or
  1983. # the 2 letter continent code provided by GeoIP using either the country
  1984. # or continent fields.
  1985. # Kill
  1986. # {
  1987. # country = "US";
  1988. # reason = "Local server for local people!";
  1989. # };
  1990. #
  1991. #
  1992. # The default reason is: "You are banned from this server"
  1993. # Note that Kill blocks are local to the server; if you ban a person or a
  1994. # whole domain from your server, they can get on IRC via any other server
  1995. # that doesn't have them Killed (yet).
  1996. #
  1997. # With a simple comment, using quotes:
  1998. Kill { host = "*.au"; reason = "Please use a nearer server"; };
  1999. Kill { host = "*.edu"; reason = "Please use a nearer server"; };
  2000.  
  2001. # You can also kill based on username.
  2002. Kill { username = "sub7"; realname = "s*7*"; reason = "You are infected with a Trojan"; };
  2003.  
  2004. # The file can contain for example, a reason, a link to the
  2005. # server rules and a contact address. Note the combination
  2006. # of username and host in the host field.
  2007. Kill
  2008. {
  2009. host = "*luser@unixbox.flooder.co.uk";
  2010. file = "kline/youflooded.txt";
  2011. };
  2012.  
  2013. # IP-based kill lines apply to all hosts, even if an IP address has a
  2014. # properly resolving host name.
  2015. Kill
  2016. {
  2017. host = "192.168.*";
  2018. file = "klines/martians";
  2019. };
  2020.  
  2021. # The realname field lets you ban by realname...
  2022. Kill
  2023. {
  2024. realname = "*sub7*";
  2025. reason = "You are infected with a Trojan";
  2026. };
  2027.  
  2028. # The version field lets you ban by CTCP version (requires "CTCP_VERSION" and
  2029. # "CTCP_VERSIONING_KILL" to be enabled in the Features block)
  2030. Kill
  2031. {
  2032. version = "*iroffer*";
  2033. reason = "You are using a disallowed chat client version. Either upgrade or get a new client.";
  2034. };
  2035.  
  2036. # A Kill block can also allow authenticated users to connect even if they match
  2037. # the kill block in question. This can be achieved by adding the authexempt
  2038. # option to the kill block. Addition of the mark option will add a line to the
  2039. # users WHOIS with the value of the mark option.
  2040. Kill
  2041. {
  2042. host = "silly.people";
  2043. reason = "Silly people are not allowed unless authenticated.";
  2044. authexempt = yes;
  2045. mark = "Silly Person";
  2046. };
  2047.  
  2048. # [Connect]
  2049. #
  2050. # You probably want your server connected to other servers, so your users
  2051. # have other users to chat with.
  2052. # IRC servers connect to other servers forming a network with a star or
  2053. # tree topology. Loops are not allowed.
  2054. # In this network, two servers can be distinguished: "hub" and "leaf"
  2055. # servers. Leaf servers connect to hubs; hubs connect to each other.
  2056. # Of course, many servers can't be directly classified in one of these
  2057. # categories. Both a fixed and a rule-based decision making system for
  2058. # server links is provided for ircd to decide what links to allow, what
  2059. # to let humans do themselves, and what links to (forcefully) disallow.
  2060. #
  2061. # The Connect blocks
  2062. # define what servers the server connect to, and which servers are
  2063. # allowed to connect.
  2064. # Connect {
  2065. # name = "servername";
  2066. # host = "hostnameORip";
  2067. # vhost = "localIP";
  2068. # password = "passwd";
  2069. # port = portno;
  2070. # class = "classname";
  2071. # maxhops = 2;
  2072. # hub = "*.eu.undernet.org";
  2073. # autoconnect = no;
  2074. # sslfp = "sslfingerprint";
  2075. # sslciphers = "ssl ciphers string";
  2076. # ssl = no;
  2077. # };
  2078. #
  2079. # The "port" field defines the default port the server tries to connect
  2080. # to if an operator uses /connect without specifying a port. This is also
  2081. # the port used when the server attempts to auto-connect to the remote
  2082. # server. (See Class blocks for more informationa about auto-connects).
  2083. # You may tell ircu to not automatically connect to a server by adding
  2084. # "autoconnect = no;"; the default is to autoconnect.
  2085. #
  2086. # If the vhost field is present, the server will use that IP as the
  2087. # local end of connections that it initiates to this server. This
  2088. # overrides the vhost value from the General block.
  2089. #
  2090. # If the sslfp field is present the remote server must be connected via
  2091. # SSL using an SSL certificate with the SHA256 fingerprint specified to
  2092. # be allowed to use the Connect block.
  2093. #
  2094. # If the ssliphers field is present then the ciphers list specified will
  2095. # be used when this server connects to the server the Connect block
  2096. # belongs to. See https://www.openssl.org/docs/apps/ciphers.html for an
  2097. # explanation on how to format this string.
  2098. #
  2099. # The maxhops field causes an SQUIT if a hub tries to introduce
  2100. # servers farther away than that; the element 'leaf;' is an alias for
  2101. # 'maxhops = 0;'. The hub field limits the names of servers that may
  2102. # be introduced by a hub; the element 'hub;' is an alias for
  2103. # 'hub = "*";'.
  2104. #
  2105. # Our primary uplink.
  2106. Connect {
  2107. name = "Amsterdam.NL.Eu.UnderNet.org";
  2108. host = "1.2.3.4";
  2109. password = "passwd";
  2110. port = 4400;
  2111. class = "Server";
  2112. hub;
  2113. };
  2114.  
  2115. # [crule]
  2116. #
  2117. # For an advanced, real-time rule-based routing decision making system
  2118. # you can use crule blocks. For more information, see doc/readme.crules.
  2119. # If more than one server mask is present in a single crule, the rule
  2120. # applies to all servers.
  2121. # CRULE
  2122. # {
  2123. # server = "servermask";
  2124. # rule = "connectrule";
  2125. # # Setting all to yes makes the rule always apply. Otherwise it only
  2126. # # applies to autoconnects.
  2127. # all = yes;
  2128. # };
  2129. CRULE
  2130. {
  2131. server = "*.US.UnderNet.org";
  2132. rule = "connected(*.US.UnderNet.org)";
  2133. };
  2134. CRULE
  2135. {
  2136. server = "*.EU.UnderNet.org";
  2137. rule = "connected(Amsterdam.NL.EU.*)";
  2138. };
  2139.  
  2140. # The following block is recommended for leaf servers:
  2141. CRULE
  2142. {
  2143. server = "*";
  2144. rule = "directcon(*)";
  2145. };
  2146.  
  2147. # [Operator]
  2148. #
  2149. # Inevitably, you have reached the part about "IRC Operators". Oper status
  2150. # grants some special privileges to a user, like the power to make the
  2151. # server break or (try to) establish a connection with another server,
  2152. # and to "kill" users off IRC.
  2153. # I can write many pages about this; I will restrict myself to saying that
  2154. # if you want to appoint somebody as IRC Operator on your server, that
  2155. # person should be aware of his/her responsibilities, and that you, being
  2156. # the admin, will be held accountable for their actions.
  2157. #
  2158. # There are two sorts of IRC Operators: "local" and "global". Local opers
  2159. # can squit, connect and kill - but only locally: their +o user mode
  2160. # is not not passed along to other servers. On Undernet, this prevents
  2161. # them from using Uworld as well.
  2162. #
  2163. # More than one host = "mask"; entry may be present in one block; this
  2164. # has the same effect as one Operator block for each host entry, but
  2165. # makes it easier to update operator nicks, passwords, classes, and
  2166. # privileges.
  2167. #
  2168. # Operator {
  2169. # host = "host/IP mask";
  2170. # name = "opername";
  2171. # password = "encryptedpass";
  2172. # class = "classname";
  2173. # sslfp = "sslfingerprint";
  2174. # snomask = number;
  2175. # autojoinchannel = "channellist";
  2176. # autojoinnotice = "autjoinnotice";
  2177. # # You can also set any operator privilege; see the Class block
  2178. # # documentation for details. A privilege defined for a single
  2179. # # Operator will override the privilege settings for the Class
  2180. # # and the default setting.
  2181. # };
  2182. #
  2183. # By default, the password is hashed using the system's native crypt()
  2184. # function. Other password mechanisms are available; the umkpasswd
  2185. # utility from the ircd directory can hash passwords using those
  2186. # mechanisms. If you use a password format that is NOT generated by
  2187. # umkpasswd, ircu will not recognize the oper's password.
  2188. #
  2189. # If sslfp is present the user must be connected via SSL from a client
  2190. # setup to use an SSL client certificate with the SHA256 fingerprint
  2191. # specified.
  2192. #
  2193. # snomask is used to specify the server notice mask an oper gets when
  2194. # he/she uses /oper. See doc/snomask.txt or doc/snomask.html for
  2195. # details on what this number means.
  2196. #
  2197. # autjoinchannel allows you to specify channels the user is automatically
  2198. # joined into when he/she uses /oper. Additionally you can specify a
  2199. # notice to be sent to the user by using autojoinnotice.
  2200. #
  2201. # All privileges are shown with their default values; if you wish to
  2202. # override defaults, you should set only those privileges for the
  2203. # operator. Listing defaulted privileges just makes things harder to
  2204. # find.
  2205. Operator {
  2206. local = no;
  2207. host = "*@*.cs.vu.nl";
  2208. password = "VRKLKuGKn0jLt";
  2209. name = "Niels";
  2210. class = "Local";
  2211. };
  2212. Operator {
  2213. host = "*@*.uu.net";
  2214. password = "$PLAIN$notencryptedpass";
  2215. name = "Niels";
  2216. class = "Opers";
  2217. };
  2218.  
  2219. # Note that the <connection class> is optional, but leaving it away
  2220. # puts the opers in class "default", which usually only accepts one
  2221. # connection at a time. If you want users to Oper up more then once per
  2222. # block, then use a connection class that allows more then one connection,
  2223. # for example (using class Local as in the example above):
  2224. #
  2225. # Once you OPER your connection class changes no matter where you are or
  2226. # your previous connection classes. If the defined connection class is
  2227. # Local for the operator block, then your new connection class is Local.
  2228.  
  2229. # [Port]
  2230. # When your server gets more full, you will notice delays when trying to
  2231. # connect to your server's primary listening port. It is possible via the
  2232. # Port lines to specify additional ports for the ircd to listen to.
  2233. # De facto ports are: 6667 - standard; 6660-6669 - additional client
  2234. # ports;
  2235. # Undernet uses 4400 for server listener ports.
  2236. # These are just hints, they are in no way official IANA or IETF policies.
  2237. # IANA says we should use port 194, but that requires us to run as root,
  2238. # so we don't do that.
  2239. #
  2240. #
  2241. # Port {
  2242. # port = [ipv4] [ipv6] number;
  2243. # mask = "ipmask";
  2244. # # Use this to control the interface you bind to.
  2245. # vhost = [ipv4] [ipv6] "virtualhostip";
  2246. # # You can specify both virtual host and port number in one entry.
  2247. # vhost = [ipv4] [ipv6] "virtualhostip" number;
  2248. # # Setting to yes makes this server only.
  2249. # server = yes;
  2250. # # Setting to yes makes the port "hidden" from stats.
  2251. # hidden = yes;
  2252. # # Setting to yes makes the port accept SSL encrypted connections.
  2253. # ssl = yes;
  2254. # };
  2255. #
  2256. # The port and vhost lines allow you to specify one or both of "ipv4"
  2257. # and "ipv6" as address families to use for the port. The default is
  2258. # to listen on both IPv4 and IPv6.
  2259. #
  2260. # The mask setting allows you to specify a range of IP addresses that
  2261. # you will allow connections from. This should only contain IP addresses
  2262. # and '*' if used. This field only uses IP addresses. This does not use
  2263. # DNS in any way so you can't use it to allow *.nl or *.uk. Attempting
  2264. # to specify anything other than numbers, dots and stars [0-9.*] will result
  2265. # in the port allowing connections from anyone.
  2266. #
  2267. # The interface setting allows multiply homed hosts to specify which
  2268. # interface to use on a port by port basis, if an interface is not specified
  2269. # the default interface will be used. The interface MUST be the complete
  2270. # IP address for a real hardware interface on the machine running ircd.
  2271. # If you want to use virtual hosting *YOU* *MUST* *USE* *THIS* otherwise it
  2272. # WILL bind to all interfaces - not what most people seem to expect.
  2273. #
  2274. Port {
  2275. server = yes;
  2276. port = 4400;
  2277. };
  2278.  
  2279. # This is an SSL port.
  2280. Port {
  2281. ssl = yes;
  2282. port = 6697;
  2283. };
  2284.  
  2285. # This is an IPv4-only Server port that is Hidden
  2286. Port {
  2287. server = yes;
  2288. hidden = yes;
  2289. port = ipv4 4401;
  2290. };
  2291.  
  2292. # The following are normal client ports
  2293. Port { port = 6667; };
  2294. Port { port = 6668; };
  2295. Port {
  2296. # This only accepts clients with IPs like 192.168.*.
  2297. mask = "192.168.*";
  2298. port = 6666;
  2299. };
  2300.  
  2301. # This is a hidden client port, listening on 168.8.21.107.
  2302. Port {
  2303. vhost = "168.8.21.107";
  2304. hidden = yes;
  2305. port = 7000;
  2306. };
  2307.  
  2308. # More than one vhost may be present in a single Port block; in this case,
  2309. # we recommend listing the port number on the vhost line for clarity.
  2310. Port {
  2311. vhost = "172.16.0.1" 6667;
  2312. vhost = "172.16.3.1" 6668;
  2313. hidden = no;
  2314. };
  2315.  
  2316. # [Spoofhost]
  2317. #
  2318. # Spoofhost "<spoof host>" {
  2319. # pass = "<password>";
  2320. # host = "<hostmask>";
  2321. # autoapply = <yes/no>;
  2322. # ismask = <yes/no>;
  2323. # matchusername = <yes/no>;
  2324. # };
  2325. #
  2326. # <spoof host> An ident@hostname or hostname to be spoofed
  2327. # <password> A password for this spoof host. Used if SETHOST_USER is enabled.
  2328. # <hostmask> A hostmask for matching against users that are to be auto
  2329. # spoofed or to restrict access to a spoof host.
  2330. # <autoapply> Either yes or no, yes indicates that the Spoofhost should be
  2331. # automatically applied to a user. If set to yes, <pass> is
  2332. # ignored when automatically applying the host.
  2333. # <ismask> Either yes or no, yes indicates that <spoof host> is a wild
  2334. # card mask (includes * or ?) to match against the supplied spoof
  2335. # host. A yes also sets <autoapply> to no.
  2336. # <matchusername> If set to yes when <autoapply> is set to yes, the user portion
  2337. # of <hostmask> will match against the USER supplied user name
  2338. # as well as the ident supplied user name.
  2339. #
  2340. # NOTE: When using ismask steps should be taken to ensure only users you trust
  2341. # can make use of a Spoofhost block using the option. The reason for this
  2342. # is because of the nature of ismask, users who can use a Spoofhost block
  2343. # with ismask enabled can make use of a wild card mask to change their
  2344. # host name and evade channel bans.
  2345. #
  2346. # Spoofhost "testsline.AfterNET.Org" { pass = "secret"; host = "*"; };
  2347. #
  2348. # This is how to define Spoofhosts when having freeform turned off.
  2349. # Spoofhost "testsline2.AfterNET.Org" { username = "x"; host = "nohost"; };
  2350.  
  2351. # Quarantine blocks disallow operators from using OPMODE and CLEARMODE
  2352. # on certain channels. Opers with the force_opmode (for local
  2353. # channels, force_local_opmode) privilege may override the quarantine
  2354. # by prefixing the channel name with an exclamation point ('!').
  2355. # Wildcards are NOT supported; the channel name must match exactly.
  2356. Quarantine {
  2357. "#shells" = "Thou shalt not support the h4><0rz";
  2358. "&kiddies" = "They can take care of themselves";
  2359. };
  2360.  
  2361. # This is a server-implemented alias to send a message to a service.
  2362. # The string after Pseudo is the command name; the name entry inside
  2363. # is the service name, used for error messages. More than one nick
  2364. # entry can be provided; the last one listed has highest priority.
  2365. Pseudo "CHANSERV" {
  2366. name = "X";
  2367. nick = "X@channels.undernet.org";
  2368. };
  2369.  
  2370. # You can also prepend text before the user's message.
  2371. Pseudo "LOGIN" {
  2372. name = "X";
  2373. prepend = "LOGIN ";
  2374. nick = "X@channels.undernet.org";
  2375. };
  2376.  
  2377. # You can also specify the default text to send if the user does not
  2378. # supply some text.
  2379. Pseudo "AUTHSERV" {
  2380. name = "AuthServ";
  2381. nick = "AuthServ@channels.undernet.org";
  2382. defaulttext = "HELP";
  2383. };
  2384.  
  2385. # You can ask a separate server whether to allow users to connect.
  2386. # Uncomment this ONLY if you have an iauth helper program.
  2387. # IAuth {
  2388. # program = "../path/to/iauth" "-n" "options go here";
  2389. # };
  2390.  
  2391. # [Forwards]
  2392. # These blocks will enable the server to forward any messages which
  2393. # are prefixed and specific with a b:line. This will allow users to
  2394. # use the services without the services being in channel.
  2395. #
  2396. # Forwards {
  2397. # "<prefix>" = "<services server>";
  2398. # };
  2399. #
  2400. # Forwards {
  2401. # "!" = "channels.undernet.org";
  2402. # "?" = "channels.undernet.org";
  2403. # "." = "channels.undernet.org";
  2404. # };
  2405. #
  2406. # Any channel messages prefixed with a ? ! or a . would be sent to
  2407. # channels.undernet.org in the above examples.
  2408.  
  2409. # [WebIRC]
  2410. # These blocks allow you to run a WEBIRC client on your website without
  2411. # having to set clone exceptions for your websites hostname on your IRCd.
  2412. # WEBIRC will send a WEBIRC command along with the clients hostname, ip and
  2413. # WEBIRC password.
  2414. #
  2415. # WebIRC {
  2416. # host = "user@host";
  2417. # password = "password";
  2418. # ident = "fakeident";
  2419. # userident = yes/no;
  2420. # ignoreident = yes/no;
  2421. # stripsslfp = yes/no;
  2422. # description = "description";
  2423. # };
  2424. #
  2425. # The host and password fields take the same formats as in the Client block.
  2426. # The host field is matched against the host mask of the client attempting
  2427. # to use the WEBIRC command. The ident field is optional and if specified
  2428. # is used as if it were the reply from the users identd. The ignoreident
  2429. # option causes any identd reply already received to be ignored. The
  2430. # userident option uses the USER user name as if it were an identd reply if
  2431. # none was received or if ignoreident is set to yes. The description field is
  2432. # a short line of text to be added to the user's WHOIS to mark them as a
  2433. # WEBIRC user. If the client issuing the WEBIRC command uses an SSL client
  2434. # certificate then stripsslfp should be set to yes.
  2435. #
  2436. # Example:
  2437. # WebIRC {
  2438. # host = "*@127.0.0.1";
  2439. # password = "$PLAIN$kg533n6xVI";
  2440. # };
  2441.  
  2442. # [Except]
  2443. # These blocks allow you to exempt matching clients from various
  2444. # restrictions or checks.
  2445. #
  2446. # Except {
  2447. # host = "user@host";
  2448. # shun = yes/no;
  2449. # kline = yes/no;
  2450. # gline = yes/no;
  2451. # ident = yes/no;
  2452. # rdns = yes/no;
  2453. # ipcheck = yes/no;
  2454. # targetlimit = yes/no;
  2455. # };
  2456. #
  2457. # The host field is used to specify a user@host mask to select clients to
  2458. # apply the exemptions to. For some exemption types such as ipcheck, ident and
  2459. # rdns, you can only specify a mask of *@<ip> or *@<cidr> as neither ident nor
  2460. # rDNS checks have been performed when exceptions have been checked. The kline
  2461. # type exempts users from Kill blocks in ircd.conf that the client matches.
  2462. # The gline and shun types exempt matching clients from glines and shuns
  2463. # respectively. The ident and rdns types stop the IRCd from performing ident
  2464. # and reverse DNS lookups for matching clients. The ipcheck type exempts
  2465. # matching clients from connection throttling and IP limits. The targetlimit
  2466. # type exempts matching clients from the message target limits.
  2467.  
  2468. # [features]
  2469. # IRC servers have a large number of options and features. Most of these
  2470. # are set at compile time through the use of #define's--see "make config"
  2471. # for more details--but we are working to move many of these into the
  2472. # configuration file. Features let you configure these at runtime.
  2473. # You only need one feature block in which you use
  2474. # "featurename" = "value1" , "value2", ..., "valuen-1", "valuen";
  2475. #
  2476. # The entire purpose of F:lines are so that you do not have to recompile
  2477. # the IRCD everytime you want to change a feature. All of the features
  2478. # are listed below, and at the bottom is how to set logging.
  2479. #
  2480. # A Special Thanks to Kev for writing the documentation of F:lines. It can
  2481. # be found at doc/readme.features and the logging documentation can be
  2482. # found at doc/readme.log. The defaults used by the Undernet network are
  2483. # below.
  2484. #
  2485. features
  2486. {
  2487. # These log features are the only way to get certain error messages
  2488. # (such as when the server dies from being out of memory). For more
  2489. # explanation of how they work, see doc/readme.log.
  2490. "LOG" = "SYSTEM" "FILE" "ircd.log";
  2491. "LOG" = "SYSTEM" "LEVEL" "CRIT";
  2492. # "DOMAINNAME"="<obtained from /etc/resolv.conf by ./configure>";
  2493. # "RELIABLE_CLOCK"="FALSE";
  2494. # "BUFFERPOOL"="27000000";
  2495. # "HAS_FERGUSON_FLUSHER"="FALSE";
  2496. # "CLIENT_FLOOD"="1024";
  2497. # "SERVER_PORT"="4400";
  2498. # "NODEFAULTMOTD"="TRUE";
  2499. # "MOTD_BANNER"="";
  2500. # "KILL_IPMISMATCH"="FALSE";
  2501. # "IDLE_FROM_MSG"="TRUE";
  2502. # "HUB"="FALSE";
  2503. # "WALLOPS_OPER_ONLY"="FALSE";
  2504. # "NODNS"="FALSE";
  2505. # "RANDOM_SEED"="<you should set one explicitly>";
  2506. # "DEFAULT_LIST_PARAM"="";
  2507. # "NICKNAMEHISTORYLENGTH"="800";
  2508. # "NETWORK"="UnderNet";
  2509. # "HOST_HIDING"="FALSE";
  2510. # "HIDDEN_HOST"="users.undernet.org";
  2511. # "HIDDEN_IP"="127.0.0.1";
  2512. # "KILLCHASETIMELIMIT"="30";
  2513. # "MAXCHANNELSPERUSER"="10";
  2514. # "NICKLEN" = "12";
  2515. # "AVBANLEN"="40";
  2516. # "MAXBANS"="50";
  2517. # "MAXSILES"="15";
  2518. # "HANGONGOODLINK"="300";
  2519. # "HANGONRETRYDELAY" = "10";
  2520. # "CONNECTTIMEOUT" = "90";
  2521. # "MAXIMUM_LINKS" = "1";
  2522. # "PINGFREQUENCY" = "120";
  2523. # "CONNECTFREQUENCY" = "600";
  2524. # "DEFAULTMAXSENDQLENGTH" = "40000";
  2525. # "GLINEMAXUSERCOUNT" = "20";
  2526. # "MPATH" = "ircd.motd";
  2527. # "RPATH" = "remote.motd";
  2528. # "PPATH" = "ircd.pid";
  2529. # "TOS_SERVER" = "0x08";
  2530. # "TOS_CLIENT" = "0x08";
  2531. # "POLLS_PER_LOOP" = "200";
  2532. # "IRCD_RES_TIMEOUT" = "4";
  2533. # "IRCD_RES_RETRIES" = "2";
  2534. # "AUTH_TIMEOUT" = "9";
  2535. # "IPCHECK_CLONE_LIMIT" = "4";
  2536. # "IPCHECK_CLONE_PERIOD" = "40";
  2537. # "IPCHECK_CLONE_DELAY" = "600";
  2538. # "CHANNELLEN" = "200";
  2539. # "CONFIG_OPERCMDS" = "TRUE";
  2540. # "OPLEVELS" = "TRUE";
  2541. # "ZANNELS" = "TRUE";
  2542. # "LOCAL_CHANNELS" = "TRUE";
  2543. # "ANNOUNCE_INVITES" = "FALSE";
  2544. # These were introduced by Undernet CFV-165 to add "Head-In-Sand" (HIS)
  2545. # behavior to hide most network topology from users.
  2546. # "HIS_SNOTICES" = "TRUE";
  2547. # "HIS_SNOTICES_OPER_ONLY" = "TRUE";
  2548. # "HIS_DEBUG_OPER_ONLY" = "TRUE";
  2549. # "HIS_WALLOPS" = "TRUE";
  2550. # "HIS_MAP" = "TRUE";
  2551. # "HIS_LINKS" = "TRUE";
  2552. # "HIS_TRACE" = "TRUE";
  2553. # "HIS_STATS_a" = "TRUE";
  2554. # "HIS_STATS_c" = "TRUE";
  2555. # "HIS_STATS_d" = "TRUE";
  2556. # "HIS_STATS_e" = "TRUE";
  2557. # "HIS_STATS_f" = "TRUE";
  2558. # "HIS_STATS_g" = "TRUE";
  2559. # "HIS_STATS_i" = "TRUE";
  2560. # "HIS_STATS_j" = "TRUE";
  2561. # "HIS_STATS_J" = "TRUE";
  2562. # "HIS_STATS_k" = "TRUE";
  2563. # "HIS_STATS_l" = "TRUE";
  2564. # "HIS_STATS_L" = "TRUE";
  2565. # "HIS_STATS_m" = "TRUE";
  2566. # "HIS_STATS_M" = "TRUE";
  2567. # "HIS_STATS_o" = "TRUE";
  2568. # "HIS_STATS_p" = "TRUE";
  2569. # "HIS_STATS_q" = "TRUE";
  2570. # "HIS_STATS_r" = "TRUE";
  2571. # "HIS_STATS_R" = "TRUE";
  2572. # "HIS_STATS_S" = "TRUE";
  2573. # "HIS_STATS_t" = "TRUE";
  2574. # "HIS_STATS_T" = "TRUE";
  2575. # "HIS_STATS_u" = "FALSE";
  2576. # "HIS_STATS_U" = "TRUE";
  2577. # "HIS_STATS_v" = "TRUE";
  2578. # "HIS_STATS_w" = "TRUE";
  2579. # "HIS_STATS_x" = "TRUE";
  2580. # "HIS_STATS_y" = "TRUE";
  2581. # "HIS_STATS_z" = "TRUE";
  2582. # "HIS_STATS_IAUTH" = "TRUE";
  2583. # "HIS_WHOIS_SERVERNAME" = "TRUE";
  2584. # "HIS_WHOIS_IDLETIME" = "TRUE";
  2585. # "HIS_WHOIS_LOCALCHAN" = "TRUE";
  2586. # "HIS_WHO_SERVERNAME" = "TRUE";
  2587. # "HIS_WHO_HOPCOUNT" = "TRUE";
  2588. # "HIS_MODEWHO" = "TRUE";
  2589. # "HIS_BANWHO" = "TRUE";
  2590. # "HIS_KILLWHO" = "FALSE";
  2591. # "HIS_REWRITE" = "TRUE";
  2592. # "HIS_REMOTE" = "TRUE";
  2593. # "HIS_NETSPLIT" = "TRUE";
  2594. # "HIS_SERVERNAME" = "*.undernet.org";
  2595. # "HIS_SERVERINFO" = "The Undernet Underworld";
  2596. # "HIS_URLSERVERS" = "http://www.undernet.org/servers.php";
  2597. # "URLREG" = "http://cservice.undernet.org/live/";
  2598. # "CHECK" = "TRUE";
  2599. # "CHECK_EXTENDED" = "TRUE";
  2600. # "MAX_CHECK_OUTPUT" = "1000";
  2601. # "OPER_WHOIS_PARANOIA" = "FALSE";
  2602. # "OPER_HIDE" = "FALSE";
  2603. # "AUTOCHANMODES" = "FALSE";
  2604. # "AUTOCHANMODES_LIST" = "";
  2605. # "UHNAMES" = "TRUE";
  2606. # "RESTARTPASS" = "";
  2607. # "DIEPASS" = "";
  2608. # "HIS_STATS_W" = "TRUE";
  2609. # "WHOIS_OPER" = "is an IRC Operator";
  2610. # "WHOIS_SERVICE" = "is a Network Service";
  2611. # "TARGET_LIMITING" = "TRUE";
  2612. # "OPER_XTRAOP" = "FALSE";
  2613. # "OPERMOTD" = "FALSE";
  2614. # "RULES" = "FALSE";
  2615. # "DISABLE_SHUNS" = FALSE";
  2616. # "SHUNMAXUSERCOUNT" = "20";
  2617. # "HIS_SHUN_REASON" = "TRUE";
  2618. # "HIS_GLINE_REASON" = "FALSE";
  2619. # "NOIDENT" = "FALSE";
  2620. # "EXTENDED_ACCOUNTS" = "TRUE";
  2621. # "LOGIN_ON_CONNECT" = "FALSE";
  2622. # "LOC_SENDHOST" = "FALSE";
  2623. # "LOC_SENDSSLFP" = "FALSE";
  2624. # "LOC_DEFAULT_SERVICE" = "AuthServ";
  2625. # "LOC_TIMEOUT" = "3";
  2626. # "STRICTUSERNAME" = "FALSE";
  2627. # "APASS_CANSEND" = "FALSE";
  2628. # "HOST_IN_TOPIC" = "TRUE";
  2629. # "HIS_STATS_s" = "TRUE";
  2630. # "SETHOST" = "TRUE";
  2631. # "FLEXIBLEKEYS" = "FALSE";
  2632. # "HIS_STATS_E" = "TRUE";
  2633. # "SASL_SERVER" = "*";
  2634. # "LISTDELAY" = "15";
  2635. # "ALLOW_OPLEVEL_CHANGE" = "FALSE";
  2636. # "NETWORK_REHASH" = "TRUE";
  2637. # "LIST_SHOWMODES_OPERONLY" = "FALSE";
  2638. # "LIST_PRIVATE_CHANNELS" = "";
  2639. # "MAXWATCHS" = "128";
  2640. # "HIS_STATS_Z" = "TRUE";
  2641. # "SASL_TIMEOUT" = "8";
  2642. # "NOMULTITARGETS" = "FALSE";
  2643. # "HIS_IRCOPS" = "TRUE";
  2644. # "HIS_IRCOPS_SERVERS" = "TRUE";
  2645. # "SASL_SENDHOST" = "TRUE";
  2646. # "SASL_AUTOHIDEHOST" = "TRUE";
  2647. # "SNOMASK_DEFAULT" = "1540";
  2648. # "SNOMASK_OPERDEFAULT" = "5645";
  2649. # "TPATH" = "ircd.tune";
  2650. # "CHMODE_m_NONICKCHANGE" = "TRUE";
  2651. # "CHMODE_r_NONICKCHANGE" = "TRUE";
  2652. # "SILENCE_CHANMSGS" = "TRUE";
  2653. # "CHANNEL_CREATE_IRCOPONLY" = "FALSE";
  2654. # "CHMODE_a" = "TRUE";
  2655. # "CHMODE_c" = "TRUE";
  2656. # "CHMODE_C" = "TRUE";
  2657. # "CHMODE_L" = "TRUE";
  2658. # "CHMODE_M" = "TRUE";
  2659. # "CHMODE_N" = "TRUE";
  2660. # "CHMODE_O" = "TRUE";
  2661. # "CHMODE_Q" = "TRUE";
  2662. # "CHMODE_S" = "TRUE";
  2663. # "CHMODE_T" = "TRUE";
  2664. # "CHMODE_Z" = "TRUE";
  2665. # "HALFOPS" = "FALSE";
  2666. # "EXCEPTS" = "FALSE";
  2667. # "MAXEXCEPTS" = "45";
  2668. # "AVEXCEPTLEN" = "40";
  2669. # "CHMODE_e_CHMODEEXCEPTION" = "FALSE";
  2670. # "HALFOP_DEHALFOP_SELF" = "FALSE";
  2671. # "CHMODE_Z_STRICT" = "TRUE";
  2672. # "MAX_BOUNCE" = "5";
  2673. # "EXTBANS" = "TRUE";
  2674. # "EXTBAN_j_MAXDEPTH" = "1";
  2675. # "EXTBAN_j_MAXPERCHAN" = "2";
  2676. # "EXTBAN_a" = "TRUE";
  2677. # "EXTBAN_c" = "TRUE";
  2678. # "EXTBAN_j" = "TRUE";
  2679. # "EXTBAN_n" = "TRUE";
  2680. # "EXTBAN_q" = "TRUE";
  2681. # "EXTBAN_r" = "TRUE";
  2682. # "EXTBAN_m" = "TRUE";
  2683. # "EXTBAN_M" = "TRUE";
  2684. # "OMPATH" = "ircd.opermotd";
  2685. # "EPATH" = "ircd.rules";
  2686. # "HIDDEN_HOST_QUIT" = "TRUE";
  2687. # "HIDDEN_HOST_SET_MESSAGE" = "Registered";
  2688. # "HIDDEN_HOST_UNSET_MESSAGE" = "UnRegistered";
  2689. # "ALLOWRMX" = "FALSE";
  2690. # "OPERHOST_HIDING" = "TRUE";
  2691. # "HIDDEN_OPERHOST" = "Staff.Nefarious";
  2692. # "HOST_HIDING_STYLE" = "1";
  2693. # "HOST_HIDING_PREFIX" = "Nefarious";
  2694. # "HOST_HIDING_KEY1" = "aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
  2695. # "HOST_HIDING_KEY2" = "sdfjkLJKHlkjdkfjsdklfjlkjKLJ";
  2696. # "HOST_HIDING_KEY3" = "KJklJSDFLkjLKDFJSLKjlKJFlkjS";
  2697. # "HOST_HIDING_COMPONENTS" = "1";
  2698. # "CTCP_VERSIONING" = "FALSE";
  2699. # "CTCP_VERSIONING_KILL" = "FALSE";
  2700. # "CTCP_VERSIONING_CHAN" = "FALSE";
  2701. # "CTCP_VERSIONING_CHANNAME" = "#opers";
  2702. # "CTCP_VERSIONING_USEMSG" = "FALSE";
  2703. # "CTCP_VERSIONING_NOTICE" = "*** Checking your client version";
  2704. # "GEOIP_ENABLE" = "FALSE";
  2705. # "GEOIP_FILE" = "GeoIP.dat";
  2706. # "GEOIP_IPV6_FILE" = "GeoIPv6.dat";
  2707. # "SSL_CERTFILE" = "ircd.pem";
  2708. # "SSL_KEYFILE" = "ircd.pem";
  2709. # "SSL_CACERTFILE" = "";
  2710. # "SSL_VERIFYCERT" = "FALSE";
  2711. # "SSL_NOSELFSIGNED" = "FALSE";
  2712. # "SSL_REQUIRECLIENTCERT" = "FALSE";
  2713. # "SSL_NOSSLV2" = "TRUE";
  2714. # "SSL_NOSSLv3" = "TRUE";
  2715. # "SSL_NOTLSV1" = "TRUE";
  2716. # "SSL_CIPHERS" = "";
  2717. # "DISABLE_ZLINES" = "FALSE";
  2718. # "HIS_ZLINE_REASON" = "FALSE";
  2719. # "ZLINEMAXUSERCOUNT" = "20";
  2720. # "CAP_multi_prefix" = "TRUE";
  2721. # "CAP_userhost_in_names" = "TRUE";
  2722. # "CAP_extended_join" = "TRUE";
  2723. # "CAP_away_notify" = "TRUE";
  2724. # "CAP_account_notify" = "TRUE";
  2725. # "CAP_sasl" = "TRUE";
  2726. # "CAP_tls" = "TRUE";
  2727. # "CONNEXIT_NOTICES" = "FALSE";
  2728. # "UPING_ENABLE" = "TRUE";
  2729. # "UPING_PORT" = "7007";
  2730. };
  2731.  
  2732. # Well, you have now reached the end of this sample configuration
  2733. # file. If you have any questions, feel free to mail
  2734. # <coder-com@undernet.org>. If you are interested in linking your
  2735. # server to the Undernet IRC network visit
  2736. # http://www.routing-com.undernet.org/, and if there are any
  2737. # problems then contact <routing-com@undernet.org> asking for
  2738. # information. Upgrades of the Undernet ircd can be found on
  2739. # http://coder-com.undernet.org/.
  2740. #
  2741. # For the rest: Good Luck!
  2742. #
  2743. # -- Niels.
  2744. #
  2745. # -- Niels.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement