Сервер IRC для локальной сети на базе NetBSD 2.x

qnub аватар

Автор: qnub[lost][Russian NetBSD team]

Содержание:


  1. Предыстория.

  2. Что ставить и где брать.

  3. Сборка, подключение и установка.

  4. Настройка.

  5. Отлов ошибок.

  6. Автоподнятие.

Предыстория.

Мы (наша команда [lost]) разворачиваем в своем поселке Wi-Fi сеть. На несчастной лошадке:


  • total memory = 223 MB

  • cpu0: Intel Pentium II (686-class), 412.06 MHz


я разворачиваю мультимедиа центр :) пока тянет и не плохо, если учесть что на нем уже крутятся сервера:

  1. Bind 9.3.1;

  2. DHCP 3.0.2;

  3. Samba 3.0.14;

  4. Proftpd 1.2.10;

  5. Postfix 2.2.3;

  6. Dovecot 0.99.14;

  7. MySQL 4.1.12;

  8. Apache 1.3.33;

  9. PHP 5.0.4;

  10. Bnetd 0.6.1.2.


Люди то появляются и то исчезают и хочется общения, но разношерстность виндовых локальносетевых чатов вынуждает людей напрягаться то по поводу "лекарств", то по поводу конфигурирования самих чатов. Это и еще частое общение в IRC на канале #netbsd :) которое все более способствует возникновению теплых чувств при звуках "I" "R" "C" побудило меня на установку IRC сервера в нашей локальной сети. Притом хотелось чтоб все "как у людей" там ssl (правда я так окончательно и не понял зачем мне понадобился ssl, в общем захотелось) со всякими Chan и NickServ'ами. А так как установка оказалась не совсем тривиальной, решил накропать данную статейку, дабы люди граблями не баловались. Изложение установки подразмевает знание читателем азов использования консоли и установки программ.

Что ставить и где брать.

Ставить будем следующее:


  • в качестве ircd будет Ultimate3.0.1 (причина такого выбора проста - запарился конфигурить 7 hybrid который с далнетовскими конфигами гворил про отсутсвующее в конфигурации имя сервера, а родной рисовать - страшно было сделать хуже чем далнетовский :), а 6 сильно тупил на ident'те, ну и еще была уверенность что с этим сервером заработают ircservices);

  • в качестве Nick, Chan и прочих Serv'ов выступит ircservices 5.0.49 (потому
    что это первые сервисы, кторорые мне подвернулись).

Софт будем ставить по разному :) по нижеследующим причинам:


  • Ultimate нету в пакаджах, посему тут выбора нет;

  • ircservices есть и так и сяк, НО - Makefile в исходниках мертворожденный и приручить его не получилось, посему - пакадж;

  • и на последок - openssl - пакадж.

Зависимостей пакаджей не скажу, потому как сам не знаю, ибо уже много всего
было на машине, когда начал инсталлить IRC.

Линки:


  1. http://runetbsd.ru/files/openssl-0.9.7f.tgz

  2. http://peterhost.dl.sourceforge.net/sourceforge/ultimate/Ultimate3.0.1.tar.bz2

  3. ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc-2005Q3/NetBSD-2.0/i386/All/ircservices-5.0.49.tgz

Сборка, компиляция и установка.

Я расскажу вам, коллеги, как это дело заставить работать. Тонкие настройки оставляю вам.

Ну, понеслась...

# cd <в папку со скачанным софтом>

Ставим openssl:
# pkg_add openssl-0.9.7f.tgz

Распаковываем Ultimate:
# tar -jxvf Ultimate3.0.1.tar.bz2
# cd Ultimate3.0.1
# ./configure --prefix=/usr/pkg --enable-openssl=/usr/pkg --build=i386

несколько замечаний:


  • как правильные NetBSD'шники пихаем все в /usr/pkg - отсюда и --prefix=/usr/pkg;

  • --enable-openssl=/usr/pkg - включаем поддержку ssl;

  • --build=i386 - без этого собираться не захотело.


Остальные опции компиляции можно узнать выполнив:
# ./configure --help

Собираем и ставим Ultimate:
# make && make install

Ставим ircservices:
# pkg_add ircservices-5.0.49.tgz

Ну вот и все. Теперь-то у нас все встало.

Настройка.

Самые эротичные моменты пережиты именно в этот период. Сначала нам нужно поднять ircd, которому для запуска нужны корректные конфиги и сертификат ssl.

Создаем сертификат (если конечно его еще нет):
создается он скриптом, идущим в наборе с Ultimate

# /usr/pkg/bin/ssl-sert.sh

Следующим шагом идут конфиги. Лежат они в /usr/pkg/etc.
Основных конфига всего 2. Это ircd.conf и ircd.ini.

В общем буду объяснять на своих рабочих конфах.

ircd.conf:

ver^1.1.2
#
# UltimateIRCd Configuration file - ircd.ini
# $Id: ircd.ini 847 2005-01-28 05:14:27Z shadowmaster $
#
# Follow the instructions here.
#
# change the filename to what network header file you use
# relative to DPATH
#
# 1 = Вкл 0 = Выкл
#

# Set this to the Network settings file you wish to use.

# В этом файле находятся дополнительные настройки сервера под конкретную
# сеть
Include ........................: networks/lost.network

# Set this if you want your server to act as a HUB.
# ie, function as the connection point of many servers.
# This should only be set if the server is actually going to be functioning as a HUB.

# Включает возможность объединения нескольких серверов в кластер
Set hub ........................: 0

# This controls the number of bytes the server will allow a client to send to the server
# without processing before disconnecting the client for flooding.
# Values greater than 8000 makes no difference to the server.
# The default and recomended setting is 2560.

# После скольки знаков сообщение начинает считаться флудом
Set client_flood ...............: 2560

# This determines how many channels the users on your server will be able to reside
# in simultaniously.
# The number of channels a user is in directly influences memory and bandwith usage
# of your server.
# Acceptable values are 1 to 30 and the default is 10.

# На скольки каналах одновременно может сидеть юзер
Set max_channels_per_user ......: 10

# Set this to the geographical location of your server.
# Example: in Salt Lake City, Utah

# Информационное поле, типа регион, город, etc
Set geo_location ...............: Urengoy, YaNAO

# Set this to the email address that will be displayed to clients
# who are klined or zlined from your server.

# кому будут жаловаться если выкинуло
Set server_kline_address .......: qnub@lost-urengoy.ru

# Set this if you want to send out a notice to connecting client that you have
# a Proxy/Wingate scanner running. If you do not run such a bot yourself consult
# your network administrator and see if the network runs a bot that checks all
# connecting clients.

# не понял че такое, оставил как было
Set wingate_notice .............: 0

# Set this to the host of the Proxy/Wingate scanner.
# This setting will be ignored if WINGATE_NOTICE is set to 0.

# явно зависит от предыдущего
Set monitor_host ...............: 127.0.0.1

# Set this to an URL where users can obtain info about Proxy/Wingate.
# Preferably this should be an URL where they can learn or get info on
# how to secure their proxy and why they are being scanned for one.
# This setting will be ignored if WINGATE_NOTICE is set to 0.

# видимо народ тут прочитает объяснения того, чего я не понял :)
Set monitor_url ................: http://lost-urengoy.ru/proxy.html

# Do you want users to get +i upon connecting?
# +i will provide your users with greater privacy as they will
# not show up in /NAMES and /WHO unless you are in the same
# channel as them.

# давать юзерам +i при соединении
Set def_mode_i .................: 1

# Do you want to use a SHORT MOTD asking people to read the /MOTD?
# No point in forcing MOTD with non RFC RAW numbers upon user since
# there are scipts out there that ignore those aswell.

# использовать короткое сообщение дня из ircd.smotd
Set short_motd .................: 0

Следующий:
ircd.conf в нем среди прочего задаются основные пароли доступа. В конфигурацию они заносятся в зашифрованном виде (если что-то не так с паролями поменяйте необходимые пароли на зашифрованные/незашифрованные, пароль оператора гарантированно находится в зашифрованном виде, пароль сервера сервисов в незашифрованном). Создается зашифрованный пароль утилитой /usr/pkg/bin/mkpasswd

#=========================# UltimateIRCd #=========================#
#
# UltimateIRCd conf/ircd.conf.dist
# $Id: ircd.conf.dist 876 2005-02-09 19:39:30Z shadowmaster $
#
# This is the configuration file for UltimateIRCd3.0.0 and later.
# For detailed explanation please consult the example.conf file
#
#=================================================================#

#=========================# Server Info #=========================#
#
# M:hostname:IP:Description Of Your Server:7000
#
# Example (ipv4):
#
# M:WhiteRose.No.Eu.Shadow-Realm.org:195.159.32.103:Whiterose Internet Services:7000
#
# Example (ipv6):
#
# M:WhiteRose.No.Eu.Shadow-Realm.org:[::ffff:195.159.32.103}:Whiterose Internet Services:7000
# M:WhiteRose.No.Eu.Shadow-Realm.org:[ffff:ab46::1}:Whiterose Internet Services:7000
#
# Note (ipv6): If you want to link to ipv4 servers use an ipv4 as primary address.
# (bind the ipv6 via P lines)

# Определяет основные настройки сервера, можно использовать маски
# M:имя хоста:IP:описание сервера:7000

M:qnub-server.lost-urengoy.ru:*:[lost]net IRC server:6667

#=========================# Admin Info #=========================#
#
# A:info field:info field:info field
#
# Example:
#
# A:WhiteRose Administration:Lazy Admin:<LazyAdmin@Badly.Configured.Servers.net>

# данные администратора сервера
# A:описание админа:описание админа:описание админа

A:[lost] administration:qnub:<qnub@lost-urengoy.ru>

#=========================# Y-Lines #=========================#
#
# Y:Class Number:Ping Frequency:Connect Frequency:Max Links:SendQ
#
# The following Y Line sets can safely be used by default.
#
# 50 ===== Hub <--> Hub
# 51 ===== Hub <--> Hub, AutoConnect
# 60 ===== Hub <--> US Leaf
# 61 ===== Hub <--> EU Leaf
# 62 ===== Hub <-> AU leaf
# 40 ===== US leaf <--> Hub, AutoConnect
# 41 ===== EU leaf <--> Hub, AutoConnect
# 42 ===== AU leaf <--> Hub, AutoConnect
# 30 ===== US leaf <--> Hub
# 31 ===== EU leaf <--> Hub
# 32 ===== AU leaf <--> Hub
#
# 10 ===== Administrators
# 5 ===== IRC Operators
# 1 ===== Default Client Class

# описание классов соединений, оставил как было

Y:50:90:60:0:4000000
Y:51:90:60:1:4000000

Y:60:90:0:0:3500000
Y:61:180:0:0:3500000
Y:62:300:0:0:3500000

Y:40:90:90:1:3500000
Y:41:180:90:1:3500000
Y:42:300:120:1:3500000

Y:30:90:90:0:3500000
Y:31:180:90:0:3500000
Y:32:300:120:0:3500000

Y:10:90:0:20:400000
Y:5:90:0:20:400000
Y:1:90:0:1000:100000

#=========================# I/Access Lines #=========================#
#
# I:IP-Adress-Mask:optional password:domain-mask::connection class (opt)
#
# This ILine will allow anyone to connect to your server and will put all
# connecting clients in connection class 1

# пускаем всех

I:*::*@*::1

#=========================# O-Lines #=========================#
#
# o = Local oper
# O = Global operator
#
# a = Services operator
# P = Services administrator
# Z = Services root administrator
#
# j = Guest administrator
# J = Server co administrator
# A = Server administrator
# t = Technical Co Administrator
# T = Technical Administrator
# n = Network co administrator
# N = Network administrator
#
# Remember that administrators also need a J line on all
# servers they want to issue remote commands to.
# (Not yet in use)
#
# b = Access to do /kline and /unkline
# c = Access to do local /connects and /squits
# C = Access to do remote /connects and /squits
# k = Access to do local /kills
# K = Access to do global /kills
# r = Access to do /rehash server
# R = Access to do /restart
# D = Access to do /die
#
# p = Oper can set +p (Protected IRC Operator)
# h = Oper can set +h (Help Operator)
#
# w = oper can send /wallops
# l = Oper can send local server notices (/notice $servername message)
# g = Oper can send global notices (/notice $*.network.net message)
#
# E = Oper can use /add and /del commands from IRC if enabled by the admin.
#
# O:hostname (ident "@" permitted):password:Login:Access Flags:class
#
# Examples (ipv4):
#
# O:*:GooFeR:serveradministrator:OAbcCkKrRDphwlgE:10
#
# O:*:INsaNIty:localop:obckl:5
#
# Examples (ipv6):
#
# O:*:GooFeR:serveradministrator:OAbcCkKrRDphwlgE:10
# O:[*]:INsaNIty:localop:obckl:5
# O:[*@::ffff:127.0.0.1]:again:evilguy:DARK:5
# O:[*@adab:a447:234a::5467]:bastard:niceguy:NbcCdrRDhwlgE:5

# вооот. тут определается с какого хоста, под каким ником и под каким
# паролем будет логинится оператор, и что он сможет делать
# O:хост:зашифрованный пароль:имя пользователя:права доступа:класс соединения

O:10.4.16.3:зашифрованный пароль:qnub:OAbcCkKrRDphwlgE:10
O:127.0.0.1:зашифрованный пароль:qnub:OAbcCkKrRDphwlgE:10

#=========================# J-Lines #=========================#
#
# J:*::OperNick::
#
# Example:
#
# J:*::ShadowMaster::
# J:*::Againaway::

# как я понял устанавливает каким опам позволять логинится удаленно

J:*::qnub::

#=========================# X-Line #=========================#
#
# X:Die Password:Restart Password

# зашифрованные пароли на отключение и перезагрузку сервера

X:kill_pass:reboot_pass

#=========================# U-Lines #=========================#
#
# U:Server Name:*:*::
#
# Example:
#
# U:services.shadow-realm.org:*:*::

# указывает на каком хосте находятся наши ircservices, как я понял должен
# отличаться от хоста самого ircd

U:localhost:*:*::
U:services.lost-urengoy.ru:*:*::

#=========================# Connect Lines #=========================#
#
# 50 ===== Hub <--> Hub
# 51 ===== Hub <--> Hub, AutoConnect
# 60 ===== Hub <--> US Leaf
# 61 ===== Hub <--> EU Leaf
# 62 ===== Hub <-> AU leaf
# 40 ===== US leaf <--> Hub, AutoConnect
# 41 ===== EU leaf <<--> Hub, AutoConnect
# 42 ===== AU leaf <--> Hub, AutoConnect
# 30 ===== US leaf <--> Hub
# 31 ===== EU leaf <--> Hub
# 32 ===== AU leaf <--> Hub
#
# Link Flags:
# E == Encrypted links (Requires encryption to be enabled during ./configure)
# Z == Compressed links
#
# C:remote server's hostname:password:remote server's name:port:conn class
# N:remote server's hostname:password:remote server's name:link flags:conn class
#
# Examples (ipv4):
#
#
# C:231.156.34.213:broken!sword:Hub2.Shadow-Realm.org:7000:51
# N:231.156.34.213:broken!sword:Hub2.Shadow-Realm.org:ZE:51
#
# Examples (ipv6):
#
# C:[::ffff:231.156.12.103]:Services!goof:Services.Shadow-Realm.org:*:50
# N:[::ffff:231.156.12.103]:Services!goof:Services.Shadow-Realm.org::50
#
# C:[ffff:ad46::1]:broken!sword:Hub2.Shadow-Realm.org:7000:51
# N:[ffff:ad46::1]:broken!sword:Hub2.Shadow-Realm.org:ZE:51

# строки настроек подключения ircservices или других IRC серверов
# C:удаленный хост:пароль:имя удаленного хоста:порт:класс соединения
# N:удаленный хост:пароль:имя удаленного хоста:порт:класс соединения

C:127.0.0.1:plain_text_pass:services.lost-urengoy.ru:*:50
N:127.0.0.1:plain_text_pass:services.lost-urengoy.ru:*:50

#=========================# Hub Lines #=========================#
#
# H:servers which are permitted entry::hub server::
#
# Examples:
#
# H:*::Services.Shadow-Realm.org::
#
# H:*.Shadow-Realm.org::Hub2.Shadow-Realm.org::
#

#=========================# Leaf Lines #=========================#
#
# L:disallow connections to this hostmask::server name:depth
#
# L:*.uk::*.au:
#
# L:*::Wintermute.Shadow-Realm.org:1
#

#=========================# Port Lines #=========================#
#
# P:Allowed address mask:IP to bind to::port to listen on
#
# Examples (ipv4):
#
# P:*:195.159.32.103::6660
#
# P:195.159.*:195.159.32.103::8888
#
# Examples (ipv6):
#
# P:[*]:[::ffff:195.159.32.103]::6660
#
# P:[facd:3dab:adfe:*]:[facd:3dab::687a]::6668
#
# Examples (SSL):
#
# P:195.159.*:195.159.32.103:SSL:6660
# P:[facd:3dab:adfe:*]:[facd:3dab::687a]:SSL:6668
#
#P:*:127.0.0.1::8888

#=========================# Quarantine Nick Lines #=========================#
#
# Q:*:reason why quarantine is in place:nickname

# запрещенные ники
# Q:*:объяснение запрета:запрещенное_имя

Q:*:Reserved for real IRC Operators:*IRCop*
Q:*:Reserved for services:*C*h*a*n*S*e*r*v*
Q:*:Reserved for services:*N*i*c*k*S*e*r*v*
Q:*:Reserved for services:*M*e*m*o*S*e*r*v*
Q:*:Reserved for services:*O*p*e*r*S*e*r*v*
Q:*:Reserved for services:*H*e*l*p*S*e*r*v*

#=========================# Kill Lines #=========================#
#
# K:hostmask:reason:username
#
# Examples:
#
# K:*lamuhz.hackerinc.net:Causing all sorts of problems:*
#
# K:*:Dont IRC as root:root
#

#=========================# Zap Lines #=========================#
#
# Z:IP mask:reason for zapping:*
#
# Example (ipv4):
#
# Z:199.234.13.*:Insecure shell box responsible for massive clone attacks:*
#
# Example (ipv6):
#
# Z:[::ffff:199.234.13.*]:Insecure shell box responsible for massive clone attacks:*
# Z:[3ffe:1337:1337:1337:*]:for abuseing our services:*
#

#=========================# Exempt Lines #=========================#
#
# E:hostmask::username
#
# Please note it would be very smart to keep the list of E lines as
# short as possible.
#
# Example:
#
# E:Tsunami.Shadow-Realm.org::darkshadow
#

#=========================# Super Exempt Lines #=========================#
#
# F:hostname::username
#
# Example:
#
# F:Arcadia.Shadow-Realm.org::shadow
#

В ircd.ini есть строка:

Include ........................: networks/lost.network

так вот этот файл я создал из template.network.

Смотрим /usr/pkg/etc/networks/lost.network:

ver^2.1.6
#
# Template Network Configuration File
# --------------------------------------------
# Added-at: <day> <month> <year>
# Author: <nick> (<real name>)
# E-Mail: <email>
# ----------------------------------------------------------------------------------------------------------------
# This is a template so you can create your own network configuration files
# Just follow the instructions and it should work fine.
#
# Email your networks settings file and any updates to Ultimate-Devel@Shadow-Realm.org
# for it to be included in future releases.
#
# IMPORTANT:
# Do not comment out any settings or leave any settings empty, it can lead to crashes when the IRCd
# tries to access the settings.
#
# 0 = Выкл 1 = Вкл unless stated otherwise for specific settings.
# ----------------------------------------------------------------------------------------------------------------
#
# $Id: template.network 739 2004-01-17 22:26:10Z shadowmaster $

# 0 = Выкл 1 = Вкл

# This specify the short name of the IRC network.
# Examples: DALnet, Undernet, VillageIRC, UltimateIRC, ShadowFire

# название сети
Set ircnetwork .................: [lost]net

# This will be used to display your Networks Name upon connect etc.
# Set this to: The yournetwork IRC Network

# название IRC сети
Set ircnetwork_name ............: [lost]net IRC Network

# This is where your DNS pool is (like irc.dal.net)
# This server is what will be displayed if a server is full.

# сервер IRC по умолчанию
Set defserv ....................: irc.lost-urengoy.ru

# This is the Web Page of your Network.
# Use the form http://www.irc.net/

# сайт сети
Set website ....................: http://www.lost-urengoy.ru/

# This is the Web Page containing the rules/policies of your Network.
# Use the form http://www.irc.net/somepage.html

# страница с правилами сети
Set rules_page .................: http://www.lost-urengoy.ru/

# This is the KLine/Akill address of your Network.

# кому будут писать если их выбрасывает
Set network_kline_address ......: qnub@lost-urengoy.ru

# Set this to 0 if you do not wish your users to have hiddenhosts set
# upon connecting.

# поставьте 0 если хотите чтоб юзера коннектились скрытыми
Set mode_x .....................: 1

# Set this to 1 if you do not wish users to be able to set +x if mode_x is set to 0,
# or if you wish users to be unable to set -x if mode_x is set to 1.

# позволить юзерам устанавливать режим +x
Set mode_x_lock ................: 1

# Set this to 1 if you wish rudimentary clone protection for your network.
# Please note there is no excempts for clone protection at this time.
# This feature is intended as a backup, and its recomended that you make use
# of services bases session limiting.

# защита от клонов
Set clone_protection ...........: 0

# This will determine the maximum number of allowed clones on the network.
# This must be a value between 2 and 10.

# ограничение на количество клонов
Set clone_limit ................: 10

# Set this to allow IRC Operators to clone as much as they want.
# (Discouraged)

# разрешает опам клонироваться сколько им угодно
Set oper_clone_limit_bypass ....: 1

# Do you want to hide U lined servers from /LIST's for non Opers?
# Generally a good idea and required on many Networks.

# скрывать серверы из U-строк в ircd.conf в команде /list для не опов
Set hideulinedservs ............: 1

# Set this if you want to have the servers on your network broadcast
# global connect notices to usermode +F.
# Please note that this feature will easilly waste bandwith on larger networks.

# разрешает глобальные широковещательные соединения серверов
Set global_connects ............: 0

# Set this if you want your operators to be automatically set +p if they have
# the proper OLine flag.
# (Discouraged)

# автоматом устанавливать +p опам для которых существует O-строка в ircd.conf
Set oper_autoprotect ...........: 0

# Currently not used, ignore

# не работает
Set oper_mode_override .........: 3

# Currently not used, ignore

# не работает
Set oper_mode_override_notice ..: 0

# Allows you to have users auto join channels when they connect to the network.
# Channels MUST be listed separated by commas ',' and with no spaces.
#
# Ex: #ShadowRealm,#Citadel,#OffOurMeds
#
# Set to 0 to disable.

# автоматом заджоинвать юзеров на эти каналы при коннекте
Set users_auto_join ............: #lost

# Allows you to have opers auto join channels when they /OPER.
# Channels MUST be listed separated by commas ',' and with no spaces.
#
# Ex: #Help,#OperHelp,#Staff
#
# Set to 0 to disable.

# автоматом заджоинвать опов на эти каналы при коннекте
Set opers_auto_join ............: #lost

# Should the NickServ/NS secure forwarding alias be availible?

# включает форвардинг псевдонима для NickServ/NS
Set enable_nickserv_alias ......: 1

# Should the ChanServ/CS secure forwarding alias be availible?

# включает форвардинг псевдонима для ChanServ/CS
Set enable_chanserv_alias ......: 1

# Should the MemoServ/MS secure forwarding alias be availible?

# включает форвардинг псевдонима для MemoServ/MS
Set enable_memoserv_alias ......: 1

# Should the BotServ/BS secure forwarding alias be availible?

# включает форвардинг псевдонима для BotServ/BS
Set enable_botserv_alias .......: 1

# Should the RootServ/RS secure forwarding alias be availible?

# включает форвардинг псевдонима для RootServ/RS
Set enable_rootserv_alias ......: 0

# Should the OperServ/OS secure forwarding alias be availible?

# включает форвардинг псевдонима для OperServ/OS
Set enable_operserv_alias ......: 1

# Should the StatServ/SS secure forwarding alias be availible?

# включает форвардинг псевдонима для StatServ/SS
Set enable_statserv_alias ......: 1

# Should the HostServ/HS secure forwarding alias be availible?

# включает форвардинг псевдонима для HostServ/HS
Set enable_hostserv_alias ......: 0

# This is the name of your Services Server

# имя сервера сервисов
Set services_server ............: services.lost-urengoy.ru

# This is the name of your Statistical Server

# имя сервера статистики
Set statserv_server ............: services.lost-urengoy.ru

# This is the name of your HostServ Server

# имя сервера HostServ
Set hostserv_server ............: services.lost-urengoy.ru

# This is the clientname of your NickServ client

# имя NickServ клиента
Set nickserv_name ..............: NickServ

# This is the clientname of your ChanServ client

# имя ChanServ клиента
Set chanserv_name ..............: ChanServ

# This is the clientname of your MemoServ client

# имя NickServ клиента
Set memoserv_name ..............: MemoServ

# This is the clientname of your BotServ client

# имя BotServ клиента
Set botserv_name ...............: BotServ

# This is the clientname of your RootServ client

# имя RootServ клиента
Set rootserv_name ..............: RootServ

# This is the clientname of your OperServ client

# имя OperServ клиента
Set operserv_name ..............: OperServ

# This is the clientname of your StatServ client

# имя StatServ клиента
Set statserv_name ..............: StatServ

# This is the clientname of your HostServ client

# имя HostServ клиента
Set hostserv_name ..............: HostServ

# скрытые хосты для разных нужд
# This is the Hidden Hosts Local Opers will get upon Oper Up.
#
Set locop_host .................: qnub-server.lost-urengoy.ru

