Сервисы Anope - самые популярные IRC-сервисы управления IRC сетью в русскоязычном IRC пространстве. Многофунциональные, развивающиеся, современные. Официальный сайт сервисов anope.org.

Установка Anope

Работаем через SSH клиент в Linux сервере Debian 7 от обычного пользователя.
  1. Переходим в папку, в которую будем устаналивать Anope:
    cd /home/dim/irc
  2. Скачиваем Anope:
    wget https://raw.githubusercontent.com/dimst/IRC/master/anope-1.8.9.tar.gz
  3. Распаковываем скачанный архив:
    tar xf anope-1.8.9.tar.gz
  4. Для удобства переименовываем распакованную директорию:
    mv anope-1.8.9 anope-src
  5. Переходим в директорию с исходниками:
    cd anope-src
  6. Запускаем конфигурацию, в которой нужно ответить на несколько вопросов:
    ./Config
    1. In what directory do you want the binaries to be installed?
      [/home/dim/services]
      В какую диреторию будут установлены сервисы?
      Укажите любое удобное для вас расположение директории, куда будут установлены сервисы:
      /home/dim/irc/anope
      , либо согласитесь с предложенным по-умолчанию, нажав клавишу ENTER.
    2. /home/dim/irc/anope does not exist. Create it?
      [/home/dim/irc/anope]
      директория /home/dim/irc/anope не существует. Созать ее?
      нажимаем клавишу ENTER
    3. Where do you want the data files to be installed?
      [/home/dim/irc/anope]
      Куда вы хотите, чтобы файлы баз данных были установлены?
      нажимаем клавишу ENTER
    4. Which group should all Services data files be owned by?
      (If Services should not force files to be owned by a particular group, just press Return.)
      []
      нажимаем клавишу ENTER
    5. What should the default umask for data files be (in octal)?
      (077 = only accessible by owner; 007 = accessible by owner and group)
      [077]
      какие права дать файлам баз данных?
      нажимаем клавишу ENTER
    6. Allow anope to automatically check for mysql libaries?
      Unless you get errors with make, there is no need to
      change this setting.
      [yes]
      Разрешить автоматическую проверку наличия MySQL?
      Если планируется использовать MySQL, то
      пишем yes, жмём клавишу ENTER

      Далее в конфиге сервисов services.conf необходимо будет настроить блок, посвященный MySQL и в директории с установленными сервисами выполнить файл mydbgen
      ./mydbgen
      . Следуя инструкуциям указать необходимые данные: адрес, порт, пользователь, пароль mysql базы.
  7. После заверщения конфигурации запускаем компиляцию:
    make
  8. После заверщения компиляции запускаем инсталяцию:
    make install
  9. Переходим в директорию с установленными сервисами Anope:
    cd ../anope
  10. Создаём конфигурационный файл services.conf:
    nano services.conf

Настройка Anope

Редактируем services.conf под свой IRC сервер:
#######################################
# Конфигурационный файл services.conf
# для Anope 1.8.9
# Инструкция по установке и настройке
# https://dim.st/irc/anope

#######################################
# ГЛАВНЫЕ НАСТРОЙКИ СЕРВИСОВ
#######################################

# название сервера сервисов
# оно же указывается в link-блоке unrealircd.conf
ServerName  "services.dreamterra.net"

# описание сервера сервисов
# будет видно, например, в /whois ChanServ
ServerDesc  "Сервисы IRC-сети дримтерра"

# маска сервисных ботов
# будет видно, например, в /whois ChanServ
ServiceUser "Dream@Service"

# название сети
NetworkName "Dreamterra"

# канал помощи
HelpChannel "#help"

# сервисный канал, куда будут логировать сервисы,
# если включить /os set logchan on
LogChannel "#services"

# аналог ulines в unrealircd.conf
# здесь нужно перечилить сервисные сервера, не пользователькие
UlineServers "services.dreamterra.net stats.dreamterra.net"

