Сегодня мы поговорим о настройке IRC-сервисов, причем эта тема будет освещаться со стороны администратора, то есть тебя =). Будучи юзером в IRC, ты быть может уже знаком с сервисами и знаешь почти все их команды, но, поверь, админом быть гораздо интереснее =).

Итак, у тебя имеется настроенный и поднятый IRCD, пусть это будет Unreal. Скачаем сервисы отсюда: http://kamensk.net.ru/forb/1/ircservices-4.5.41.tar.gz. Скачаем их, и приступим к редактированию ircd.conf (конфиг IRCD). Сервисы представляют собой отдельный сервер, поэтому IRCD должен быть скомпилен как HUB и иметь C/N лайны на сервисы. Пропишем их, следующим образом:

C:192.168.0.1:services:services.local.net::50
N:192.168.0.1:services:services.local.net::50

Учитывая, что твоя сетка имеет название local.net, а сервисы стартуются с хоста 192.168.0.1 (возможно оттуда же стартуется и IRCD). Пароль на сервисы сделаем "services" (рекомендую его переделать, чтобы какой-нибудь упырь не подконнектился на IRCD под сервисами =)), класс коннекта 50, порт не указывается.
Ты не задумывался, почему сервисам разрешено все (раздавать опов направо и налево, килять пользователей и даже менять их ники)? За это отвечает U-line в ircd.conf. Маска подпадающая под этот лайн может делать все на данном сервере, поэтому прописываем:

U:services.local.net:*:*

На этом настройка ircd.conf завершена. Пошли серверу SIGINT-сигнал (не путать с SIGKILL =)) командой killall -1 ircd, или набери "/rehash" в ирке на своем сервере (но для этого ты должен быть как минимум админом сервера).

Теперь займемся самими сервисами. Законфигурим их, прописывая директорию для бинарников и вторую, для библиотек (в том числе и services.conf). Затем по порядку make, make install. Вроде все =).

Перейдем к настройке конфа. Файл должен называться serivces.conf и лежать в директории, которую ты указал в configure для библиотек. Коротко об его настройке (пишу, чтоб все корректно запустилось и немного о важных переменных):

RemoteServer - аналог C/N лайнов в ircd.conf. Формат: сервер порт "пароль", смело заполняем своими данными:

RemoteServer 192.168.0.1 6667 "services"

ServerName - имя сервера, под которым будут линковаться сервисы. Мы его задали, это имя services.local.net:

ServerName "services.local.net"

ServerDesc - Description для сервера, придумываем свой =)

ServerDesc "Services for Local IRC Daemon"

ServiceUser - маска, под которой будут выступать все сервисы данной сети. Сделаем services@local.net для наглядности:

ServiceUser "services@local.net"

Далее идет перечисление ников сервисов, их менять не советую, так как это стандарт, пусть он и останется стандартом =). Об этих никах и какую функцию они выполняют поговорим чуть позже.

Далее идут специфические настройки для каждого сервиса (например, когда дропать ник по таймауту, или сколько клонов допускать для коннекта на сервер). С этими тонкостями, я надеюсь, ты разберешься сам. Стоит вписать лишь свой ник в часть ServicesRoot, чтобы быть администратором сервисов.

После настройки, пробуем запустить сервисы. Заходим в директорию с бинарниками и стартуем их - "./services". Если все ок, сервер сообщит тебе о новом линке, а NickServ попросит зарегистрировать ник =). В противном случае смотри конфы (на 99% в них что-нибудь не так), либо логи сервисов (по умолчанию services.log в директории с библиотеками и конфами).

Теперь собственно об управлении =). После того, как ты зарегистрил свой ник, который совпадает с ником в переменной ServicesRoot (если ты не знал, чтобы зарегить ник нужно набрать "/ns register пароль_на_ник e@mail"), а затем стал опером на IRCD, тебе автоматически присвоится звание Services Administrator. После этого командуй: "/os set supass пароль", чтобы установить пароль на Super-user Operators =), которые могут выполнять все операции над сервисами. Для этого статуса впоследствие нужно набирать: "/os su пароль". Чтобы добавить в сервис-админы кого-либо еще, набери "/os oper add nick", где nick - человек, которого добавляешь =). После всего вышеописанного, сделай "/os update", чтобы сохранить базы.

А теперь о возможностях =). Дело в том, что через оперсерва возможно слать Raw-сообщения всем сервисам, например, чтобы поменять ник у кого-нибудь, достаточно набрать: "/os raw :NickServ svsnick Nick Nick2 1", где Nick - текущий ник, Nick2 - ник, на который хочешь поменять текущий =). Также, через эти же Raw можно джойнить на канал сервисы, подобным путем (ограничений нет), но не злоупотребляй: если какой-нибудь сервис глюканет, то упадут все сервисы =). Я не говорю о таких банальных возможностях, как /os akill или /os mode, о них я думаю ты все знаешь, иначе - /os help.

"/os jupe server.name" зажупит =) сервер в твоей сети (такое бывает необходимо если с сервером не все в порядке, сервисы как бы эмулируют коннект, но на самом деле сервер-жертва будет находиться не в сети). Для отмены JUPE, сделай сервису SQUIT, командой /squit server.name.

Итак, сервисы состоят из:
NickServ - заведует базой ников
ChanServ - заведует базой каналов
MemoServ - сервер сообщений
OperServ - заведует сервисами =)
Global - выводит глобальные сообщения
DevNull - мусорка ;) Посредством нее сервисы общаются между собой.
HelpServ - Хелп по всем сервисам.

Да, я еще не сказал, что админ может без проблем узнать пароль юзера на ник или канал, либо дропнуть что-нибудь без каких-либо на то ограничений. Но, не злоупотребляй этим, иначе ты не понравишься юзерам, и о тебе будет дурное мнение.

Как ты наверное понял, с сервисами в сети гораздо веселее, чем без них. Да и все высокоорганизованные сетки имеют свои сервисы, это уже стало стандартом IRC-сети =).