# This is the Hidden Hosts Global Opers will get upon Oper Up.
#
Set oper_host ..................: qnub-server.lost-urengoy.ru

# This is the Hidden Hosts Guest Admins will get upon Oper Up.
#
Set guestadmin_host ............: qnub-server.lost-urengoy.ru

# This is the Hidden Hosts Server Co-Admins will get upon Oper Up.
#
Set servcoadmin_host ...........: qnub-server.lost-urengoy.ru

# This is the Hidden Hosts Server Admins will get upon Oper Up.
#
Set servadmin_host .............: qnub-server.lost-urengoy.ru

# This is the Hidden Hosts Tech Co-Admins will get upon Oper Up.
#
Set techcoadmin_host ...........: qnub-server.lost-urengoy.ru

# This is the Hidden Hosts Tech Admins will get upon Oper Up.
#
Set techadmin_host .............: qnub-server.lost-urengoy.ru

# This is the Hidden Hosts Network Co-Admins will get upon Oper Up.
#
Set netcoadmin_host ............: qnub-server.lost-urengoy.ru

# This is the Hidden Hosts Network Admins will get upon Oper Up.
#
Set netadmin_host ..............: qnub-server.lost-urengoy.ru
# This is the channel where people can go for help
# It will be shown in /info aswell as /ircdhelp and /help

# канал помощи
Set helpchan ...................: #help

#-------------------------
# End Of Network Settings
#-------------------------

Теперь можно запускать ircd. Делается это скриптом:

# /usr/pkg/ircd

Уже можно общаться. Но на этом мы не остановимся. Идем дальше.

Конфигурационные файлы ircservices лежат в /usr/pkg/lib/services и зовуться
ircservices.conf и modules.conf

Смотрим ircservices.conf (описываю только то в чем уверен,
остальное по умолчанию)

# Example configuration file for Services.  After making the appropriate
# changes to this file, place it in the Services data directory (as
# specified in the "configure" script, default /usr/pkg/lib/ircservices)
# under the name "ircservices.conf".
#
# The format of this file is fairly simple: a line beginning with a # is a
# comment, and any other non-blank line is expected to be a directive and
# parameters, separated by spaces or tabs. For example:
#
# Directive Parameter-1 Parameter-2 ...
#
# Directives are case-insensitive. Note that some directives do not take
# any parameters; these are typically "on-off" directives, for which simply
# including the directive in this file (or removing it) has an effect on
# Services' functionality.
#
# If a parameter's value is a string which includes spaces, enclose the
# string in double quotation marks, like the example below. Quotes may be
# used around any string at all for clarity.
#
# "This is a parameter string with spaces in it"
#
# If you need to include a double quote inside a quoted string, precede it
# by a backslash:
#
# "This string has \"double quotes\" in it"
#
# A backslash can likewise be included by preceding it with another
# backslash.
#
# Time parameters can be specified either as an integer representing a
# number of seconds (e.g. "3600" = 1 hour), or as an integer with a unit
# specifier: "s" = seconds, "m" = minutes, "h" = hours, "d" = days.
# Combinations (such as "1h30m") are also permitted. Examples (all of which
# represent the same length of time, one day):
#
# "86400", "86400s", "1440m", "24h", "1d", "23h60m", "23h59m60s"
#
# In the documentation for each directive, one of the following will be
# included to indicate whether an option is required:
#
# [REQUIRED]
# Indicates a directive which must be given. Without it, Services will
# not start.
#
# [RECOMMENDED]
# Indicates a directive which may be omitted, but omitting it may cause
# undesirable side effects.
#
# [OPTIONAL]
# Indicates a directive which is optional. If not given, the feature
# will typically be disabled. If this is not the case, more
# information will be given in the documentation.
#
# [DISCOURAGED]
# Indicates a directive which may cause undesirable side effects if
# specified.
#
# [DEPRECATED]
# Indicates a directive which will disappear in a future version of
# Services, usually because its functionality has been either
# superseded by that of other directives or incorporated into the main
# program.

###########################################################################
#
# Remote server configuration
#
###########################################################################

# RemoteServer <hostname> <port> <password> [REQUIRED]
# Specifies the remote server hostname and port. The hostname may
# either be a standard Internet hostname or dotted-quad numeric
# address; the port number must be an integer between 1 and 65535
# inclusive. The password is a string which should be enclosed in
# double quotes if it contains any spaces (or just for clarity).
# Make sure to uncomment the directive (remove the leading "#") before
# running Services.
#
# The remote server and port may be overridden at runtime with the
# -remote command-line option. The password may not be set at runtime.

# информация для подключения к irc серверу
# RemoteServer <адрес> <порт> <"нешифрованный пароль">

RemoteServer 127.0.0.1 6667 "plain_text_pass"

# LocalAddress <hostname> [<port>] [OPTIONAL]
# Specifies the local address to bind to before connecting to the
# remote server. This may be useful on multihomed hosts. The hostname
# and port number are specified the same way as with the RemoteServer
# directive. If this is not specified, Services will let the operating
# system choose the local address. If only a hostname is specified,
# Services will bind to that address but let the operating system
# choose the local port number.
#
# If you don't know what this means or don't need to use it, just leave
# the directive commented out.

# информация на какой адрес и порт вешать сервер сервисов

LocalAddress localhost
#LocalAddress host.name.here 6677

###########################################################################
#
# Services identification
#
###########################################################################

# ServerName <name> [REQUIRED]
# Specifies the IRC server name which Services should use when it
# connects to the network.

# имя сервера

ServerName "services.lost-urengoy.ru"

# ServerDesc <text> [REQUIRED]
# Specifies the text which should appear as the server's information in
# /whois and similar queries.

# описание сревера

ServerDesc "Services [lost]net IRC Network"

# ServiceUser <usermask> [REQUIRED]
# Specifies the user@host mask which should be used by the Services
# pseudoclients.

# каким пользователем будут представляться сервисы

ServiceUser "services@services.lost-urengoy.ru"

###########################################################################
#
# Unix group and umask to use
#
###########################################################################

# RunGroup <group> [OPTIONAL]
# Specify the group which Services should run as. <group> can be
# either a group name or an equals sign ("=") followed by a group ID.
# If not specified, Services will use the group ID it is started with.
# Note that Unix setgid permission on the executable file will do the
# same thing, but the setgid permission bit is cleared whenever the
# file is modified, while this setting will always be used (if the
# system permits it) when Services is started.

# под каким пользователем запускать сервер сервисов

RunGroup irc
#RunGroup =65534 # A common value for the "nogroup" group

# Umask <umask> [RECOMMENDED]
# Sets the umask (file creation mask) for Services. This mask is
# applied to all data files created by Services, including database
# files (which are recreated on every database update) and the process
# ID file (PIDFilename, below), and indicates which file permission
# bits are NOT to be set on those files as an octal value. Common
# values are given in the examples below. If not specified, the umask
# in place when Services is started will be used.

# маска на создаваемые файлы

#Umask 077 # Disallows access to all but file owner
# (recommended when RunGroup is not set)
Umask 007 # Allows access to members of file group as well
# (recommended when RunGroup is set)

###########################################################################
#
# Services data filenames
#
###########################################################################

# NOTE: All filenames are relative to the Services data directory.

# LogFilename <filename> [REQUIRED]
# Specifies the name of the file into which Services will log data.
# May be overridden by the -log command-line option. If this name
# contains "%y", "%m", or "%d", they will be replaced by the current
# year, month, or day, respectively, and the logfile will be
# automatically rotated as needed when the date changes.

# файл логов

LogFilename /var/log/ircservices.log

# PIDFilename <filename> [REQUIRED]
# Specifies the name of the file containing Services' process ID.
# Note that if you change this filename, and you are using the
# "ircservices-chk" crontab script provided with Services, you will
# need to change the filename in that file as well.

# файл с номером процесса сервера сервисов

PIDFilename /var/run/ircservices.pid

# MOTDFilename <filename> [REQUIRED]
# Specifies the name of the Message of the Day file.

# файл с сообщением дня, отображаемым при подключении

MOTDFilename ircservices.motd

# LockFilename <filename> [REQUIRED]
# Specifies the name of the data directory lock file. This file is
# created in the data directory when Services begins updating
# databases, and is removed after the databases are updated. If the
# file already exists when Services tries to update the databases,
# Services sends a warning (via wallops) and does not write any data.

# имя файла блокирующего доступ к фалам базы данных во время работы

LockFilename .lock

###########################################################################
#
# Basic functionality
#
###########################################################################

# NoBouncyModes [OPTIONAL]
# Normally, Services will check for the remote IRC server reversing its
# mode changes, and issue a warning (and stop changing modes) if it
# detects such a problem. However, the detection will sometimes
# trigger even when there is no problem, thus preventing channel
# mode-locks and other features from working. If you specify this
# directive, Services will not check for mode bouncing, which can avoid
# this problem if you know your servers are set up correctly.
#
# WARNING: setting this option when your servers are incorrectly
# configured can result in flooding!

#NoBouncyModes

# NoSplitRecovery [OPTIONAL]
# Disables Services' recognition of users returning from netsplits.
# Normally (on networks with some sort of timestamp support in the IRC
# server), Services will check via the timestamp field whether a user
# is the same as the last user who identified for the nick, and allow
# the user access to that nick without requiring identification again
# if the timestamps match. Enabling this directive will force all
# users to re-identify after a netsplit.
#
# It's generally easier on users to leave this disabled, but if you
# suspect one of your servers has been hacked to send false timestamps
# (or you suspect a bug in Services itself) enabling this directive
# will eliminate the possibility of one user "stealing" another's nick
# by pretending to have the same timestamp.
#
# You may also want to uncomment this directive if your servers' clocks
# are very far apart; the less synchronized the servers' clocks are,
# the greater the possibility of someone "taking over" another person's
# nick when a server with a fast clock splits.
#
# NOTE: On DALnet 4.4.15+, Dreamforge, Bahamut, Unreal, and compatible
# networks, Services takes advantage of an IRC server feature to assign
# each user a permanent ID number, which significantly enhances the
# security of this check. On such networks, you should almost always
# leave this directive commented out. See section 3-1-2 of the manual
# for details.

#NoSplitRecovery

# StrictPasswords [RECOMMENDED]
# When enabled, causes Services to perform more stringent checks on
# passwords. If this is disabled, Services will only disallow a
# password if it is the same as the entity (nickname or channel name)
# with which it is associated. When enabled, however, Services will
# also check that the password is at least five characters long, and
# in the future will probably check other things as well.

# строгие пароли (пока не разобрался)

StrictPasswords

# BadPassLimit <count> [RECOMMENDED]
# Sets the number of invalid password tries before Services removes a
# user from the network. If a user enters <count> invalid passwords
# for any Services function or combination of functions during a
# single IRC session (subject to BadPassTimeout, below), Services will
# issue a /KILL for the user. If not given, Services will ignore
# failed password attempts (though they will be logged in any case).
# Note that entering a correct password will _not_ reset this count.

# количество ппоыток воода пароля и параметры наказания

BadPassLimit 10

# BadPassTimeout <time> [OPTIONAL]
# Sets the time after which invalid passwords are forgotten about. If
# a user does not enter any incorrect passwords in this amount of time,
# the incorrect password count will reset to zero. If not given, the
# timeout will be disabled, and the incorrect password count will never
# be reset until the user disconnects.

BadPassTimeout 1h

# BadPassWarning <count> [RECOMMENDED]
# Sets the number of bad passwords _for a single nick or channel_ that
# will be accepted before a warning is sent using WALLOPS/GLOBOPS. If
# not given, no warnings will be sent.

BadPassWarning 5

# UpdateTimeout <time> [REQUIRED]
# Sets the delay between automatic database updates. This timer is
# reset by the OperServ UPDATE command.

UpdateTimeout 5m

# ExpireTimeout <time> [DEPRECATED]
# Formerly used to set the delay between checks for expired nicknames
# and channels. As expiration is now checked for whenever a nickname
# or channel is accessed, this directive now serves no function, and
# is therefore deprecated; it will be removed in the next version of
# Services.

#ExpireTimeout 30m

# WarningTimeout <time> [REQUIRED]

# Sets the interval between sending warning messages for program
# errors via WALLOPS/GLOBOPS.

WarningTimeout 4h

# ReadTimeout <seconds> [REQUIRED]
# Sets the timeout period for reading from the network; this is the
# length of time Services will wait to receive data from an external
# source if none is available before proceeding with other actions,
# such as timeout checking. Note that the parameter is a number of
# seconds, not a "time"; it may also include a fractional part, such as
# "0.5".
#
# This value also influences the period between timeout checks; see the
# TimeoutCheck directive below.

ReadTimeout 3

# TimeoutCheck <seconds> [REQUIRED]
# Sets the (maximum) frequency at which the timeout list is checked.
# This, combined with ReadTimeout above, determine how accurately timed
# events, such as nick kills, occur; it also determines how much CPU
# time Services will use doing this. Higher values will cause less
# accurate timing but less CPU usage. Note that the parameter is a
# number of seconds, not a "time", and may include a fractional part.
#
# This shouldn't be set any higher than 10 seconds, and 1 second or
# less is best if your system is powerful enough (or your network small
# enough) to handle it. 0 will cause the timeout list to be checked
# every time through the main loop, which provides the most accurate
# timeout response but may require too much processing on large
# networks.
#
# Note that if this value is smaller than ReadTimeout (above), then the
# delay between checks of the timeout list may exceed the value given
# here during periods of little or no network activity.