# логировать подключения/отключения юзеров и подобное на сервисном канале
# если стоят NeoStats, то это можно отключить, т.к. ConnectServ
# в NeoStats делает тоже самое
LogUsers


#######################################
# ЛИНК-БЛОК
#######################################

# можно указать несколько линков одновременно
# anopepass - это пароль для линка и он должен совпадать
# с паролем в link-блоке в unrealircd.conf
RemoteServer 1.2.3.4 5555 "linkpass"


#######################################
# СЕРВИСНЫЕ БОТЫ
#######################################

# названия сервисных ботов
NickServName "NickServ" "Сервис ников"
ChanServName "ChanServ" "Сервис каналов"
MemoServName "MemoServ" "Сервис мемо сообщений"
BotServName  "BotServ"  "Сервис ботов"
HelpServName "HelpServ" "Сервис помощи"
OperServName "OperServ" "Сервис иркопов"
GlobalName   "Global"   "Глобальный сервис"
HostServName "HostServ" "Сервис вирт хостов"
#DevNullName "DevNull"  "/dev/null -- message sink"

# алиасы, но их не надо использовать, т.к. алиасы прописаны в unrealircd
#NickServAlias    "NickServ2"  "Сервис ников"
#ChanServAlias    "ChanServ2"  "Сервис каналов"
#MemoServAlias    "MemoServ2"  "Сервис мемо сообщений"
#BotServAlias     "BotServ2"   "Сервис ботов"
#HelpServAlias    "HelpServ2"  "Сервис помощи"
#OperServAlias    "OperServ2"  "Сервис иркопов"
#GlobalAlias      "Global2"    "Глобальный сервис"
#HostServAlias    "HostServ2"  "Сервис вирт хостов"
#DevNullAlias     "DevNull2"   "/dev/null -- message sink"


#######################################
# ДРУГИЕ НАСТРОЙКИ
#######################################

# тип IRC-сервера
# Bahamut 1.4.27 - "bahamut"
# Charybdis 1.0 - "charybdis"
# DreamForge 4.6.7 - "dreamforge"
# Hybrid IRCd 7.0 - "hybrid"
# InspIRCd 1.1 - "inspircd11"
# InspIRCd 1.2 - "inspircd12"
# InspIRCd 2.0 - "inspircd20"
# Plexus 3.0 - "plexus3"
# Plexus 2.0 - "plexus2"
# PTLink 6.15.0 - "ptlink"
# RageIRCd 2.0.x - "rageircd"
# Ratbox 2.0.6 - "ratbox"
# ShadowIRCD 4.0x - "shadowircd"
# Solid IRCD 3.4.x] - "solidircd"
# UltimateIRCd 3.0.0 - "ultimate3"
# UltimateIRCd 2.8.2 - "ultimate2"
# Unreal 3.2 - "unreal32"
# Unreal 3.1.1 - "unreal31"
# ViagraIRCd 1.3.x - "viagra"
# в нашем случае UnrealIRCd
IRCDModule "unreal32"

# кодирование базы сервисов
# не кодировать - enc_none
# кодировать в старый тип MD5 - enc_old
# кодировать в MD5 - enc_md5
# кодировать в SHA1 - enc_sha1
# нам не надо лишних кодирований
EncModule "enc_none"

# название файла процесса сервисов
PIDFile services.pid

# название motd-файла сервисов
MOTDFile services.motd

# логировать команды /msg botserv say (act)
LogBot

# максимальная длинна ника
NickLen 31

# ключи для генерирования цифр к guest-нику
UserKey1 9866235
UserKey2 8362013
UserKey3 2362899

# приоритет идентификации ника по паролю, а не по хосту
StrictPasswords

# сколько раз можно ошибиться в вводе пароля на ник
# до того, как сервисы килльнут
BadPassLimit 3

# через какое время можно вновь пробывать идентифицироваться
# 1h - один час
BadPassTimeout 1h

