АЛЕКСАНДР СЛОБОДСКОЙ
IRC-cервер
Итак, вы администрируете небольшую локальную сеть. Так или иначе пользователям хочется общаться. Такие программы, как lantalk, естественно, не подходят, потому что рассылают широковещательные пакеты по всей сети, что не есть хорошо. Выход – установка irc-сервера, который лишен очень многих недостатков и имеет массу преимуществ. Например, быстрота работы по сравнению с www-чатами – ведь клиенту не приходится грузить громоздкую страницу, чаще всего наполненную всяческими баннерами; расходование меньшего количества трафика, что не может не радовать. Существует несколько разновидностей irc-серверов, имеющих некие свои особенности, но похожие друг на друга в целом, например, unreal ircd, bahamut ircd и так далее, но в данном обзоре я рассмотрю PTlink ircd как более простой для описания и использующийся в российской irc-сети – IrcNET.Ru.
Приступим. Качаем сам сервер с http://www.aldem.net/irc. Выберите ли вы бинарный файл или скомпилируете из исходных кодов, зависит от того, какая операционная система на вашем сервере. В статье пойдет речь именно о UNIX-версии. В UNIX-версии компилирование должно обязательно проходить под обычным пользователем, то есть у того, у кого id больше 0, иначе сервер откажется компилироваться.
Распаковываем архив, заходим в папку и пишем:
[user@server]$ ./configure
Появится экран с описанием изменений и дополнений, начиная с самого старого. Пролистываем описание и нажимаем enter. Теперь нужно выбрать опции сборки сервера. Сначала вас спросят о типе компилятора: выбираем gcc, если, конечно, вы не являетесь счастливым обладателем экзотической операционной системы типа HP-UX, в этом случае выбирайте cc. Дальше идут опции компиляции, их можно оставить по умолчанию, так как они автоматически определяются в зависимости от операционной системы. Затем выбираем место, где будет лежать папка со всеми необходимыми файлами для ircd.
Выбираем название бинарного файла. Далее идет опция – компилировать ли сервер как Hub или как Leaf. (Hub-сервер, способный присоединять к себе другие сервера. Leaf – одиночный сервер, привязанный к хабу, не имеющий возможности присоединять сервера).
Выберите нужный вам тип в зависимости от стоящих перед вами задач. Затем вас спросят, осуществлять ли крип-тование паролей irc-операторов: если нет, то пароли в O-lines вписываем простым текстом; если да, то пароли необходимо зашифровать. Для этого необходимо зайти на irc-сервер и набрать команду /mkpasswd ваш_пароль: получится некая последовательность букв и цифр – их и нужно вписать в O-line на место пароля. У вас возникнет вопрос: «Как зайти-то, ведь мы еще не настроили ircd?». Ответ прост: сначала настройте сам сервер, а пароль для O-line можно сделать в самом конце, он не критичен для работоспособности ircd. Далее выбираем число разрешенных соединений к серверу. И последний пункт – выбор типа сети. Компиляция:
[user@server]$ make && make install
Если все прошло гладко, то сервер готов к использованию.
Примечание: если сервер при запуске сразу выпадает в core, возможно, проблемы с share-библиотеками, тогда нужно вернуться к компиляции снова:
[user@server]$ make LDFLAGS=static && make install
Теперь, скорее всего, все будет в порядке. Переходим в директорию, которую указали при компиляции и видим там несколько файлов:
- ircd – основной бинарный файл.
- ircd.conf – файл конфигурации.
- ircd.motd – файл, который выдается всем пользователям при каждом заходе на irc. Можете изменять и дополнять его нужной информацией или картинкой, например.
- help.user – файл помощи для простых смертных, выводится командой /helpsys.
- help.oper – файл помощи для irc-операторов.
- help.admin – файл для irc-администраторов.
Файл sendbug необходим в случае падения ircd в core, таким образом можно отправить им этот файл для исправления ошибок. Синтаксис: sendbug ircd.core.
После запуска и использования irc-сервера в этой же папке появится пара новых файлов, таких как ircd.pid, в котором находится номер процесса запущенного сервера, и gline.log, в котором находится список всех gline, которые ставились в сети. (Gline – запрет доступа ко всем серверам сети для определенных IP).
Переходим к составлению конфигурационного файла. Все опции пишутся через двоеточие.
В M-line содержится техническая информация о сервере:
М:имя_сервера:ip:описание_сервера:стандартный_порт
А-line – отражает информацию об администраторе данного сервера, эта информация доступна через команду /admin на irc-сервере.
A:описание:Admin:e-mail
Y-line – определяет классы коннектов серверов друг к другу, Y-lines нужно оставить без изменений.
Все же некоторое описание необходимо, т.к. оно пригодится далее при написании CN-lines.
Класс-1 – определяет соеднинения простых смертных с сервером:
Y:1:90:0:250:100000
предпоследний параметр, определяет разрешенное количество коннектов к серверу.
Класс-30 – коннект Hub to Leaf:
Y:30:180:0:0:3500000
Класс-40 – как раз наоборот, Leaf to Hub:
У:40:90:90:1:3500000
Класс-50 – класс коннекта Hub to Hub, с автоконнектом:
Y:50:90:60:1:4000000
И класс-51 – тоже класс коннекта Hub to Hub, но без автоконнекта:
Y:51:90:60:0:4000000
I-line – для разрешения доступа к irc-серверу по IP или паролю:
I:*@*:Пароль :*@*::1
синтаксис понятен. Если же вам не надо кого-нибудь ограничивать, вот пример I-line стандартного:
I:*@*::*@*::1
Теперь обратимся к O-line. Строка, определяющая доступ к irc-операторству:
O:host:пароль:login:modes:1
Параметр modes вы, естественно, выбираете сами, ниже даны основные режимы.
Данные режимы устанавливаются для пользователя irc, набравшего команду /oper и нужны для управления сервером irc:
г = доступ к команде /rehash.
R = доступ к команде /restart.
D = доступ к команде /die.
g = может слать /globops.
с = доступ к локальному произведению /connect и /squit.
С = доступ к удаленным /squits и /connects.
к = доступ к локальным /kills.
К = доступ к глобальным /kills.
Ь = доступ к /kline пользователей с сервера.
о = локальный администратор, включены такие флаги, как, rhgwlckbBnuf.
O – глобальный оператор, включены такие флаги, как: oRDCKN.
U-line – определяет сервисы, чтобы правильно понимать смену топиков, модов на irc:
U:services.some.net:*:*
X-line – определяет пароли для restart и die:
X:diepass:restartpass
C-line – строка описывает сервер, пытающийся прикон-нектиться.
N-line – строка, описывающая возможность коннекта с данного сервера.
Обязательно использование C- и N-lines в паре друг с другом.
С:удаленный_сервер:пароль:имя_удаленного_сервера:port:класс _коннекта
который был определен в Y-line.
N:удаленный_сервер:пароль:имя_удаленного_сервера:класс_ коннекта
Q-line - запрет использования ников.
Пример:
2:*:причина:nickname
H-line – определяет сервер как Hub, на серверах Leaf всегда должен указываться H-line на вышестоящий Hub:
Н:*::hub.server.ru
P-line – позволяет открывать прослушивание коннектов на дополнительный порт:
P:*:*:*:port
e-line – исключение проверки на open socks:
e:127.0.0.1: :*
На этом описание конфигурационного файла можно закончить.
А вот небольшой пример реально работающего конфигурационного файла:
M: irc.server.ru:*:Network server:6667
A:My cool server:mr_Black:email@server.ru
Y:1:90:0:30:100000
Y:50:90:60:1:4000000
Y:51:90:60:0:4000000
Y:30:180:0:0:3500000
Y:40:90:90:1:3500000
I:*@*: :*@*::1
Пароль здесь представлен без криптования.
O:*@*:qwerty:mr_Black:*:1
U:services.server.ru:*:*
X:qwerty:qwerty
С:127.0.0.1:services:services.server.ru:50
N:127.0.0.1:services:services.server.ru::50
Q "Reserved for services:ChanServ
Q "Reserved for services:NickServ
Q::Reserved for services:MemoServ
Q::Reserved for services:OperServ
Q::Reserved for services:HelpServ
Q::Reserved for services:NewsServ
Q::Reserved for services:Global
Q::Reserved for operators:IRCop
H:*::services.server.ru
Вот пример конфигурации с настроенными на сервисы СМН lines.
Запускайте ircd. Попробуем приконнектиться на порт, который вы указали в ircd.conf.
Видим, что все работает, и уже можно оповестить пользователей о появлении нового сервиса и как с ним работать. Для работы в irc есть очень много интересных клиентов, вот некоторые из них: