Сегодня мы поговорим о настройке 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-сети =).

Оставить мнение