# через сколько обновляются база данных сервисов
# 5m - пять минут
UpdateTimeout 5m

# как часто проверять ники на истечение срока их регистрации
# 1d - один день
ExpireTimeout 1d

# через какие промежутки времени сервисы будут проверять линк с сервером
# 5s - пять секунд
ReadTimeout 5s

# интервал между предупреждениями об ошибках
WarningTimeout 1h

# время проверки юзера в сети ли он
TimeoutCheck 3s

# сколько дней хранить логи
KeepLogs 7

# сколько дней хранить резервные копии (бэкапы)
KeepBackups 3

# Использовать /ns(cs) suspend(forbid) только с указанием причины
ForceForbidReason

# показывать результат команды "/stats o" только иркопам
HideStatsO

# отправка глобального сообщения при отключении/включении сервисов
GlobalOnCycle 
GlobalOnCycleMessage "4Сервисы временно отключены."
GlobalOnCycleUP "4Сервисы запущены."

# через сколько секунд после подключения можно регать ник
NickRegDelay 40

# запрет на регистрацию ников, указанных как ServicesRoot
#RestrictOperNicks

# возможность использовать svs2mode команды
UseSVS2MODE

# максимально сколько logon/oper-новостей показывать
NewsCount 10

# не блокировать сервис-админа
# аналог unrealircd.conf, блок "ulines"
UnRestrictSAdmin

# при использовании команды "/os global сообщение"
# не показывать ник отправителя
#AnonymousGlobal

# возможность использовать команду SVSHOLD
# непонятно, что за команда
#UseSVSHOLD


#######################################
# МОДУЛИ
#######################################

# HostServ
HostCoreModules "hs_help hs_on hs_off hs_group hs_list hs_set hs_setall hs_del hs_delall"

# MemoServ
MemoCoreModules "ms_send ms_cancel ms_list ms_read ms_del ms_set ms_info ms_rsend ms_check ms_staff ms_sendall ms_help"

# HelpServ
HelpCoreModules "he_help"

# BotServ
BotCoreModules "bs_help bs_botlist bs_assign bs_set bs_kick bs_badwords bs_act bs_info bs_say bs_unassign bs_bot bs_fantasy bs_fantasy_kick bs_fantasy_kickban bs_fantasy_owner bs_fantasy_seen"

# OperServ
OperCoreModules "os_help os_global os_stats os_oper os_admin os_staff os_mode os_kick os_clearmodes os_akill os_sgline os_sqline os_szline os_chanlist os_userlist os_logonnews os_randomnews os_opernews os_session os_noop os_jupe os_ignore os_set os_reload os_update os_restart os_quit os_shutdown os_defcon os_chankill os_svsnick os_oline os_umode os_modload os_modunload os_modlist os_modinfo"

# NickServ
NickCoreModules "ns_help ns_register ns_group ns_identify ns_access ns_set ns_saset ns_drop ns_recover ns_release ns_sendpass ns_ghost ns_alist ns_info ns_list ns_logout ns_status ns_update ns_getpass ns_getemail ns_forbid ns_suspend"

# ChanServ
ChanCoreModules "cs_help cs_register cs_identify cs_set cs_xop cs_access cs_akick cs_drop cs_sendpass cs_ban cs_clear cs_modes cs_getkey cs_invite cs_kick cs_list cs_logout cs_topic cs_info cs_getpass cs_forbid cs_suspend cs_status"

# отложенная автозагрузка модулей
ModuleDelayedAutoload "cs_appendtopic cs_enforce ns_maxemail os_info hs_request"

# автозагрузка модулей
#ModuleAutoload ""

# название файла базы данных operserv
OSInfoDBName "os_info.db"

# название файла базы данных запросов на виртуальный хост
HSRequestDBName "hs_request.db"

# название файла базы данных опер игнорирования
OSIgnoreDBName "os_ignore.db"


#######################################
# ФАЙЛЫ С БАЗАМИ НИКОВ, КАНАЛОВ И Т.Д.
#######################################

