IRC - Создание своего сервера

SaMaeL

Новичок
Репутация
0 / 6
Вот наконец-то и состоялся официальный релиз наиболее популярного IRC-сервера Unreal версии 3.2.8.* - 3.2.9.* В этой версии сервера более 150 различных изменений и фиксов (исправлений). Для тех, кто не знаком с технологией общения посредством IRC небольшое вступление:
----------------------------------------------------------------------------------------------------------------------------------
IRC- Internet Relay Chat - Передача разговоров через Интернет Создан Джарко Ойкариненом (Jarkko Oikarinen) в Финляндии в 1988г.
В данном случае под разговорами подразумевается общение с помощью текстовых сообщений, набираемых на клаве.
IRC - необычный и непривычный для нас способ общения. По сравнению с традиционными способами IRC кажется сильно ограниченным и урезанным. Это действительно так. Мы не видим собеседника, не видим его мимики, пластики, не слышим его интонаций, не можем дотронуться до него.
Но помимо ограничений есть и масса новых возможностей. Да и сами ограничения, как это ни странно, могут обратиться в добродетели. Все это делает IRC интересным, привлекательным и совершенно неизведанным способом общения.
IRC можно представить себе как огромное здание со множеством комнат, в каждой из которых собираются люди и ведут беседы. В IRC они называются каналами. Зайдя в один из каналов, мы станем участниками (свидетелями) местного разговора. Будут слушать вас, сможете слушать вы. (Заметим, впрочем, что слово "слушать" упоминается здесь в переносном смысле. Конечно же, никто никого не слышит - вы читаете то, что набрали на клавиатуре ваши собеседники, а они видят то, что "отстучали" вы.) При этом мы не слышим дискуссий, происходящих на соседних каналах, что избавляет общающихся в "Интернет" от, казалось бы, неизбежной какофонии одновременного тысячеголосого разговора.
Каналы, как и комнаты, могут быть открыты для всех желающих, но бывают и закрытые каналы, на которые можно попасть, имея ключ, или по специальному приглашению. Канал может быть даже секретным: в этом случае его не видно в списке каналов и, кроме того, никто из посторонних не может видеть, что мы в нем находимся. Это создает неплохие возможности для ведения приватных бесед, которым никто не может помешать.
О приватном общении. Каждый общающийся в IRC имеет псевдоним (Nick), по которому он и известен в IRC.
Мы можем обмениваться сообщениями с каким-либо заинтересовавшим нас человеком, используя его псевдоним. Если общение в каналах можно сравнить с дискуссиями в телеконференциях, то личные сообщения v с e-mail'ом.
Одна из замечательных особенностей IRC - возможность параллельного общения.
Мы можем присутствовать одновременно на нескольких каналах, а также синхронно вести несколько приватных бесед. Это дает возможность, скажем, сидя на канале вместе с приятелем, обмениваться замечаниями по поводу общеканальной беседы, не рискуя навлечь на себя чей-либо гнев, поскольку вы не мешаете ходу коллективной беседы.
Параллельность может служить и дурную службу: удовлетворяя свою жадность к общению, можно и надорваться. Посидишь так часиков шесть, болтая одновременно на пяти-шести каналах, а потом пальцы на руках не шевелятся.
Несмотря на сложность технического устройства IRC, само общение избавляет нас от некоторых сложностей, характерных для традиционных способов коммуникации. На наш взгляд, объясняется это несколькими факторами, а именно:

- зайдя в IRC, мы не опасаемся кому-то помешать, так как ради общения все здесь и "толкутся";
- выйти из IRC гораздо проще, чем, например, уйти из гостей: обнаружив, что нам стало скучно, мы можем тут же покинуть IRC, никого при этом не обидев;
- реально окружающие вас люди ничего не слышат: например, если жене внезапно потребовалось поговорить о семейных делах как раз в разгар рабочего дня, то гораздо приятнее, если она сделает это через IRC, а не по телефону. А дома можно договориться с любовницей об очередном свидании, избежав вопроса: "А кто это звонил?";
- IRC, как и телефон, позволяет общаться с приятными собеседниками, не покидая удобного кресла. Причем в отличие от телефонных разговоров, которые строятся по принципу "поговорили - положили трубки", IRC позволяет довольно естественно делать паузы в общении, поскольку все тексты, посланные, когда собеседника нет на месте, сохраняются компьютером или просто видны на экране.
----------------------------------------------------------------------------------------------------------------------------------
Если Вас заинтересовал данный способ общения и Вы захотели поставить свой собственный IRC-сервер, позвать туда друзей, стать админом и приятно проводить время - то тогда читайте статью до конца, в продолжении мы с Вами разберем установку и настройку своего собственного сервера Для начала нам надо его скачать. Скачивать сервер будем с официального сайта => ОТСЮДА <= Здесь нам надо определиться, будем ставить мы сервер с поддержкой защищенного ssl-соединения или нет.
SSL (англ. Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, обеспечивающий безопасную передачу данных по сети Интернет. При его использовании создаётся защищённое соединение между клиентом и сервером. SSL изначально разработан компанией Netscape Communications. Впоследствии на основании протокола SSL 3.0 был разработан и принят стандарт RFC, получивший имя TLS.

Использует шифрование с открытым ключом для подтверждения подлинности передатчика и получателя. Поддерживает надёжность передачи данных за счёт использования корректирующих кодов и безопасных хэш-функций.

SSL состоит из двух уровней. На нижнем уровне многоуровневого транспортного протокола (например, TCP) он является протоколом записи и используется для инкапсуляции (то есть формирования пакета) различных протоколов (SSL работает совместно с таким протоколами как POP3, IMAP, XMPP, SMTP и HTTP). Для каждого инкапсулированного протокола он обеспечивает условия, при которых сервер и клиент могут подтверждать друг другу свою подлинность, выполнять алгоритмы шифрования и производить обмен криптографическими ключами, прежде чем протокол прикладной программы начнёт передавать и получать данные.

Для доступа к веб-страницам, защищённым протоколом SSL, в URL вместо обычного префикса (schema) http, как правило, применяется префикс https, указывающий на то, что будет использоваться SSL-соединение. Стандартный TCP-порт для соединения по протоколу https — 443.

Для работы SSL требуется, чтобы на сервере имелся SSL-сертификат.
Я предлагаю использовать ssl, т.к. это в будущем Вам очень сильно может пригодиться, а установка ssl много времени не займет Значит качаем 3.2.8 Win32 SSL (например) по ссылке выше и потом начинаем устанавливать сервер.
Процедура установки сервера стандартна и схожа с установкой всех Windows приложений. Самый простой путь - согласиться с предложенными по умолчанию значениями нажатием кнопки "Next".
В случае, если устанавливается UnrealIRCD с поддержкой SSL, в процессе установки Вам предложат создать сертификаты (на все задаваемые вопросы можно отвечать нажатием "enter").

* Обратите внимание: unrealircd with ssl не будет работать без сертификатов.

Если, по какой-либо причине сертификаты не созданы - запустите из директории unrealircd makecert.bat (на все задаваемые вопросы можно отвечать нажатием "enter"). Результатом его работы должно быть создание трех файлов - server.cert.pem, server.key.pem и server.req.pem.
После установки скопируйте из папки, в директорию , где находятся исполняемые файлы UnrealIRCD (wircd.exe и unrealircd.exe) unrealircd.conf (пример основного конфигурационного файла), ircd.motd (пример message of the day, сообщение, которое будут видеть пользователи при коннекте к серверу), ircd.rules (пример правил сети или сервера, вызывается командой /rules) и help.ru.conf (дополненная русская справка по командам сервера /helpop). Обращу Ваше внимание на то, что unrealircd.conf - это файл example.ru.conf в папке docs, который надо оттуда скопировать в корневик и переименовать. Далее мы начинаем редактировать наш unrealircd.conf
Т.к. все директивы конфигурационного файла достаточно полно комментированы, предлагаю рассмотреть ключевые моменты, на которые стоит обратить внимание новичку
Находим и раскоментируем (удаляем символы «//» в начале) следующие строки:
для Windows

loadmodule «modules/commands.dll»;
loadmodule «modules/cloak.dll»;

Для unix

loadmodule «src/modules/commands.so»;
loadmodule «src/modules/cloak.so»;

Несколькими строками ниже находим

me
{
name «irc.myirc.ru»;
info «Мой IRC сервер»;
numeric 1;
};

В поле name вписываем my.irc.loc. В поле info — описание сервера (будет видно в /whois), а в поле numeric — цифру 1 (уникальный номер сервера в сети).

Примечание: для поиска удобно использовать комбинацию клавиш CTRL и F
В admin {} пишем свои координаты, они будут доступны по команде /admin имя_сервера
В директиве oper {} (IRC-операторы для данного сервера) изменяем стандартные значения на:

oper den {
class clients;
from {
userhost *;
};
password qwerty;
flags
{
netadmin;
can_zline;
can_gzline;
can_gkline;
global;
};
};

Вместо «den» пишите свой опер-логин, вместо qwerty — свой пароль. Звёздочка рядом с userhost отменяет привязку к хосту (плохо с точки зрения безопасности и запрещено в некоторых сетях).
Находим секцию tld

tld {
mask *@*.ru;
motd «ircd.motd.ru»;
rules «ircd.rules.ru»;
};

Так как у нас используется только один язык заменяем на:

tld { mask *@*.ru; motd «ircd.motd»; rules «ircd.rules»; };

Обязательно создаем файлы ircd.motd и ircd.rules в директории сервера (обычные текстовые файлы и меняем расширение) и при желании пишем в них сообщение дня и правила сервера соответственно.

Переходим к директиве set, в ней должно быть следующее (не забываем читать и комментарии в конфиге):

/* Конфигурация Сети */
set {
network-name «my.IRC»;
default-server «my.irc.loc»;
services-server «services.irc.loc»;
stats-server «stats.irc.loc»;
help-channel «#help»;
hiddenhost-prefix «loc»;
cloak-keys {
«qWertyu1»;
«qWertyu2»;
«qWertyu3»;
};
hosts {
local «locop.roxnet.org»;
global «ircop.roxnet.org»;
coadmin «coadmin.roxnet.org»;
admin «admin.roxnet.org»;
servicesadmin «csops.roxnet.org»;
netadmin «netadmin.roxnet.org»;
host-on-oper-up «no»;
};
};

Для запуска сервера обязательно необходимо указать адрес почты для запросов о снятии kline (банов на сервере):
/* Специфическая конфигурация сервера */

set {
kline-address « your_email@пmail.com»;

}

Теперь займемся непосредственно настройкой для соединения с сервисами. Заменяем\(добавляем к) код(у):

listen *:6697
{
options
{
ssl;
clientsonly;
};
};

на:

listen 127.0.0.1:1234
{
options
{
serversonly;
};
};

По порту 1234 с адреса 127.0.0.1 (локальный компьютер) к серверу будут присоединены сервисы.

Изменяем директиву link, заменяем на:

link services.irc.loc
{
username *;
hostname 127.0.0.1;
bind-ip *;
port 1234;
hub *;
password-connect «passlink»;
password-receive «passlink»;
class servers;
};

Таким образом, мы делаем возможным подключение сервисов с адреса 127.0.0.1 по порту 1234, используя пароль «passlink».

Устанавливаем U-линии:


ulines {
services.irc.loc;
stats.irc.loc;
};

В них перечислены сервер статистики и сервисы, они обладают большей «властью», нежели обычные сервера в сети.

Теперь можно попробовать включить сервер, запускаем сервер (./unreal start) и коннектимся обычным IRC клиентом на 127.0.0.1 (если сервер удаленный, то IP соответственно его) (порт 6667). Для получения статуса оператора пишем: /oper ваш_логин ваш_пароль (у нас было den и qwerty соответсвенно).

Конечно, в этой статье мне не удалось полностью осветить все ключевые моменты, да это и не возможно.. В следующей статье (если у меня хватит терпения её написать) мы с Вами рассмотрим пример настройки и линковки сервисов к IRC-серверу, блок link (сервисы, это то, что отвечает за базу Ваших ников, каналов и просто облегчает жизнь на IRC-сервере как админам, так и пользователям ) Если у Вас возникнут какие-либо вопросы по поводу данной статьи, или что-нибудь не получится, пишите, я с удовольствием всем отвечу и помогу.
 
Многабукв, смысла меньше. Слепить все вместе думаю не лучшая была идея.
Из минусов - плохо описал блок set, вообще отсутствует описание о конфигах спамфильтра (хоть им и можно управлять прямо из сети), и антиматом, директива class, алиасы, исключения. Хоть для новичков это не особо и важно, но лучше раз уж статья такая...подробная, то описывать уже все.
Из личного хочется сказать, что использовать стандартный анреал в русских сетях я бы не стал рекомендовать, ибо поддержка русских ников мягко говоря "ужасная". Лушче поискать софт других рускоязычных сетей и использовать его.
В целом статья на 4 из 5, при условии, что это не копипаст, в чем я сильно сомневаюсь :)
 
это не копипаст :) статья была написано лично мной, но давненько, и выложена всего лишь на одном форуме в инете (теперь уже на двух :))
блок set и пр. описывать не стал, т.к. статья ориентирована именно для новичков, жаждущих иметь свой сервер и быть мега-админом =) в любом случае docs в комплекте с сервером почитать (на русском даже!) ещё никто не запрещал =)
а насчёт русских ников:
Код:
set { allowed-nickchars { russian-cp1251; }; }

