IRC:InspIRCd

Материал из wiki.p3.ru
Версия от 10:51, 23 августа 2012; Eternity (обсуждение | вклад) (Новая страница: «InspIRCd - модульный C++ IRC сервер для Linux, BSD, Windows систем. Стабильный и очень лёгкий сервер, потр…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

InspIRCd - модульный C++ IRC сервер для Linux, BSD, Windows систем. Стабильный и очень лёгкий сервер, потребляющий минимум ресурсов. Распространяется под GNU GPL лицензией.

Установка из портов

InspIRCd развивается с огромной скоростью, поэтому в портах обычно старые версии. <source lang=bash> cd /usr/ports/irc/inspircd make install clean </source>

Описание настройки сервера будет ниже.

Установка из исходников

Скачиваем последнюю стабильную сборку с официального сайта http://inspircd.org.

Извлекаем содержимое из архива:

# tar xjf название_архива.tar.bz2

Переходим в папку с исходниками и запускаем автоконфигуратор

# ./configure

Во время процесса конфигурации, скрипт будет задавать вам вопросы о вашем будущем сервере, вводите корректные данные. Если вы не знаете что значит какой-либо пункт, то рекомендую оставить его значение по умолчанию. Когда вы ответите на все вопросы, то можно будет приступать к сборке сервера.

# make
 

Если сборка сервера прошла без ошибок, то можно приступать к его установке.

# make install

Все файлы будут перемещены в ту директорию, которую вы указали при конфигурировании.

Теперь осталось настроить и запустить сервер :-)

Настройка и запуск сервера

Переходим в папку /conf Необходимо переименовать конфигурационный файл

# cp inspircd.conf.example inspircd.conf

Теперь открываем сам inspircd.conf , и начинаем редактировать. Первое что нам попадется, информация о сервере.

    <server name="irc.trashtalk.ru"
      description="краткое описание"
     network="Название вашей сети">

Естественно в каждом поле вводим свои данные.

admin info

    <admin name="Имя"
     nick="Вашник"
     email="почта">

ports

Далее нам необходимо настроить порты которые будут слушаться. Сначало порты для клиентов:

<bind address="" port="6667" type="clients">

Клиенты будут подключаться на стандартный порт 6667. Если у вашего сервера есть поддержка ssl соединения, то необходимо для него так-же открыть порт. К примеру 6669.

<bind address="" port="6669" type="clients" ssl="openssl">

Приступим к настройке портов, которые необходимы для линковки серверов или сервисов.

<bind address="" port="7667" type="servers">
<bind address="" port="7668" type="servers" transport="openssl">
<bind address="" port="7669" type="servers" transport="zip">

Так же можно открыть диапозон портов. К примеру от 7667 до 7670.

<bind address="" port="7667-7670" type="servers">

Или открыть порт 7667 и 7669.

<bind address="" port="7667,7669" type="servers">

Порты можете открывать какие вам необходимо. Мои только в качестве примера.

С портами закончили. Поехали дальше.

die pass

Видим строку с паролями для выключения, рестарта, паузы сервера. Меняйте обязательно.

<power diepass="пароль" restartpass="пароль" pause="пароль">

opers

Добавим администратора сервера:

<oper name="Вашник"
     password="пароль"
     host="*"
     type="NetAdmin">

Обратите внимание на строку "host" и "type".

host - звёздочку ставим в том случае, если вам приходится заходить с разных компьютеров на ваш сервер. Если вы всегда сидите с одного хоста, то лучше добавьте его, так безопаснее.

type. NetAdmin имеет полные права на сервере. Об остальных типах оперов почитайте в документации.

Это минимальная настройка сервера, необходимая для работы. Но "это" нельзя назвать полноценным IRC сервером. Внимательно изучите все настройки, сделайте как вам необходимо. Более подробную информацию по настройке и модулям можно найти на официальном сайте.

Подводные камни

В конфигурационном файле можно встретить строки

<die value="You should probably edit your config *PROPERLY* and try again.">
<die value="User error. Insert new user and press any key. (you didn't edit your config properly.)">

Найдите их и удалите, они не дадут вашему серверу запустится.

Проблема с портами

Начали линковать сервера, но никак нехочет сервер открывать порт для ssl и zip коннекта. Такая проблема и есть, и решается она пока только так:

<module name="m_spanningtree.so">

Этот модуль первый в списке, его необходимо перенести в самый низ. Загрузите его после модуля ziplink

<module name="m_ziplink.so">
<module name="m_spanningtree.so">

Линковка серверов

Открываем порт для коннекта сервера. Порт должен быть одинаковый у обоих серверов. для примера берём 7667.

<bind address="" port="7667" type="servers">

Порт открыли, настроим link блок.

<link name="имя сервера"
     ipaddr="1.2.3.4"
     port="7667"
     autoconnect="120"
     timeout="15"
     bind="ваш ип"
     statshidden="no"
     hidden="no"
     sendpass="пароль"
     recvpass="пароль">

ipaddr - пишем ip сервера с которым будем линковаться.

port - тот который вы открыли (7667)

autoconnect - в случае неудачной попытки соединения, или обрыве сети, сервер будет пробовать линковаться каждые 120 секунд.

sendpass, recvpass - пароль для линковки, должны быть одинаковые у обоих серверов.

Ваш сервер готов к линковке, теперь необходимо так-же настроить второй. только в строке "ipaddr" должен быть адрес вашего сервера.

ziplink

Делаем тоже самое, только не забываем указать транспорт zip. Модуль m_ziplink.so должен быть загружен обязательно!

Открываем порт:

<bind address="" port="7669" type="servers" transport="zip">

Настраиваем link блок:

<link name="имя сервера"
     ipaddr="1.2.3.4"
     port="7669"
     autoconnect="120"
     timeout="15"
     transport="zip"
     bind="ваш ип"
     statshidden="no"
     hidden="no"
     sendpass="пароль"
     recvpass="пароль">

Готово.

ssl link

Должен быть загружен модуль m_ssl_openssl.so. Открываем порт для ссл линка:

<bind address="" port="7668" type="servers" transport="openssl">

Настраиваем link блок:

<link name="имя сервера"
     ipaddr="1.2.3.4"
     port="7668"
     autoconnect="120"
     timeout="15"
     transport="openssl"
     bind="ваш ип"
     statshidden="no"
     hidden="no"
     sendpass="пароль"
     recvpass="пароль">