# база ников
NickServDB nick.db

# база каналов
ChanServDB chan.db

# база сервисных ботов (/bs botlist)
BotServDB bot.db

# база прописанных на сервисах (/os staff)
OperServDB oper.db

# база новостей от operserv
NewsDB news.db

# база исключений
ExceptionDB exception.db

# база виртуальны хостов (/hs list)
HostServDB hosts.db

# база автокиллов (/os akill list) 
AutokillDB akill.db

PreNickServDB prenick.db


#######################################
# NICKSERV - РАБОТА С НИКАМИ
#######################################

# на какой ник будет меняться ник, если его не идентифицировать паролем
NSGuestNickPrefix "НЕТ_НИКА_"

# обязательно писать e-mail при регистрации?
# (для активации раскомментировать настройку)
#NSForceEmail

# язык сервисов по-умолчанию. 11 - русский, 1 - english
NSDefLanguage 11

# сколько раз можно регать ник с одним и тем же email'ом
NSEmailMax 1

# время жизни ника, которым не пользуются
NSExpire 15d

# через сколько секунд можно повторно применять команду "/ns register"
NSRegDelay 30s

# время, через которое можно будет повторно отправить пароль на почту
NSResendDelay 60s

# максимальное количество слинкованных ников в группе
NSMaxAliases 16

# максимальное количество значений для списка доступа ника
NSAccessMax 32

# хост хранителя ника
NSEnforcerUser Dream@Service

# время задержки ника при "NickServ-collided nick is released"
NSReleaseTimeout 1m

# просмотр списка зареганных на сервисах ("/ns list") доступен только для иркопов
NSListOpersOnly

# максимальное колличество ников, выдаваемых по команде "/ns list"
NSListMax 100

# команды "/ns drop (forbid, getpass)" разрешены только админам сервисов и выше
NSSecureAdmins

# прописанные на сервисах могут пользоваться своими правами только после "/oper"
NSStrictPrivileges

# только суперадмин ("/os set superadmin on") может посмотреть
# пароли ников и каналов ("/ns(cs) getpass")
NSRestrictGetPass

# отслеживание сервисами последнего ника
NSNickTracking

# добавление хоста юзера в список доступа ника
NSAddAccessOnReg

# отключить все NSDef*? если раскомментировать, то все настройки ниже,
# начинающиеся с NSDef* работать не будут
#NSDefNone

# если не идентифицировать ник, он будет автоматически меняться
# на "НЕТ_НИКА_****" ("/ns set kill on" для всех реганых ников по-умолчанию)
NSDefKill

# по-умолчанию включена безопасность ника ("/ns set secure on")
NSDefSecure

# по-умолчанию включена приватность ника ("/ns set private on")
NSDefPrivate

# по-умолчанию включено скрытие емейла ("/ns hide email on")
# при просмотре информации о нике (/ns info ник)
NSDefHideEmail

# по-умолчанию включено скрытие маски ("/ns hide usermask on")
# при просмотре информации о нике ("/ns info ник")
NSDefHideUsermask

# по-умолчанию включено скрытие последнего quit-сообщения
# ("/ns hide quit on") при просмотре информации о нике ("/ns info ник")
NSDefHideQuit

# по-умолчанию включено получение мемо-сообщений
NSDefMemoSignon

# по-умолчанию включена проверка наличия мемо-сообщений
NSDefMemoReceive

# по-умолчанию включен автостатус после входа на канал
# если пользователь имеет прописанный статус на канале
NSDefAutoop

# выдавать статусы на канале автоматически после идентификации ника
NSModeOnID

# для подтверждения регистрации ника отсылать код на email?
#NSEmailReg

# время актуальности кода, отправленного на email
# активировать, если активен параметр NSEmailReg
#NSRExpire 1d

# мгновенное освобождение занятого хранителем ника
#NSAllowKillImmed

# запрет на какие-ибо изменения в группе ника
#NSNoGroupChange