TimeoutCheck 1.0

# PingFrequency <time> [OPTIONAL]
# Sets the time after which Services sends a PING message to its uplink
# if no other network activity has occurred. This can be useful if you
# have a low-activity network and your server keeps dropping Services'
# connection with "Ping timeout". If not set, Services will not send
# PING messages.

#PingFrequency 30s

# MergeChannelModes <seconds> [OPTIONAL]
# WARNING: This directive can have security implications; read
# carefully before enabling.
#
# If this directive is given, it causes Services to not send out
# channel mode changes immediately, but to wait for the given number of
# seconds (which may be fractional) and collect all channel modes to
# send in a single command. For example, if two users enter a channel
# at nearly the same time and both of them are to be opped, instead of
# sending two MODE +o commands, Services will send a single MODE +oo
# command. This option can help with large channels in reducing mode
# floods, particularly when Services first connects or a server
# reconnects after a split; however, the sending of the mode command
# will be slightly delayed, so that the users will have to wait a short
# time before getting chanop privileges. Furthermore, since this
# increases the time before deops, etc. occur, users can take advantage
# of netsplits to "steal ops" for a short time before Services responds.
#
# Services will never send out more than six parameters with each MODE
# command (this limit is part of the IRC protocol specification). If
# more than six +o, +v, etc. modes are to be sent, Services will send
# them out six at a time without waiting for the timeout given with
# this directive. Also, if more than MERGE_CHANMODE_SLOTS (defined in
# config.h; default 3) channels receive modes before the timeout
# expires, those modes will similarly be sent out at that time.
#
# Note that the actual sending of the MODE command may be delayed by as
# much as the TimeoutCheck value; if you use this option, then in
# general you should set TimeoutCheck to the same (or a smaller) value.
# Also, on networks with little traffic there may be an additional
# delay up to the value of ReadTimeout before the modes are sent.
#
# If this option is not set, Services will still collect all mode changes
# resulting from a single event (such as a user joining a channel) and
# send them in a single message as soon as the event processing finishes.

#MergeChannelModes 0.5

# NetBufferSize <total-size> [<per-connection-size>] [RECOMMENDED]
# Sets the maximum amount of memory used by network connection buffers.
# If a second parameter is given, it sets the maximum amount of memory
# used by a single connection; if not given, this defaults to the same
# as the total limit.

NetBufferSize 4194304 1048576 # 4MB and 1MB

# NetBufferLimit <inactive-limit> [<ignore-limit>] [RECOMMENDED]
# Sets the threshold at which Services sends a "busy" reply to PRIVMSGs
# (<inactive-limit>) and at which Services ignores PRIVMSGs entirely
# (<ignore-limit>). Both thresholds apply to non-operator users only;
# PRIVMSGs from IRC operators will always be processed normally. A
# WALLOPS/GLOBOPS message will be sent when Services exceeds or drops
# below either of the thresholds. If the thresholds are set to the
# same value, "busy" messages will never be sent.
#
# The thresholds are expressed as percentages of the value(s) given for
# NetBufferSize above. If both a total size limit and a per-connection
# size limit are specified, the higher of the two percentages is
# checked against these thresholds.
#
# If NetBufferSize is not specified, NetBufferLimit has no effect.

NetBufferLimit 80 95

###########################################################################
#
# Miscellaneous settings
#
###########################################################################

# These are settings which don't belong anywhere else, or which would
# be module settings but apply to multiple modules.

# GuestNickPrefix <value> [REQUIRED]
# Sets the nickname prefix used when Services changes a user's
# nickname (for example, from the "NSForceNickChange" NickServ option).
# A unique series of digits will be appended to this string to form the
# new nickname. This option is ignored for IRC servers which do not
# allow remote clients' nicknames to be forcibly changed, but it must
# be set to something anyway.

GuestNickPrefix "Guest"

# DefTimeZone <time-zone> [OPTIONAL]
# Sets the time zone to be used for displaying the time of day with
# certain commands, such as NickServ INFO. If not given, the system's
# default time zone (the value of the TZ environment variable) is used.
# <time-zone> is the name of the time zone to be used; consult your
# system manual for how time zone names are specified on your system.
# Note that users can set time zones for their own nicknames
# independently; this setting is only used as a default. The
# following example will cause Services to use United States Pacific
# time on most systems:

#DefTimeZone PST8PDT

# LogMaxUsers [OPTIONAL]
# Causes Services to write a message to the log every time a new
# user maximum is reached.

# логирование при каждом достижении максимума пользователей

LogMaxUsers

# EnableGetpass [OPTIONAL]
# Allows use of the NickServ and ChanServ GETPASS commands.

EnableGetpass

# WallGetpass [OPTIONAL]
# Causes Services to send a WALLOPS/GLOBOPS on use of the NickServ
# or ChanServ GETPASS command.

WallGetpass

# WallSetpass [OPTIONAL]
# Causes Services to send a WALLOPS/GLOBOPS whenever a Services
# admin sets a password for a nickname or channel s/he does not
# normally have privileges to set.

WallSetpass

###########################################################################
#
# Modules to load

# далеее идут модули
###########################################################################

# The remainder of this file lists which modules should be loaded by
# Services at startup. Note that modules are loaded in the order they are
# listed in this file; some modules depend on others, and if they are given
# in the wrong order, Services may not be able to start!
#
# Modules are loaded using the LoadModule directive, which has the format:
# LoadModule <module name>
# Available module names are listed below.

###########################################################################

# Base IRC protocol module [REQUIRED]
# These modules provide the base functionality for communicating with
# the remote IRC server, and MUST be loaded before any other module.
# Select the module which matches the IRC server you are using:
# protocol/bahamut DALnet Bahamut server, versions 1.4.25+
# protocol/dalnet DALnet server, version 4.4.13 and earlier
# protocol/dreamforge DALnet Dreamforge server, versions 4.4.15+
# [*]protocol/hybrid Hybrid server, version 7.0
# protocol/monkey Chunky Monkey IRCD, version 1.0 and later
# [*]protocol/ptlink PTlink IRC server, version 6.0 and later
# protocol/rfc1459 RFC1459-compliant servers
# protocol/trircd Trircd server, version 4.0 and later
# protocol/ts8 RFC1459 with TS8 extensions
# protocol/undernet-p9 Undernet server, version 2.9.x only
# protocol/unreal Unreal server, version 3.1.0 and later
# Modules marked with [*] are still in an experimental stage and may
# not be stable.

# в Ultimate используется протокол bahamut

LoadModule protocol/bahamut

###########################################################################

# Encryption module [OPTIONAL]
# These modules enable encryption of passwords used in Services.
# Encryption provides a measure of safety against having passwords
# stolen even if someone gains access to the Services databases.
# Encryption modules MUST be loaded before database modules (below).
# If you do not load an encryption module, passwords will not be
# encrypted.
#
# WARNING: Depending on the encryption module used, you may not be able
# to recover the original passwords once they are encrypted! Modules
# with this behavior are marked "(ONE-WAY)" below.
#
# Encryption modules available:
# encryption/md5 Encryption using the MD5 message-digest
# algorithm (ONE-WAY)

#LoadModule encryption/md5

###########################################################################

# Database access module [REQUIRED]
# These modules provide access to permanent storage for data used by
# various Services modules, and MUST be loaded before any other module
# (except protocol and encryption modules). Select the module
# corresponding to the type of database you want to use:
# database/version4 Database files compatible with version
# 4.5.x of Services

LoadModule database/version4

###########################################################################

# Mail-sending modules [OPTIONAL]
# This set of modules allows Services to send E-mail. This feature is
# currently used to forward memos via E-mail and implement E-mail
# address confirmation. Two modules must be loaded to use mail, the
# main module (mail/main) and one of the following low-level modules:
# mail/smtp [RECOMMENDED]
# Sends mail via the SMTP protocol.
# mail/sendmail [DISCOURAGED]
# Sends mail via a "sendmail" program. This module should
# not be used unless you cannot send mail via SMTP.

LoadModule mail/main
LoadModule mail/smtp
#LoadModule mail/sendmail

###########################################################################

# OperServ modules [RECOMMENDED]
# These modules provide functionality for IRC operators, and allow
# overall management of Services and the IRC network. The base module,
# "operserv/main", contains basic functions, such as channel mode
# changing via Services, juping (banning from the network) of servers,
# management of Services operator/administrator lists, and control of
# Services itself (settings and shutdown/restart). Additionally, the
# following add-on modules are available:
#
# operserv/akill [RECOMMENDED]
# Allows the use of autokills, which prevent users matching
# certain masks from connecting to the network.
#
# operserv/news [OPTIONAL]
# Adds a "news" system, which can be used to send automated
# messages to users when they log onto the network, or to IRC
# operators when they gain operator privileges.
#
# operserv/sessions [OPTIONAL]
# Monitors connections to the network, and sends a warning when
# a large number of connections (often a sign of "cloning") are
# initiated from the same host, optionally killing the users as
# well. However, this module consumes a good deal of CPU time,
# and may slow down Services too much to be usable on large
# networks.
#
# operserv/sline [OPTIONAL]
# Allows the use of S-lines, alternative types of autokills
# which can be used to match against users' nicknames, "real
# names" or IP addresses. (Note that matching against IP
# addresses will not work unless your IRC server supports this
# feature; currently, only the Bahamut server is known to
# support this.)

LoadModule operserv/main
LoadModule operserv/akill
LoadModule operserv/news
LoadModule operserv/sessions
LoadModule operserv/sline

###########################################################################

# NickServ modules [RECOMMENDED]
# These modules provide for the registration of nicknames and
# associated functions. The base module, "nickserv/main", provides the
# core registration functionality, as well as commands to set nickname
# options and maintain the nickname's access list. Additionally, the
# following add-on modules are available:
#
# nickserv/access [OPTIONAL]
# Allows users to be recognized for their nickname based on an
# access list of user@host masks. Note that if the SECURE
# option is set for the nick (which is the default), users will
# still need to identify for their nicks, but if their address
# is on the access list, Services will not issue nick kills or
# change their nick.
#
# nickserv/autojoin [OPTIONAL]
# Allows users to request that Services automatically make
# them join certain channels upon identifying. This module
# requires an IRC server which supports the SVSJOIN command;
# currently, Unreal and trircd are known to support this.
#
# nickserv/link [OPTIONAL]
# Allows users to create and remove links (aliases) to their
# nickname using the LINK and UNLINK commands, and provides a
# LISTLINKS command to list all links in a group of linked
# nicks.
# NOTE: This module cannot be used at the same time as the
# "nickserv/oldlink" module.
#
# nickserv/mail-auth [OPTIONAL; RECOMMENDED for large networks]
# Allows verification of E-mail addresses for nicknames by
# sending an authentication code to the address given in the
# REGISTER or SET EMAIL command and disallowing identification
# for the nick until the user sends the authentication code to
# NickServ with the AUTH command.
#
# nickserv/oldlink [DEPRECATED]
# Provides LINK, UNLINK, and LISTLINK commands that mimic the
# the behavior of links in version 4.x of Services. This
# module is intended to ease the transition to version 5.x,
# and will likely be removed in a future version.
# NOTE: This module cannot be used at the same time as the
# "nickserv/link" module.
#
# nickserv/sendpass [OPTIONAL]
# Provides a SENDPASS command which allows users to have
# NickServ send their nickname password to the E-mail address
# they have registered for the nickname.
# NOTE: This module requires the "nickserv/mail-auth" module.
#
# The "operserv/main" module is REQUIRED for all NickServ modules.

LoadModule nickserv/main
LoadModule nickserv/access
#LoadModule nickserv/autojoin
LoadModule nickserv/link
LoadModule nickserv/mail-auth
#LoadModule nickserv/oldlink
LoadModule nickserv/sendpass

###########################################################################

# ChanServ modules [RECOMMENDED]
# These modules provide for the registration of channels and associated
# functions. The base module, "chanserv/main", provides the core
# registration functionality, as well as commands to set channel
# options and maintain access and autokick lists for the channel.
# Additionally, the following add-on modules are also available:
#
# chanserv/access-levels [OPTIONAL]
# Allows modification of channels' access lists using the
# ACCESS command, as well as modification of channel feature
# access levels (such as auto-op or auto-voice) with the LEVELS
# command.
#
# chanserv/access-xop [OPTIONAL]
# Allows modification of channels' access lists using the SOP,
# AOP, and VOP (as well as HOP on servers supporting halfops)
# commands. This module may be used along with the
# "chanserv/access-levels" module, but use of the LEVELS
# command may cause unexpected behavior with respect to these
# commands.
#
# chanserv/sendpass [OPTIONAL]
# Provides a SENDPASS command which allows channel founders to
# have ChanServ send the password for a channel to the E-mail
# address they have registered for their nickname.
# NOTE: This module requires the "nickserv/mail-auth" module.
#
# The "operserv/main" and "nickserv/main" modules are REQUIRED for all
# ChanServ modules.

LoadModule chanserv/main
LoadModule chanserv/access-levels
#LoadModule chanserv/access-xop
LoadModule chanserv/sendpass

###########################################################################

# MemoServ modules [RECOMMENDED]
# These modules provide the ability to send "memos" (short messages) to
# users who are offline, which the user can then read at a later time.
# Memos may be sent to channels as well, and will be readable by anyone
# who has the proper access in the channel. The base module,
# "memoserv/main", provides this functionality. The following add-on
# modules are also available:
#
# memoserv/forward [OPTIONAL]
# Allows users to have their memos mailed to them instead of
# storing them in Services' databases.
# NOTE: This module requires the "nickserv/mail-auth" module.
#
# memoserv/ignore [RECOMMENDED]
# Allows users to create a list of other users (by nickname or
# user@host mask) who are not permitted to send them memos.
#
# The "operserv/main" and "nickserv/main" modules are REQUIRED for all
# MemoServ modules.

LoadModule memoserv/main
LoadModule memoserv/forward
LoadModule memoserv/ignore

###########################################################################

# StatServ modules [OPTIONAL]
# These modules provide a system to keep track of detailed network
# statistics. Services normally tracks the highest number of users
# seen on the network, but StatServ can report on number of servers
# online, number of users per server, and other information. The base
# module is "statserv/main"; no add-on modules are currently available.

LoadModule statserv/main

###########################################################################

# HelpServ module [OPTIONAL]
# This module provides an online help system that can serve user-
# configurable data. This is separate from the help messages used by
# NickServ, ChanServ, and so on, and simply displays text files from a
# directory (specified in modules.conf). This can be used, for example,
# to provide network policy information, contact addresses and the like
# in a central location.

LoadModule misc/helpserv

###########################################################################

# DevNull module [OPTIONAL]
# This module creates a pseudoclient which, like its Unix namesake
# /dev/null, simply discards all messages sent to it. This module
# serves little purpose other than being a toy of sorts, but the author
# has found it occasionally useful as a /query target in ircII to avoid
# sending /msg's to the wrong person.

LoadModule misc/devnull

###########################################################################

# HTTP server modules [OPTIONAL]
# These modules add an HTTP server to Services, which can be used to
# report on Services status, perform nickname and channel queries and
# maintenance, and so on. The main module ("httpd/main") provides the
# core server functionality; queries and such are handled by
# sub-modules, as listed below:
#
# httpd/dbaccess [OPTIONAL]
# Allows access to the Services database (nickname and channel
# information, autokill list, ec.) via a web browser.
#
# httpd/debug [OPTIONAL]
# Displays a "debug page" showing the data for the request
# received by the server. Enabling this module does not allow
# access to any internal Services data or otherwise cause
# security problems, but as it does take up memory and have a
# minor impact on performance, it should generally not be
# enabled on production systems.
#
# httpd/redirect [OPTIONAL]
# Redirects browsers to URLs associated with nicknames and
# channels. For example, if a nick "SomeNick" had the URL
# "http://somenick.org/" registered with NickServ, then
# "http://services.example.net/~SomeNick/" would be redirected
# to "http://somenick.org/".
#
# http/top-page [OPTIONAL]
# Allows a file or redirect to be served for access to the top
# page of the server (http://servername/).
#
# In addition, "authorization modules" are available to limit access
# to certain resources. The following authorization modules are
# available:
#
# httpd/auth-ip [OPTIONAL]
# Restricts access to resources based on the client's IP
# address.
#
# httpd/auth-password [OPTIONAL]
# Restricts access to resources based on a username and
# password.
#
# NOTE: Authorization modules are checked in the order in which they
# are loaded, as are ordinary (request handler) modules.

#LoadModule httpd/main
#LoadModule httpd/auth-ip
#LoadModule httpd/auth-password
#LoadModule httpd/dbaccess
#LoadModule httpd/debug
#LoadModule httpd/redirect
#LoadModule httpd/top-page

###########################################################################

# Miscellaneous modules [OPTIONAL]
# These are modules which do not fit easily into any other category:
#
# misc/xml-export
# Provides the ability to export the Services database in XML
# format. If this module is loaded, the httpd/dbaccess module
# will use it to provide an XML download link.
#
# misc/xml-import
# Provides the ability to import data in XML format (such as
# another Services database). If this module is loaded, the
# httpd/dbaccess module will use it to provide an XML
# download link; note that XML importing via this link may
# require the httpd/main RequestBufferSize setting in
# modules.conf to be increased. This module requires the
# chanserv/main module to be loaded.

LoadModule misc/xml-export
LoadModule misc/xml-import

###########################################################################

# End of example-ircservices.conf

И напоследок modules.conf в котором настраиваются загружаемые
в ircservices.conf модули. К этому файл я вообще не прикасался
так что смотрим и анализируем:

# Example module configuration file for Services.  After making the
# appropriate changes to this file, place it in the Services data directory
# (as specified in the "configure" script, default /usr/pkg/lib/services)
# under the name "modules.conf".

###########################################################################
#
# Protocol module settings
#
###########################################################################

# Enter the protocol name here, then uncomment the appropriate directives.

Module protocol/(insert protocol name here)

# NetworkDomain domain [RECOMMENDED]
# Protocols: bahamut, dalnet, dreamforge, monkey, ptlink, rfc1459,
# trircd, ts8, undernet-p9
#
# Specifies the common domain, if any, shared by all servers on
# your IRC network; this is required for global notices to function
# properly. Make sure you do not include a "." before the domain
# name. If you do not specify this, some or all users may not
# receive global notices.

#NetworkDomain "example.net"

# CSSetChannelTime [OPTIONAL]
# Protocols: bahamut, monkey, trircd, unreal
#
# When enabled, causes Services to set the "creation time" (the
# time at which the first user joined the channel) of a registered
# channel to the time at which the channel was registered. This
# can help prevent spurious mode changes and "op hacking" when a
# split server reconnects to the network. When using Unreal,
# however, the first user to join the channel when it is empty gets
# set -o and +o in quick succession due to limitations of the IRC
# server; if this bothers you, do not enable this option. Also, some
# servers (such as Bahamut) generate server notices each time a
# channel's timestamp is changed, which can be safely ignored.

CSSetChannelTime

# ServerNumeric <numeric> [RECOMMENDED]
# Protocols: unreal
#
# Makes Services send a numeric to the remote server on connect.
# This must be a value between 1 and 254, and must not be in use by
# any other IRC server on the network. If you do not want to use a
# numeric for Services, comment the directive out.

#ServerNumeric 1

# SetServerTimes [<time>] [RECOMMENDED]
# Protocols: unreal
#
# Causes Services to synchronize all servers' internal clocks with
# its own; this can help avoid potential problems with users
# improperly gaining chanops, particularly during netsplits. If a
# time parameter is given, Services will repeatedly synchronize the
# servers clocks at that interval, otherwise synchronization will
# only be performed at startup.

#SetServerTimes
#SetServerTimes 12h

EndModule

###########################################################################
#
# Mail module configuration
#
###########################################################################

Module mail/main

# FromAddress <email> [REQUIRED]
# Specifies the E-mail address to be used on outgoing mail. Make
# sure you enter the correct address here before uncommenting the
# directive.

FromAddress irc@lost-urengoy.ru

# FromName <name> [OPTIONAL]
# Specifies the "real name" to be used on outgoing mail. Make sure
# to include quotes if this is a multi-word string.

FromName "[lost]net IRC Service"

EndModule

################################ Sendmail-based low-level module

Module mail/sendmail

# SendmailPath <path> [REQUIRED]
# Specifies the full path to the "sendmail" program to be used to
# send mail. This program must accept a command-line option "-t"
# to extract recipient addresses from a mail message given on
# standard input (the standard "sendmail" program does this).
# The program will be executed with the same environment as
# Services itself is run with.

SendmailPath /usr/sbin/sendmail

EndModule

################################ SMTP-based low-level module

Module mail/smtp

# RelayHost <hostname> [REQUIRED]
# Specifies the host to which all mail will be sent, e.g. your
# local mail server. This directive may be given multiple times to
# specify backup servers; the servers will be tried in the order
# listed.

RelayHost qnub-server.lost-urengoy.ru

# SMTPName <hostname> [REQUIRED]
# Specifies the hostname Services will use in the HELO command to
# the remote server. Normally, this should be set to the same as
# the hostname of the machine Services runs on.

SMTPName qnub-server.lost-urengoy.ru

# MaxSockets <count> [REQUIRED]
# Specifies the maximum number of sockets to the mail server which
# can be open at once.

MaxSockets 100

EndModule

###########################################################################
#
# OperServ configuration
#
###########################################################################

Module operserv/main

# OperServName <nick> <string> [REQUIRED]
# Specifies the nickname (first parameter) and "real" name (second
# parameter) used by the OperServ pseudoclient.

OperServName "OperServ" "Operator Server"

# GlobalName <nick> <string> [REQUIRED]
# Specifies the nickname (first parameter) and "real" name (second
# parameter) used by the global-noticer pseudoclient. This client
# is used to send messages from the OperServ GLOBAL command and
# news messages.

GlobalName "Global" "Global Noticer"

# OperServDB <name> [REQUIRED]
# Specifies the name of the OperServ database. When using the
# standard database module, this is the name of the file in which
# the data is stored.

OperServDB "oper.db"

# ServicesRoot <nick> [REQUIRED]
# Specifies the Services "super-user". The super-user, or "root" as
# in Unix terminology, is the only user who can add or delete
# Services admins.
#
# This is commented out by default; make sure you insert the correct
# nick before uncommenting it.

ServicesRoot qnub

# KillClonesAutokill <expiry-time> [RECOMMENDED]
# Causes Services to add an autokill for hosts killed using the
# KILLCLONES command, to prevent the clients from immediately
# reconnecting. The expiry-time parameter sets the expiry time for
# the autokill.
#
# If the autokill module (operserv/akill) is not loaded, this
# directive has no effect.

KillClonesAutokill 30m

# AllowRaw [DISCOURAGED]
# Enables use of the OperServ RAW command. This command can be
# used for testing IRC server features and other limited uses, but
# can also wreak havoc on a network if used improperly; use with
# extreme caution.

#AllowRaw

# WallOper [OPTIONAL]
# Causes Services to send a WALLOPS/GLOBOPS when a user becomes an
# IRC operator. Note that this can cause WALLOPS floods when
# Services first connects to the network.

WallOper

# WallBadOS [OPTIONAL]
# Causes Services to send a WALLOPS/GLOBOPS if a non-IRC-operator
# tries to use OperServ.

WallBadOS

# WallOSChannel [OPTIONAL]
# Cause Services to send a WALLOPS/GLOBOPS on use of any of the
# MODE, KICK, CLEARMODES, and CLEARCHAN commands.

WallOSChannel

# WallSU [OPTIONAL]
# Causes Services to send a WALLOPS/GLOBOPS whenever a Services
# admin successfully obtains Services super-user privileges with
# the SU command. Note that Services will always send a
# WALLOPS/GLOBOPS when an incorrect password is given to the SU
# command or a user without Services admin privileges attempts to
# use the SU command.

WallSU

EndModule

################################ Autokill module settings

Module operserv/akill

# AutokillDB <name> [REQUIRED]
# Specifies the name of the autokill database. When using the
# standard database module, this is the name of the file in which
# the data is stored.

AutokillDB "akill.db"

# AutokillReason <reason> [REQUIRED]
# The reason to use when sending out KILLs for autokills and with
# the actual AKILL/GLINE commands. Some servers show this reason
# to users if their connection is rejected because they match an
# autokill. If you include a "%s" in the reason, it will be
# replaced by the reason given with the autokill itself.

AutokillReason "You are banned from this network"
#AutokillReason "Autokilled: %s"

# AutokillExpiry <time> [RECOMMENDED]
# Sets the default expiry time for autokills. If not defined,
# autokills will not expire by default.

AutokillExpiry 30d

# AkillChanExpiry <time> [REQUIRED]
# Sets the default expiry time for autokills added by an AKILLCHAN
# command.

AkillChanExpiry 7d

# OperMaxExpiry <time> [OPTIONAL]
# Sets the maximum expiry time usable by Services operators. If
# not defined, Services operators can set any expiry time, just as
# Services administrators can. If this is set to a value lower
# than AutokillExpiry or AkillChanExpiry, autokills entered without
# an expiry time will use this setting instead of the relevant
# default.

#OperMaxExpiry 7d

# EnableExclude [OPTIONAL]
# Causes autokill exclusions to be usable. If not given, the
# EXCLUDE command will be unavailable, and any autokill
# exclusions previously added will be ignored.
#
# NOTICE: On IRC servers without autokill exclusion functionality
# (such as that in trircd version 5), this will cause autokills to
# not be sent to the server; instead, Services will issue a KILL
# for each user that matches an autokill and does not match any
# autokill exclusions. This is necessary to allow Services to
# apply exclusions to users before they are disconnected.

EnableExclude

# ExcludeReason <reason> [REQUIRED if EnableExclude set]
# The reason to use when sending out EXCLUDE commands on servers
# which support them. If you include a "%s" in the reason, it will
# be replaced by the reason given with the exclusion itself.

ExcludeReason "IRC operator host"
#ExcludeReason "Excluded from autokills: %s"

# ExcludeExpiry <time> [OPTIONAL]
# Sets the default expiry time for autokill exclusions. If not
# defined, autokill exclusions will not expire by default.

ExcludeExpiry 30d

# ImmediatelySendAutokill [OPTIONAL]
# Causes OperServ to inform all servers of a new autokill the
# moment it is added, rather than waiting for someone to match it
# first. (Note that autokill exclusions are always sent to the
# server immediately; this is to avoid an autokill being triggered
# by a non-excluded match before the exclusion has been sent,
# resulting in the excluded users being autokilled as well.)

#ImmediatelySendAutokill

# WallOSAkill [OPTIONAL]
# Cause Services to send a WALLOPS/GLOBOPS on use of the AKILL or
# EXCLUDE command to add or delete autokills or exclusions.

WallOSAkill

# WallAutokillExpire [OPTIONAL]
# Causes Services to send a WALLOPS/GLOBOPS whenever an autokill
# or autokill exclusion expires.

WallAutokillExpire

EndModule

################################ News module settings

Module operserv/news

# NewsDB <name> [REQUIRED]
# Specifies the name of the news database. When using the standard
# database module, this is the name of the file in which the data
# is stored.

NewsDB "news.db"

EndModule

################################ Sessions module settings

Module operserv/sessions

# ExceptionDB <name> [REQUIRED]
# Specifies the name of the exception database. When using the
# standard database module, this is the name of the file in which
# the data is stored.

ExceptionDB "exception.db"

# DefSessionLimit <limit> [RECOMMENDED]
# Default session limit per host. Once a host reaches its session
# limit, all clients attempting to connect from that host will be
# killed. A value of zero (or omitting the option entirely) means
# an unlimited session limit.

DefSessionLimit 3

# MaxSessionLimit <limit> [OPTIONAL]
# The maximum session limit that may be set for a host in an
# exception.

MaxSessionLimit 100

# ExceptionExpiry <time> [RECOMMENDED]
# Sets the default expiry time for exceptions. If not set,
# exceptions will not expire by default.

ExceptionExpiry 1d

# SessionLimitExceeded <message> [OPTIONAL]
# The message that will be NOTICE'd to a user just before they are
# removed from the network because their host's session limit has
# been exceeded. It may be used to give a slightly more
# descriptive reason for the impending kill as opposed to simply
# "Session limit exceeded". If this is commented out, nothing will
# be sent.

SessionLimitExceeded "The session limit for your host %s has been exceeded."

# SessionLimitDetailsLoc <message> [OPTIONAL]
# Same as above, but should be used to provide a website address
# where users can find out more about session limits and how to go
# about applying for an exception. If this is commented out,
# nothing will be sent.
#
# This option has been intentionally commented out in an effort to
# remind you to change the URL it contains. It is recommended that
# you supply an address/URL where people can get help regarding
# session limits.

#SessionLimitDetailsLoc "Please visit http://your.website.url/ for more information about session limits."

# SessionLimitAutokill <max-kill-interval> <num-kills> <expiry> <reason> [OPTIONAL]
# With this option, Services will add an automatic autokill when
# the same host's session limit is exceeded repeatedly in a short
# period of time. If not given, autokills will not be
# automatically added (Services will just keep killing users from
# the host as they come on). Note that the autokill module
# (operserv/akill) must be loaded for this to work.
#
# <max-kill-interval> sets the maximum interval which can elapse
# between kills before the kill counter is reset.
#
# <num-kills> sets the number of kills before an autokill is added.
#
# <expiry> sets the expiration time for the autokill.
#
# <reason> sets the reason for the autokill.

#SessionLimitAutokill 10s 5 30m "Exceeding session limit"

# WallOSException [OPTIONAL]
# Cause Services to send a WALLOPS/GLOBOPS on use of the EXCEPTION
# command to add or delete a session exception.

#WallOSException

# WallExceptionExpire [OPTIONAL]
# Causes Services to send a WALLOPS/GLOBOPS whenever a session
# limit exception expires.

#WallExceptionExpire

EndModule

################################ S-line module settings

Module operserv/sline

# SlineDB <name> [REQUIRED]
# Specifies the name of the S-line database. When using the
# standard database module, this is the name of the file in which
# the data is stored.

SlineDB "sline.db"

# SGlineReason <reason> [REQUIRED]
# The reason to use when sending out KILLs and SGLINE commands.
# Some servers show this reason to users if their connection is
# rejected because they match an SGline. If you include a "%s"
# in the reason, it will be replaced by the reason given with the
# SGline entry itself.

SGlineReason "Invalid real name"
#SGlineReason "Invalid real name: %s"

# SQlineReason <reason> [REQUIRED]
# The reason to use when sending out KILLs and SQLINE commands.
# Some servers show this reason to users if their connection is
# rejected because they match an SQline. If you include a "%s"
# in the reason, it will be replaced by the reason given with the
# SQline entry itself.

SQlineReason "Reserved nickname"
#SQlineReason "Reserved nickname: %s"

# SZlineReason <reason> [REQUIRED]
# The reason to use when sending out KILLs and SZLINE commands.
# Some servers show this reason to users if their connection is
# rejected because they match an SZline. If you include a "%s"
# in the reason, it will be replaced by the reason given with the
# SZline entry itself.

SZlineReason "You are banned from this network"
#SZlineReason "Z-lined: %s"

# ImmediatelySendSline [OPTIONAL]
# Causes OperServ to inform all servers of a new S-line the moment
# it is added, rather than waiting for someone to match it first.

#ImmediatelySendSline

# SGlineExpiry <time> [OPTIONAL]
# Sets the default expiry time for SGlines. If not defined,
# SGlines of that type will not expire by default.

#SGlineExpiry 30d

# SQlineExpiry <time> [OPTIONAL]
# Sets the default expiry time for SQlines. If not defined,
# SQlines of that type will not expire by default.

#SQlineExpiry 30d

# SZlineExpiry <time> [OPTIONAL]
# Sets the default expiry time for SZlines. If not defined,
# SZlines of that type will not expire by default.

SZlineExpiry 30d

# WallOSSline [OPTIONAL]
# Cause Services to send a WALLOPS/GLOBOPS on use of the SGLINE,
# SQLINE, or SZLINE commands to add or delete S-lines.

#WallOSSline

# WallSlineExpire [OPTIONAL]
# Causes Services to send a WALLOPS/GLOBOPS whenever an autokill
# expires.

#WallSlineExpire

# SQlineIgnoreOpers [OPTIONAL]
# Allows IRC operators to use nicknames that match an SQline.
# (Note that this may not function properly if the IRC server does
# not allow IRC operators to use such nicknames.)

SQlineIgnoreOpers

# SQlineKill [OPTIONAL]
# Normally, users whose nickname matches an SQline will have their
# nickname changed (on servers which support forced nickname
# changing) instead of being killed. Setting this option causes
# such users to be killed even on such servers, which may be
# helpful for dealing with clone attacks.
#
# Note that if this option is set, Services will not send SQlines
# to the IRC network; if it did, the IRC servers would step in and
# send the user an "invalid nickname" message before Services had a
# chance to kill the user.

#SQlineKill

EndModule

###########################################################################
#
# NickServ configuration
#
###########################################################################

Module nickserv/main

# NickServName <nick> <string> [REQUIRED]
# Specifies the nickname (first parameter) and "real" name (second
# parameter) used by the NickServ pseudoclient.

NickServName "NickServ" "Nickname Server"

# NickServDB <name> [REQUIRED]
# Specifies the name of the nickname database. When using the
# standard database module, this is the name of the file in which
# the data is stored.

NickServDB "nick.db"

# NSEnableRegister [OPTIONAL]
# Allows the REGISTER command to be used. This is usually a good
# thing, but if you don't want your users to be able to register
# nicknames, remove (or comment out) this directive. Note that you
# will need to at least enable this to register the Services
# super-user nick (defined in the operserv/main ServicesRoot
# directive), or you will not be able to use any privileged
# OperServ functions!

NSEnableRegister

# NSRegEmailMax <count> [OPTIONAL]
# Sets the maximum number of nicknames that can be registered to a
# single E-mail address; this affects both ordinary registration as
# well as changing the address using SET EMAIL, and also nickname
# linking (if the appropriate module module is loaded). If not
# given, there is no limit.
#
# This option is most useful in combination with NSRequireEmail,
# below.

NSRegEmailMax 5

# NSRequireEmail [OPTIONAL]
# Makes an E-mail address required at registration time. Users
# also will not be able to clear the address once registered,
# though they can change it. If not set, an E-mail address is not
# required (but may still be given), and the address may be cleared
# later on.

NSRequireEmail

# NSRegDelay <time> [RECOMMENDED]
# Sets the minimum length of time between consecutive uses of the
# REGISTER command. If not given, this restriction is disabled.
#
# WARNING: Not setting NSRegDelay, or setting it too low, will not
# only allow "registration flooding", but, if the
# mail-auth module is also loaded, will also allow users
# to abuse this command to send large quantities of mail
# (mailbombs) to arbitrary users!

NSRegDelay 5m

# NSInitialRegDelay <time> [OPTIONAL]
# Sets the minimum length of time the user must be connected before
# using the REGISTER command for the first time. If not given,
# this restriction is disabled. This option can be helpful in
# preventing malicious bots from flooding your network with
# registrations.

#NSInitialRegDelay 30s

# NSDef... [OPTIONAL]
# Sets the default options for newly registered nicks. Note that
# changing these options will have no effect on nicks which are
# already registered. Options not listed here will be unset on new
# nicks.
#
# If both NSDefKill and NSDefKillQuick are given, NSDefKillQuick
# takes precedence. KILL IMMED cannot be specified as a default.

#NSDefKill
#NSDefKillQuick
NSDefSecure
#NSDefPrivate
NSDefHideEmail
NSDefHideUsermask
#NSDefHideQuit
NSDefMemoSignon
NSDefMemoReceive

# NSExpire <time> [RECOMMENDED]
# Sets the length of time before a nick registration expires. If
# not set, nicknames will not expire.

NSExpire 30d

# NSExpireWarning <time> [OPTIONAL]
# Sets the length of time before nick expiration during which
# warnings are sent to the user when the user is online (and not
# identified). If not set, no warnings will be sent; however, a
# message will still be sent when the nickname actually expires.

NSExpireWarning 3d

# NSSuspendExpire <time> <grace-period> [RECOMMENDED]
# Sets the default expiry time and recovery grace period for
# nickname suspensions. (The expiry time can be set individually
# for each suspension; the grace period cannot.)
#
# The recovery grace period is the length of time a nick must exist
# for, after being unsuspended, before it is allowed to expire.
# This gives the owner a chance to reclaim the nick. It is
# enforced, if necessary, by adjusting the "last seen time" value,
# as well as the AUTH timeout when the mail-auth module is in use,
# when the nick is unsuspended. If set to zero, nicknames that are
# suspended for longer than "NSExpire" will be expired (dropped)
# during the next check for nickname expiration, giving the owners
# very little time to identify for their nicknames and prevent
# their expiry.
#
# If not specified, nickname suspensions will not expire by
# default, and there will be no grace period for recovering the nick.

NSSuspendExpire 25d 5d

# NSShowPassword [OPTIONAL]
# Causes the user's password to be sent back to them in a NOTICE at
# registration time, as a reminder.

NSShowPassword

# NSEnforcerUser <user>[@<host>] [REQUIRED]
# Sets the username (and possibly hostname) used for the fake user
# created when NickServ collides a user. Should be in user@host
# format. If the host is not given, the one from ServicesUser is
# used.

NSEnforcerUser enforcer
#NSEnforcerUser enforcer@localhost.net

# NSForceNickChange [OPTIONAL]
# When enabled, makes NickServ change a user's nick to a
# "Guest######" nick instead of killing them when enforcing a
# "nick kill". (The actual nickname used is determined by the
# GuestNickPrefix setting in ircservices.conf.)
#
# This setting has no effect with IRC servers that do not support
# forcibly changing a client's nickname, and a warning will be
# written to the log file if this option is used in such a case.

NSForceNickChange

# NSReleaseTimeout <time> [REQUIRED]
# Sets the delay before a NickServ-collided nick is released.

NSReleaseTimeout 1m

# NSAllowKillImmed [OPTIONAL]
# When given, allows the use of the IMMED option with the NickServ
# SET KILL command.

#NSAllowKillImmed

# NSListOpersOnly [OPTIONAL]
# When enabled, limits use of the NickServ LIST and LISTEMAIL
# commands to IRC operators.

#NSListOpersOnly