P.S. от себя тоже не рекомендую использовать стандартный unreal, а лучше использовать модификацию от IrcLine (DalNet) на базе unreal'а =)
 
статья ориентирована именно для новичков, жаждущих иметь свой сервер и быть мега-админом =)
Не в обиду, но вот изза таких вот новичков irc и вымирает, посколько в нормальные сети приходят разные быдло, которые даже конфиг-то настраивать не умеют. Эти мегаодмины не понимают, как нужно, если их не заставить в самом начале делать как положено.
 
Не в обиду, но вот изза таких вот новичков irc и вымирает, посколько в нормальные сети приходят разные быдло, которые даже конфиг-то настраивать не умеют. Эти мегаодмины не понимают, как нужно, если их не заставить в самом начале делать как положено.

в нормальные сети просто не пустят быдло, не умеющее даже конфиг настраивать :) либо за них всё сделают и настроят, а они лишь обеспечат сеть небольшим количеством народа со своего сервера.. а IRC вымирает из-за школоты, которой там сейчас набралось уйма и поэтому пообщаться практически не с кем, ИМХО

P.S. повторюсь: если человек захочет нормально сделать, настроить и отладить сервер, то почитает docs, в противном случае наткнётся в инете на какую-нибудь подобную статейку и сделает ещё хуже :)
 
Сверху