#NSDefMsg


#######################################
# CHANSERV - РАБОТА С КАНАЛАМИ
#######################################

# максимальное количество каналов, которое может быть
# зарегистрировано с одного ника ("/cs register")
CSMaxReg 10

# срок жизни канала. Если никто из прописанных на канале
# не появятся на нем, то канал дропнется (разрегистрируется)
CSExpire 15d

# маска бана от ChanServ (или сервисного бота) по-умолчанию
# ("/cs ban")
# 0: +b *!идент@хост
# 1: +b *!*идент@хост
# 2: +b *!*@хост
# 3: +b *!*идент@*.домен
CSDefBantype 3

# причина бана через ChanSev (или сервисного бота),
# если не указывать свою причину ("/cs ban #канал ник")
CSAutokickReason "4Вход на этот канал для тебя запрещен!"

# максимальное колличество прописанных на канале ("/cs access #канал list")
CSAccessMax 50

# максимальное колличество акиков на канале ("/cs akick #канал list")
CSAutokickMax 100

# сколько времени ChanServ будет на канале после кика юзера
CSInhabit 15s

# команда "/cs list" доступна только иркопам
CSListOpersOnly

# максимальное число каналов, показываемое командой "/cs list"
CSListMax 100

# смотреть пароль канала ("/cs getpass #канал") можно только
# суперпользователю ("/os set superadmin on")
CSRestrictGetPass

# отключить все NSDef*? если раскомментировать, то все настройки ниже,
# начинающиеся с NSDef* работать не будут
#CSDefNone

# по-умолчанию включено хранение топика ("/cs set #канал keeptopic on")
CSDefKeepTopic

# по-умолчанию включен режим спокойствия ("/cs set #канал peace on")
CSDefPeace

# по-умолчанию включен режим безопасности ("/cs set #канал secure on")
CSDefSecure

# по-умолчанию включен режим безопасности владельца канала ("/cs set #канал secure on")
CSDefSecureFounder

# по-умолчанию cистема управления каналом - xOP ("/cs set #канал xop on")
CSDefXOP

# по-умолчанию уведомлять нотисами об op/deop на канале
# через сервисы ("/cs set #канал opnotice on")
#CSDefOpNotice

# по-умолчанию режим приватности канала ("/cs set #канал private on")
#CSDefPrivate

# по-умолчанию вход на канал только для прописанных ("/cs set #канал restricted on")
#CSDefRestricted

# по-умолчанию включен режим безопасности статуса опа ("/cs set #канал secureops on")
#CSDefSecureOps

# по-умолчанию включен режим подписи киков от ChanServ ("/cs set #канал signkick on")
#CSDefSignKick

# по-умолчанию уровень доступа к режиму подписи киков от ChanServ
# ("/cs levels #канал set signkick 10")
#CSDefSignKickLevel

# по-умолчанию включен режим блокировки топика канала
# ChanServ'ом ("/cs set #канал topiclock on")
#CSDefTopicLock

# пользоваться ChanServ'oм могут только иркопы
#CSOpersOnly


#######################################
# MEMOSERV - РАБОТА С ЗАПИСКАМИ
#######################################

# кто может пользоваться мемо-сообщениями?
# 1 - только операторы, 2 - все
MSMemoReceipt 2

# Максимальное число мемок для 1-го юзера
MSMaxMemos 20

# интервал между отправкой мемок (защита от флуда)
MSSendDelay 3s

# уведомлять юзера о полученной мемке
MSNotifyAll


#######################################
# BOTSERV - РАБОТА С СИСТЕМНЫМИ БОТАМИ
#######################################

# сколько юзеров должно быть на канале чтобы бот зашел на канал
BSMinUsers 1

# максимальное число "плохих" слов для канала
BSBadWordsMax 50

# перед заходом на канал сервисный бот снимает с себя баны, если они есть
BSSmartJoin

# подпись причины кика от сервис бота
BSGentleBWReason