# NSListMax <count> [REQUIRED]
# Specifies the maximum number of nicks to be returned for a
# NickServ LIST or LISTEMAIL command.

NSListMax 50

# NSSecureAdmins [RECOMMENDED]
# When enabled, prevents the use of the DROP, GETPASS, and SET
# PASSWORD commands by Services admins on other Services admins or
# the Services root.

NSSecureAdmins

# NSEnableDropEmail [OPTIONAL]
# Allows the DROPEMAIL command to be used. This command can help
# recover from mass-registration attacks, but can also destroy your
# database if used improperly.

#NSEnableDropEmail

# NSDropEmailExpire [REQUIRED]
# Sets the maximum length of time allowed between a DROPEMAIL
# command and the corresponding DROPEMAIL-CONFIRM command.

NSDropEmailExpire 10m

# NSHelpWarning <time> [OPTIONAL]
# When enabled, displays a "do not abuse NickServ" warning at the
# end of the NickServ HELP output similar to previous versions of
# Services. Otherwise, the warning is not displayed.

#NSHelpWarning

EndModule

################################ Access list module

Module nickserv/access

# NSAccessMax <count> [REQUIRED]
# Sets the maximum number of entries allowed on a nickname access
# list.

NSAccessMax 32

# NSFirstAccessEnable [OPTIONAL]
# When enabled, causes an access entry based on the registering
# user's username and hostname to be automatically added to the
# access list of a newly-registered nickname. When disabled,
# newly-registered nicknames will have an empty access list.

NSFirstAccessEnable

# NSFirstAccessWild [OPTIONAL]
# When enabled, causes the first access list entry added to a newly
# registered nickname to use a wildcard in the hostname when
# appropriate. When disabled, the first access list entry consists
# of the registering user's username and hostname as-is, without
# wildcards. This directive has no effect if NSFirstAccessEnable
# is disabled.

NSFirstAccessWild

EndModule

################################ Autojoin module

Module nickserv/autojoin

# NSAutojoinMax <count> [REQUIRED]
# Sets the maximum number of entries allowed on an autojoin list.
# There is little point in setting this higher than the maximum
# number of channels a client is allowed to join by the server
# (usually 10).

NSAutojoinMax 10

EndModule

################################ Link module

Module nickserv/link

# NSLinkMax <count> [REQUIRED]
# Sets the maximum number of links allowed for a single nickname
# group.

NSLinkMax 20

EndModule

################################ Authentication module

Module nickserv/mail-auth

# NSNoAuthExpire <time> [OPTIONAL]
# Sets the period of time after which a newly registered nickname
# will expire if it is not authenticated. If not specified, the
# standard nickname expiration time (NSExpire) is used.

#NSNoAuthExpire 12h

# NSSendauthDelay <time> [RECOMMENDED]
# Sets the minimum length of time between consecutive uses of the
# SENDAUTH command for the same nick group. If not specified, this
# restriction is disabled.
#
# WARNING: Not setting NSSendauthDelay, or setting it too low, will
# allow users to abuse this command to send large
# quantities of mail (mailbombs) to arbitrary users!

NSSendauthDelay 1d

EndModule

################################ SENDPASS module

Module nickserv/sendpass

# NSSendpassDelay <time> [RECOMMENDED]
# Sets the minimum length of time between consecutive uses of the
# SENDPASS command for the same nick group. If not specified, this
# restriction is disabled.
#
# WARNING: Not setting NSSendpassDelay, or setting it too low, will
# allow users to abuse this command to send large
# quantities of mail (mailbombs) to arbitrary users!

NSSendpassDelay 1d

EndModule

###########################################################################
#
# ChanServ configuration
#
###########################################################################

Module chanserv/main

# ChanServName <nick> <string> [REQUIRED]
# Specifies the nickname (first parameter) and "real" name (second
# parameter) used by the ChanServ pseudoclient.

ChanServName "ChanServ" "Channel Server"

# ChanServDB <name> [REQUIRED]
# Specifies the name of the channel database. When using the
# standard database module, this is the name of the file in which
# the data is stored.

ChanServDB "chan.db"

# CSEnableRegister [OPTIONAL]
# Allows the REGISTER command to be used. This is usually a good
# thing, but if you don't want your users to be able to register
# channels, remove (or comment out) this directive. Note, however,
# that Services administrators and the Services super-user will
# still be able to use the REGISTER command even if this directive
# is not given.

CSEnableRegister

# CSRegisteredOnly [OPTIONAL]
# Treats unregistered channels as if they were forbidden,
# disallowing access by ordinary users to any channels not
# explicitly registered with ChanServ. IRC operators will be
# allowed to enter such channels, as they are for ordinary
# forbidden channels. Note that this directive operates
# independently from the CSEnableRegister directive; if
# CSEnableRegister is commented out, non-Services-admin IRC
# operators will be able to join unregistered channels but will
# not be permitted to register them.

#CSRegisteredOnly

# CSMaxReg <count> [RECOMMENDED]
# Limits the number of channels which may be registered to a single
# nickname. In the case of linked nicks, this limit applies to the
# entire set of linked nicks.

CSMaxReg 20

# CSDef... [OPTIONAL]
# Sets the default options for newly registered channels. Note
# that changing these options will have no effect on channels which
# are already registered. Options not listed here will be unset on
# new channels.

CSDefKeepTopic
#CSDefSecureOps
#CSDefPrivate
#CSDefTopicLock
#CSDefLeaveOps
CSDefSecure
#CSDefOpNotice
#CSDefEnforce
#CSDefHideEmail
#CSDefHideTopic
#CSDefHideMlock

# CSExpire <time> [RECOMMENDED]
# Sets the length of time before a channel expires. If not set,
# channels will not expire.

CSExpire 365d

# CSSuspendExpire <time> [RECOMMENDED]
# Sets the default expiry time and recovery grace period for channel
# suspensions. If not set, channel suspensions will not expire by
# default and there will be no recovery grace period.

#CSSuspendExpire 12d 2d

# CSShowPassword [OPTIONAL]
# If specified, causes the user's password to be sent back to them
# in a NOTICE at registration time, as a reminder.

#CSShowPassword

# CSAccessMax <count> [REQUIRED]
# Sets the maximum number of entries on a channel's access list.
# Channel access lists may contain only registered nicknames;
# therefore, checking each entry on the list requires only a single
# scalar comparison instead of a wildcard match, and this limit may be
# safely set much higher than (for example) the nickname access list
# size limit without impacting performance significantly.

CSAccessMax 1024

# CSAutokickMax <count> [REQUIRED]
# Sets the maximum number of entries on a channel's autokick list.

CSAutokickMax 32

# CSAutokickReason <text> [REQUIRED]
# Sets the default reason for an autokick if none is given.

CSAutokickReason "User has been banned from the channel"

# CSInhabit <time> [REQUIRED]
# Sets the length of time ChanServ stays in a channel after kicking
# a user from a channel s/he is not permitted to be in. This only
# occurs when the user is the only one in the channel.

CSInhabit 15s

# CSRestrictDelay <time> [OPTIONAL]
# When enabled, causes ChanServ to permit users to join channels
# with the RESTRICTED option set if they would be permitted to join
# after identifying for their nick, and to not remove mode +o (ops)
# from users who would be auto-opped if identified for their nick,
# for the given period of time after Services starts up. This gives
# such users time to identify to NickServ before being kicked out of
# restricted channels or getting deopped.

CSRestrictDelay 15s

# CSListOpersOnly [OPTIONAL]
# When enabled, limits use of the ChanServ LIST command to IRC
# operators.

#CSListOpersOnly

# CSListMax <count> [REQUIRED]
# Specifies the maximum number of channels to be returned for a
# ChanServ LIST command.

CSListMax 50

# CSForbidShortChannel [OPTIONAL]
# When enabled, treats the channel "#" as a forbidden channel, not
# allowing any users to join it. When not enabled, the channel "#"
# can be used normally, although ChanServ functions cannot be used
# with it. If CSRegisteredOnly is enabled, this directive has no
# effect (the "#" channel will be treated as forbidden along with
# all other unregistered channel).

#CSForbidShortChannel

EndModule

################################ SENDPASS module

Module chanserv/sendpass

# CSSendpassDelay <time> [RECOMMENDED]
# Sets the period of time which must elapse between SENDPASS
# commands for the same channel. If not specified, the SENDPASS
# command may be used at any time.
#
# NOTE: Since users can only send passwords to nicks they have
# identified for, the potential for E-mail attacks via this
# command is minimal; however, setting this limit too low (or
# not setting it at all) can allow users to slow down
# Services through frequent SENDPASS requests.

CSSendpassDelay 1h

EndModule

###########################################################################
#
# MemoServ configuration
#
###########################################################################

Module memoserv/main

# MemoServName <nick> <string> [REQUIRED]
# Specifies the nickname (first parameter) and "real" name (second
# parameter) used by the MemoServ pseudoclient.

MemoServName "MemoServ" "Memo Server"

# MSMaxMemos <count> [RECOMMENDED]
# Sets the maximum number of memos a user is allowed to keep by
# default. Normal users may set the limit anywhere between zero
# and this value; Services admins can change it to any value or
# disable it. If not given, the limit is disabled by default, and
# normal users can set any limit they want.

MSMaxMemos 20

# MSExpire <time> [OPTIONAL]
# Sets the length of time after a memo is sent until it expires and
# is automatically deleted. If not set, memos will not expire.
# Note that memos sent while MSExpire is disabled will not expire
# even if MSExpire is later enabled.

#MSExpire 3d

# MSExpireUnread [OPTIONAL]
# If specified, unread memos will be expired after the delay given
# in the MSExpire directive just like other memos; normally, unread
# memos do not expire. If MSExpire is not set, this directive is
# ignored.

#MSExpireUnread

# MSSendDelay <time> [RECOMMENDED]
# Sets the delay between consecutive uses of the MemoServ SEND
# command. This can help prevent spam as well as denial-of-service
# attacks from sending large numbers of memos and filling up disk
# space (and memory). A 3-second wait means a maximum average of
# 150 bytes of memo per second per user under the current IRC
# protocol.

MSSendDelay 3s

# MSNotifyAll [OPTIONAL]
# Should we notify all appropriate users of a new memo? This
# applies in cases where a memo is sent to a nick which has other
# nicks linked to it and multiple users are using two or more of
# the linked nicks. Enabling this option will cause MemoServ to
# check all users who are currently online to see whether any have
# nicks which are linked to the target of the memo, and if so,
# notify all of them. This can take a good deal of CPU time on
# larger networks, so you may want to disable it.

MSNotifyAll

EndModule

################################ FORWARD module

Module memoserv/forward

# MSAllowForward [OPTIONAL]
# If given, allows the FORWARD command to be used (the SET FORWARD
# command is always available). While the FORWARD command can be
# useful particularly for users first setting the FORWARD option
# on, a large number of users using the FORWARD ALL command can
# place a significant load on Services.

MSAllowForward

# MSForwardDelay <time> [RECOMMENDED if MSAllowForward is set]
# Sets the minimum length of time between consecutive uses of the
# FORWARD command. If not given, this restriction is disabled.
# (Note that this can allow users to place a significant load on
# Services and/or your mail server!)
#
# If MSAllowForward is not set, this directive is ignored.

MSForwardDelay 10s

EndModule

################################ IGNORE module

Module memoserv/ignore

# MSIgnoreMax [REQUIRED]
# Sets the maximum number of entries a user can have for their
# nickname group's memo ignore list.

MSIgnoreMax 32

EndModule

###########################################################################
#
# StatServ configuration
#
###########################################################################

Module statserv/main

# StatServName <nick> <string> [REQUIRED]
# Specifies the nickname (first parameter) and "real" name (second
# parameter) used by the StatServ pseudoclient.

StatServName "StatServ" "Statistics Server"

# StatServDB <name> [REQUIRED]
# Specifies the name of the StatServ database. When using the
# standard database module, this is the name of the file in which
# the data is stored.

StatServDB "stats.db"

# SSOpersOnly [OPTIONAL]
# Limits the use of StatServ to IRC operators only.

#SSOpersOnly

EndModule

###########################################################################
#
# HTTP server modules
#
###########################################################################

Module httpd/main

# ListenTo <address>:<port> [REQUIRED]
# Specifies the address and port number on which the HTTP server
# will listen for incoming requests. <address> may be specified as
# an IP address (first example below), a hostname (second example),
# or the special string "*", which means "any IP address" (third
# example).
#
# When a hostname is given, as in the second example below,
# Services will look up the address(es) associated with the
# hostname at startup time, and bind to every IP address found.
# This can be useful, for example, with dynamic DNS, in which
# the server's IP address changes periodically; however, the
# hostname lookup can take time--especially if there is no DNS
# server on the local network--and is susceptible to network or
# DNS server outages, so IP addresses or "*" should be used
# whenever possible.
#
# Note that many systems restrict low port numbers to the system
# administrator; in particular, Unix-like systems allow only the
# root user (UID 0) to use ports less than 1024.

#ListenTo 127.0.0.1:12701
#ListenTo services.example.net:8080
#ListenTo *:80