# префикс команд сервисного бота
BSFantasyCharacter "!"

# BSDef* - настройки ботов, включенные по-умолчанию для новых каналов
# по-умолчанию включен режим автоприветствия от бота
# ("/bs set #канал greet on")
BSDefGreet

# по-умолчанию включен режим фантазии ("/bs set #канал fantasy on")
BSDefFantasy

# по-умолчанию включен режим симбиоза ("/bs set #канал symbiosis on")
BSDefSymbiosis

# по-умолчанию включен режим не кикать войсов
# ("/bs set #канал dontkickvoices on")
#BSDefDontKickVoices

# по-умолчанию включен режим не кикать опов
# ("/bs set #канал dontkickops on")
#BSDefDontKickOps

# непонятно... пусть будет по-умолчанию
BSKeepData 10m

# учитывать регистр "плохих" слов
# если вкл., то "подлец" и "ПОДЛЕЦ" - будут разные слова
#BSCaseSensitive


#######################################
# HOSTSERV - РАБОТА С ВИРТУАЛЬНЫМИ ХОСТАМИ
#######################################

# уведомлять юзера о том, что ему выдали вирт хост
HSRequestMemoUser

# уведомлять иркопов о том, что юзер активировал свой вирт хост
#HSRequestMemoOper

# ники пользователей, которые могут управлять вирт хостами,
# не имея статуса иркопа (доступ к HostServ)
#HostSetters "Вася Петя"

# уведомлять пользоватлей, указанных в "HostSetters" о том, что юзер
# активировал свой вирт хост
#HSRequestMemoSetters


#######################################
# OPERSERV - РАБОТА С ИРКОПАМИ
#######################################

# руты (главные админы) сервисов (через пробел)
ServicesRoot "DiM Satana"

# разрешить использование прав суперадмина "/os set superadmin on"
SuperAdmin

# записывать в лог превышение максимального числа пользователей на сервере
LogMaxUsers

# время банов по-умолчанию
AutoKillExpiry 1h
ChanKillExpiry 1h
SGLineExpiry   1h
SQLineExpiry   1h
SZLineExpiry   1h

# сразу убивать пользователя, которого добавили  в список akill ("/os akill add маска")
AkillOnAdd

# сразу убивать пользователя, которого добавили в список gline ("/os sgline add маска")
KillOnSGline

# сразу убивать пользователя, которого добавили в список qline ("/os sqline add маска")
KillOnSQline

# добавлять ник иркопа в причину akill'a
AddAkiller

# к OperServ имеют доступ только иркопы
OSOpersOnly

# отправлять нотис иркопам, когда кто то оперится ("/oper")
WallOper

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

# уведомлять иркопов нотисом о выполнении команды "/os global"
WallOSGlobal

# уведомлять иркопов нотисом о выполнении команды "/os mode"
WallOSMode

# уведомлять иркопов нотисом о выполнении команды "/os clearmodes"
WallOSClearmodes

# уведомлять иркопов нотисом о выполнении команды "/os kick"
WallOSKick

# уведомлять иркопов нотисом о выполнении команды "/os akill"
WallOSAkill

# уведомлять иркопов нотисом о выполнении команды "/os sgline"
WallOSSGLine

# уведомлять иркопов нотисом о выполнении команды "/os sqline"
WallOSSQLine

# уведомлять иркопов нотисом о выполнении команды "/os szline"
WallOSSZLine

# уведомлять иркопов нотисом о выполнении команды "/os noop"
WallOSNoOp

# уведомлять иркопов нотисом о выполнении команды "/os jupe"
WallOSJupe

# уведомлять иркопов нотисом о выполнении команды "/os raw"
WallOSRaw

# уведомлять иркопов нотисом об истечении сроков akill'ов
WallAkillExpire

# уведомлять иркопов нотисом об истечении сроков sgline'ов
WallSGLineExpire

# уведомлять иркопов нотисом об истечении сроков sqline'ов
WallSQLineExpire