# ListenBacklog [REQUIRED]
# Specifies the maximum number of connections that can be received
# by the operating system without being accepted by Services (the
# second parameter, `backlog', to the listen() system call). If
# you start seeing refused or delayed connections on a busy server,
# try increasing this value.
#
# If you don't understand the above, leave this setting alone.

ListenBacklog 5

# RequestBufferSize <bytes> [REQUIRED]
# Specifies the size of the buffer allocated for each HTTP request.
# Note that this buffer is allocated for every connection, and an
# additional amount of memory will be allocated for header pointers
# (in the pathological case this extra amount could reach 4/3 of
# the value given for this directive). If a client sends a request
# (including POST data) exceeding this value, an error will be
# returned and the connection terminated.
#
# If you don't understand the above, leave this setting alone.

RequestBufferSize 4096

# MaxConnections <count> [RECOMMENDED]
# Specifies the maximum number of simultaneous connections allowed.
# If not given, no limit is placed on the number of connections;
# however, the operating system may impose its own limits, which
# are not under the control of Services.

MaxConnections 10

# MaxRequests <count> [RECOMMENDED]
# Specifies the maximum number of requests that can be made over a
# single connection before the server disconnects it. If not
# given, no limit is placed on the number of requests per
# connection; note that this may allow malicious users to interfere
# with Services' normal operations by sending large numbers of
# requests over a single connection.

MaxRequests 20

# IdleTimeout <time> [RECOMMENDED]
# Specifies the length of time a connection can be idle (not
# sending data) before it will be automatically closed. If not
# given, connections will never be closed automatically.

IdleTimeout 30s

# LogConnections [OPTIONAL]
# If given, a log message will be written for each connection to
# the server.

LogConnections

EndModule

################################ IP address authorization module

Module httpd/auth-ip

# AllowHost <path> <address> [OPTIONAL]
# DenyHost <path> <address> [OPTIONAL]
# Specifies which hosts will be allowed (or not allowed) to access
# resources provided by the HTTP server. The <path> parameter is a
# URL path (not including the "http://host.name"), and matches any
# URL which begins with the same string; for example, "/dir"
# matches both "/dir/file" and "/dirty". The <address> can be an
# IP address, a hostname (as with ListenTo in the main server
# module, all addresses associated with the hostname will be
# allowed or denied), the string "*" (which means all addresses),
# or the special format "<IP-address>/<mask>", where <mask> is an
# integer from 1 to 31 giving the number of bits in the subnet
# address, which indicates that the entire subnet of addressess
# specified should be allowed or denied; for example,
# "192.168.1.64/26" represents the range of addresses from
# 192.168.1.64 to 192.168.1.127.
#
# Examples:
# AllowHost /debug 127.0.0.1 # Allow all requests from localhost
# # to the debug page
# AllowHost / 192.168.0.0/24 # Allow any host in the 192.168.0.*
# # network access to the entire server
# DenyHost / shell.example.org # Deny connections from any address
# # associated with shell.example.org
#
# Multiple AllowHost or DenyHost directives for the same path may
# be used to specify multiple addresses to allow or deny. Each
# condition will be checked in the order they are listed here, and
# the first matching one will be used. For example, these lines:
# AllowHost / 192.168.0.1
# DenyHost / 192.168.0.0/24
# deny access to all hosts in the 192.168.0.* network _except_
# 192.168.0.1. However, the reverse:
# DenyHost / 192.168.0.0/24
# AllowHost / 192.168.0.1
# simply blocks all hosts in the 192.168.0.* network, since the
# first rule matches 192.168.0.1 and the second is never checked.
#
# Access to the entire server can be allowed or denied by using the
# path "/", which matches every URL (since all URLs begin with a
# slash). It is good practice to include such a rule after all
# others to explicitly indicate what should be done with requests
# that do not match any other rule. (If a request does not match
# any rules at all, it is implicitly allowed, but this behavior may
# change in the future and should not be relied on.) For example:
# AllowHost / *
# or:
# DenyHost / *
#
# WARNING: Hostnames are resolved only once at startup; any changes
# in a host's IP address will not be seen by Services.
#
# Note: These directives are listed as "optional" only because the
# module will still load even if no directives are listed;
# however, unless AllowHost/DenyHost directives are given,
# the module will not have any effect.

AllowHost / *

EndModule

################################ Password authorization module

Module httpd/auth-password

# AuthName <name> [REQUIRED]
# Specifies the name to be used by the user's browser when asking
# for a password (as in "Enter username and password for <name>:").

AuthName "IRC Services"

# Protect <path> <user>:<pass> [OPTIONAL]
# Sets the URLs (paths) which will be protected by password
# authorization, and the username and password for each path. The
# username and password can be different for each path. The path
# given will match any URL beginning with that string, as with the
# auth-ip module.
#
# Examples:
# Protect /debug "debug:debug"
# Protect /~ "nickuser:nickpass"
#
# Note: This directive is listed as "optional" only because the
# module will still load even if no directives are listed;
# however, unless Protect directives are given, the module
# will not have any effect. Use a path of "/" to apply
# password protection to the entire server.

EndModule

################################ Database access module

Module httpd/dbaccess

# NOTICE: This module allows complete access to all Services data;
# be certain to protect it from unauthorized access using
# authorization modules or other means.

# Prefix <path> [REQUIRED]
# Sets the URL (path) at which database access will be accessible.
# If this does not end with a slash, one will be appended
# automatically. Access is provided using the following directory
# tree:
#
# <path>/ Main menu
# <path>/operserv/ OperServ data and menu
# <path>/operserv/akill/ Autokill list
# <path>/operserv/news/ News item list
# <path>/operserv/sessions/ Session and exception lists
# <path>/operserv/sline/ S-line lists
# <path>/nickserv/ Nickname list and information
# <path>/chanserv/ Channel list and information
# <path>/statserv/ Network statistics
# <path>/xml-export/ XML-format database download
#
# Categories for which the relevant module is not loaded will not
# be accessible.
#
# WARNING: These functions, particularly the XML export function,
# can cause Services to stop for a significant period of
# time while they are processed!
#
# This is commented out by default; make sure you implement proper
# access protection (see above) before uncommenting it.

#Prefix "/dbaccess"

EndModule

################################ Debug page module

Module httpd/debug

# DebugURL <path> [REQUIRED]
# Sets the URL (path) at which the debug page will be accessible.
# This must begin with a slash.

DebugURL "/debug"

EndModule

################################ Nick/channel redirect module

Module httpd/redirect

# NicknamePrefix <path> [OPTIONAL]
# Sets the URL (path) at which nickname redirects will be
# accessible; all characters after this prefix, up to the next
# slash, will be taken as the nickname. This must begin with a
# slash. The default value, "/~", emulates the traditional home
# page URL of "http://www.example.net/~username/". If you use a
# directory name instead, it must end with a slash, for example:
# "/nickname/". See also ChannelPrefix, below.
#
# If not set, nickname redirects will not be done.

NicknamePrefix "/~"

# ChannelPrefix <path> [OPTIONAL]
# Sets the URL (path) at which channel redirects will be
# accessible; all characters after this prefix, up to the next
# slash, will be taken as the channel name (without the leading
# "#", which cannot be used in URLs). The path must begin with
# a slash. The default value, "/channel/", gives URLs like
# "http://services.example.net/channels/channelname/" for channel
# "#channelname".
#
# If not set, channel redirects will not be done.
#
# Note: If a URL could be interpreted as both a nickname URL and a
# channel URL, the nickname will take precedence, even if it
# is not registered or does not have a URL associated with it.

ChannelPrefix "/channel/"

EndModule

################################ Top page module

Module httpd/top-page

# Filename <path> [<content-type>] [OPTIONAL]
# Sets the name of a file to be delivered as the server's top page.
# If this does not begin with a slash, then it is taken as relative
# to the Services data directory. The second parameter specifies
# the MIME content type of the file; if not given, it defaults to
# text/html.

#Filename "Top Page.txt" text/plain
#Filename /var/www/html/ircservices/top-page.html

# Redirect <URL> [OPTIONAL]
# Sets a URL to be provided as a redirect to a client accessing the
# top page. This must be a full URL, beginning with "http://" (or
# some other protocol specifier). If both Filename and Redirect
# are given, Redirect takes precedence.

#Redirect http://www.example.net/ircservices/

EndModule

###########################################################################
#
# Miscellaneous modules
#
###########################################################################

################################ DevNull settings

Module misc/devnull

# DevNullName <nick> <string> [REQUIRED]
# Specifies the nickname (first parameter) and "real" name (second
# parameter) used by the DevNull pseudoclient.

DevNullName "DevNull" "/dev/null -- message sink"

EndModule

################################ HelpServ settings

Module misc/helpserv

# HelpServName <nick> <string> [REQUIRED]
# Specifies the nickname (first parameter) and "real" name (second
# parameter) used by the HelpServ pseudoclient.

HelpServName "HelpServ" "Help Server"

# HelpDir <dirname> [REQUIRED]
# Specifies the name of the subdirectory containing help files for
# HelpServ.

HelpDir helpfiles

EndModule

################################ XML export settings

Module misc/xml-export

# This module has no configurable settings.

EndModule

################################ XML import settings

Module misc/xml-import

# OnNicknameCollision <action> [OPTIONAL]
# Specifies the action to be taken when a nickname in the data to
# import is already registered. The string must be one of either
# "skipgroup" (skip over the nickname group containing the nickname
# in the imported data), "skipnick" (skip only the colliding
# nickname), "overwrite" (drop the existing nickname), or "abort"
# (do not import any data). Note that when "abort" is selected,
# the entire XML input is still checked for errors, but Services
# will abort before actually merging any data.
#
# When using "overwrite", if a nickname group has only one nickname
# and that nickname is overwritten, the nickname group will be
# dropped as well. As a consequence, any channels owned by such a
# nickname will be dropped (or shifted to their successors) as
# well. All nicknames and channels overwritten or droppde in this
# manner will be displayed on standard error.
#
# If not specified, defaults to "skipgroup".

#OnNicknameCollision skipgroup

# OnChannelCollision <action> [OPTIONAL]
# Specifies the action to be taken when a channel in the data to
# import is already registered. The string must be one of either
# "skip" (skip over the channel in the imported data), "overwrite"
# (drop the existing channel), or "abort" (do not import any data).
# Note that when "abort" is selected, the entire XML input is still
# checked for errors, but Services will abort before actually
# merging any data. If not specified, defaults to "skip".

#OnChannelCollision skip

# VerboseImport [OPTIONAL]
# Causes a detailed list of imported nicknames, channels, and other
# data to be printed to standard output.

VerboseImport

EndModule

Отлов ошибок.

Первый запуск ircservices рекомендую делать с ключем
-debug и проверить лог /var/log/ircservices.log
на предмет ошибок. Если ошибка типа тип_модуля/модуль - знать
править настройки ircservices и скорее всего в
ircserveces.conf, если ошибка содежит слово
line или lines значит нужно править данный
тип строки в конфигурации ircd.conf.

Вверх

Автоподнятие.

Как у Ultimate так и у ircservices есть средства автоподнятия сервиса в
случае падения.

Для Ultimate это

/usr/pkg/bin/ircdshk

для ircservices это
/usr/pkg/bin/ircservices-chk

Делаем:
# crontab -e

и добавляем строки
#ircservices check
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/pkg/sbin/ircservices-chk
#ircd check
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/pkg/bin/ircdchk

Теперь даже если сервера упали - они поднимутся максимум через 5
минут.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
pylxwzhj аватар

DemocratsCoach Factory

Democrats

Coach Factory Outlet

insist that

Coach Factory Store

they were closing in onthe

Coach Outlet

framework of an agreement,

Coach Outlet

but that Republicans

Coach Outlet Online

backed away from

Coach Outlet

their willingness to

Coach Outlet Online

accept significant

Chanel Outlet

revenue increases in

Chanel Outlet

exchange for cuts

Louis Vuitton Outlet

in the growth

Coach Factory Store

of entitlement

Chanel Handbags

programs.Republicans,

Coach Outlet

who agreed that

Chanel Bags

there was a

Louis Vuitton

potential framework

Coach Outlet

a week ago, counter that

Coach Outlet

the deal was spoiled

Coach Outlet

by Democrats, who refused to

Chanel Bags

lock in the level

Coach Outlet

pylxwzhj аватар

What remained unclear on

What remained unclear on

Coach Outlet

Saturday, and what will be a main focus

Coach Outlet

of NATO’s inquiry, was what exactly

Chanel Handbags

prompted the airstrikes and

Coach Outlet

whether they were unprovoked

Chanel Bags

or resulted from a communications mishap.

Coach Factory Outlet

A NATO spokesman, Brig. Gen.

Coach Outlet Online

Carsten Jacobson, offered details

Coach Outlet

suggesting that allied

Coach Outlet

and Afghan troops operating

Coach Outlet Online

near the border came under

Louis Vuitton Bags

fire from unknown enemies and

Coach Factory Outlet

summoned coalition

Louis Vuitton Bags


warplanes for help.