# уведомлять иркопов нотисом об истечении сроков szline'ов
WallSZLineExpire

# уведомлять иркопов нотисом об истечении сроков exception'ов
WallExceptionExpire

# уведомлять иркопов нотисом о запросов паролей ников/каналов
WallGetpass

# уведомлять иркопов нотисом о смене пароля ника/канала
WallSetpass

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

# уведомлять иркопов нотисом при удалении ника/канала
WallDrop

# ограничение колличества полкючений с 1 IP-адреса
LimitSessions

# колличество подключений с 1 IP-адреса по-умолчанию
# сдесь желательно не делать ограничение
# это ограничение делайте в unrealircd.conf
DefSessionLimit 100

# максимальное колличество подключений с 1 IP-адреса
# сдесь желательно не делать ограничение
# это ограничение делайте в unrealircd.conf
MaxSessionLimit 100

# время истечения исключений по-умолчанию
ExceptionExpiry 1h

SessionLimitExceeded "Допустимое колличество подключений с вашего хоста %s закончилось."

SessionLimitDetailsLoc "подробнее на http://dreamterra.net/IRC/Bans"

# киллить пользователя, привысившего лимит
MaxSessionKill 10

# время истечения акиллов от MaxSessionKill
SessionAutoKillExpiry 30m

# отключить команды "/os raw"
# (для активации раскомментировать настройку)
#DisableRaw


#######################################
# DEFCON - СИСТЕМА ЗАЩИТЫ
#######################################

# нормальный уровень дефкона (ничего не делать)
DefConLevel 5

#DefCon4 23
#     No channel reg + No Nick Reg + No MLOCK changes + Use Reduced Session Limit
#           1        +      2      +         4        +            16
##my 1 + 2 + 8 +  512
DefCon4 523
#DefCon3 31
#     As DefCon4 + Services will Force Chan Mode's on channels
#          23    +                     8
##my 1 + 2 + 8 + 32  +  512
DefCon3 555
DefCon2 159
#   As DefCon3 + Services will silently ignore everyone but opers
#          31    +                    128
DefCon1 415
#     As DefCon2 + AKILL all new clients trying to connect
#          159   +                  256

# лимит поключений, когда defcon включен
DefConSessionLimit 1

# время истечения акиллов после включения defcon ("/os defcon 1")
DefConAkillExpire 1h

# моды канала, выставляемые при включенном defcon
DefConChanModes "+CNR"

# автоматическое время истекания defcon
DefConTimeOut 10m

# уведомление о вкл/выкл defcon'a глобальным сообщением
GlobalOnDefcon

# уведомление о defcon
GlobalOnDefconMore

DefconMessage "4Активирована защита против атаки сети.4"

DefConAkillReason "4Активирована защита против атаки сети.4"


##################################################
# MYSQL - БАЗА ДАННЫХ
# если требуется хранить все базы ников/каналов и пр. в mysql базе
# для работы этих параметров при конфигурации сервисов (./Config)
# на вопрос по поводу MySQL нужно ответить "yes"
# далее выполнить файл ./mydbgen в директории с установленными сервисами
##################################################

# ip адрес или домен для подключения к mysql
#MysqlHost "127.0.0.1"

# порт (по-умолчанию 3306)
#MysqlPort 3306

# пользователь базы данных
#MysqlUser "dim"

# пароль пользователя бд
#MysqlPass "123dim123"

# название бд
#MysqlName "anope"

# путь до mysql сокета
#MysqlSock "/tmp/mysql.sock"

#MysqlSecure ""
#MysqlRetries 10
#MysqlRetryGap 1
#UseRDB


#######################################
# РАБОТА С ПОЧТОЙ
#######################################

# использовать почту?
UseMail

# путь до sendmail
SendMailPath "/usr/sbin/sendmail -t"

# отправлять от
SendFrom bot@dreamterra.net

# отправлять пароль на email (/ns sendpass) могут только иркопы
RestrictMail

# лимит между отправками
MailDelay 5m

# не показывать поле "TO"
#DontQuoteAddresses

# только для Windows
#ForkForMail


#######################################
# ПРОЧИЕ НЕАКТИВНЫЕ НАСТРОЙКИ
#######################################

# локальный адрес
#LocalAddress nowhere. 0

# не сохранять бекапы
#NoBackupOkay

# возможность использования команды /privmsg #канал(ник) сообщение
#UsePrivmsg

# обращаться к сервисам командой /privmsg NickServ@dreamterra.net
#UseStrictPrivMsg

# делать отчет об ошибке, если какой то сбой ядра
#DumpCore

# использовать TOKEN команды вместо стандартных
#UseTokens

# требуется включить, если тип IRC-сервера InspIRCd
#UseTS6

# нумерик (номер) сервера сервисов
# требуется указать, если тип IRC-сервера InspIRCd
#Numeric "01A"
#######################################

Запуск Anope

./services start
В IRC проверяем, прилинковались ли сервисы к IRC-серверу
/whois NickServ
.
Если нет, смотрим ошибки в логах сервисов, расположенных в /home/dim/anope/logs/.

Настройка автозапуска Anope (crontab)

Crontab через каждый N промежуток времени запускает указанный в его списке файл. В свою очередь в файле скрипт, проверяющий, запущена на ли программа. Если нет - запускает ее.
  1. Переходим в папку с установленными сервисами Anope:
    cd /home/dim/irc/anope
  2. Для удобства переименуем файл example.chk:
    mv example.chk anope.cron
  3. Дадим файлу anope.cron права на выполнение:
    chmod +x anope.cron
  4. Редактируем файл anope.cron: в параметре ANOPATH указываем расположение установленных серависов Anope /home/dim/irc/anope/:
    nano anope.cron
  5. Вызываем редактор crontab:
    crontab -e
    вставляем правило:
    */10 * * * * /home/dim/irc/anope/anope.cron > /dev/null 2>&1
    
    Путь до anope.cron укажите свой. В конце файла обязательно оставляем пустую строку. Данное правило означает, что каждые 10 минут будет выполняться файл anope.cron.

Дополнительные модули для Anope

  1. Переходим в папку с исходниками сервисов:
    cd /home/dim/irc/anope-src
  2. Скачиваем нужный модуль с сайта разработчиков Anope в папку с исходниками модулей сервисов:
    wget http://modules.anope.org/files/12/2.0.0/27/cs_join.c -P src/modules
  3. Запускаем компиляцию модулей:
    make modules
  4. Запускаем установку модулей:
    make install
    Установленный модуль должен появиться в директории "/home/dim/irc/anope/modules/".
  5. Подключим модуль к уже запущенным Anope. В IRC выполним команду:
    /msg operserv modload cs_join
    Если модуль не подгрузился, смотрим логи сервисов на наличие ошибок /home/dim/irc/anope/logs/.

Работа Anope с MySQL базой

По-умолчанию сервисы хранят всю информацию в .db файлах (ники, каналы, пароли и т.п.). Для вывода информации с Anope на сайт используется MySQL.
  1. Если сервисы были собраны без поддержки MySQL, заново запускаем конфигурацию и на вопрос по поводу MySQL отвечаем YES:
    cd /home/dim/irc/anope-src && ./Config && make && make install
  2. Саздаём MySQL-базу с таблицами из файла /home/dim/irc/anope/tables.sql.
  3. Редактируем блок настроек, посвящённых MySQL, в конфигурационном файле сервисов /home/dim/irc/anope/services.conf.
  4. В IRC у сервисов включим поддержку MySQL:
    /msg operserv set sql on
  5. Перезапишем данные из db файлов в MySQL базу:
    /msg operserv update
    Заходим в MySQL базу и проверяем, заполнились ли таблицы данными. Если нет - смотрим логи сервисов /home/dim/anope/logs/.