================================================================================
ircd-RU! Frequently Asked Questions
--------------------------------------------------------------------------------
При составлении использованы материалы с http://bahamut.dal.net/documentation/
--------------------------------------------------------------------------------
$Id: FAQ,v 1.1.2.5 2003/08/16 17:37:17 rzhe Exp $
================================================================================
I. СПИСОК ВОПРОСОВ
===============
1. Чем распаковать архив .bz2 с исходниками?
2. Как исправить ошибки, появляющиеся при "make install"?
3. Что означает ошибка "ircd fd table too big" при старте сервера?
4. Почему сервер не видно в списке процессов? Он сообщил, что стал демоном,
но на самом деле не запущен!
5. Сервер из распакованного архива для Win32 не запускается/не хочет
работать/пишет об ошибках.
6. Как запустить сервер для Win32 сервисом?
7. Почему при заходе на пустой канал я не получаю статус оператора, а взамен
вижу "Due to a network split, you can not obtain channel operator status
in a new channel at this time"?
8. Не могу взять статус IRC оператора, сервер сообщает "Password Incorrect",
хотя в моем O:line указан используемый мной пароль.
9. В моем O:line указаны все возможные флаги, но когда я становлюсь IRC
оператором, я не вижу "is an IRC Operator - Server Administrator" в своем
/WHOIS. Почему?
10. Как мне получить статус оператора на существующем канале с помощью своего
сервера?
11. Почему не работает /SAMODE?
12. Я получаю статус IRC оператора, но не могу получить user modes +A/+a.
Почему?
13. Какие должны быть флаги у NetAdmin'а?
14. Как включить блокировку badwords?
15. Как сделать, чтобы при подключении к серверу пользователь автоматически
заходил на определенный канал?
16. Что такое "Excessive TS delta" и как решить эту проблему?
17. Можно ли отключить блокирование отправки по DCC .exe, .zip и некоторых
других типов файлов?
18. Как отключить DCC, чтобы мои локальные пользователи не могли скачивать
файлы по бесплатному IRC?
19. Как использовать хостмаскинг для IRC операторов?
20. Какие сервисы работают с ircd-RU! и как их подключить к серверу?
21. Почему при обращении к сервисам посредством команд /nickserv, /cs и т.д. я
получаю сообщение "Services is currently down. Please wait a few moments,
and then try again.", хотя сервисы при этом есть и доступны по
/msg nickserv?
22. Я не нашел защиты от kick/deop для фаундеров/кофаундеров и IRC операторов,
channel modes +a/+q/+Q, как в Unreal.
23. Как насчет команд /SETHOST, /CHGHOST, /SETIDENT, /CHGIDENT и других
подобных, как в Unreal?
II. ВОПРОСЫ И ОТВЕТЫ
================
Q1: Чем распаковать архив .bz2 с исходниками?
A1: Утилитой bunzip2. Если у Вас не установлен архиватов bzip2, последние
версии исходников выкладываются также и в аналогичном .gz архиве в том же
каталоге.
Q2: Как исправить ошибки, появляющиеся при "make install"?
A2: Перезапустить ./configure, указав в значении параметра --prefix доступный
для создания или записи каталог.
Q3: Что означает ошибка "ircd fd table too big" при старте сервера?
A3: Размер таблицы файловых дескрипторов сервера превысил системное
ограничение. Необходимо уменьшить значения HARD_FDLIMIT_ и
INIT_MAXCLIENTS в include/config.h и переустановить сервер.
Узнать ограничение на число открытых процессом дескрипторов можно
посредством "ulimit -a" и поиском значения, соответсвующего "open files".
Если это не работает, обратитесь к администратору машины.
Q4: Почему сервер не видно в списке процессов? Он сообщил, что стал демоном,
но на самом деле не запущен!
A4: Видимо что-то неправильно настроено в ircd.conf. Запустите сервер как
"./ircd -s" и посмотрите какие ошибки он напишет. Скорее всего причиной
являются проблемы с портом/интерфейсом.
Q5: Сервер из распакованного архива для Win32 не запускается/не хочет
работать/пишет об ошибках.
A5: Внимательно прочтите статью об использовании готовых Win32 бинарников.
Распакуйте, установите и настройте сервер с учетом приведенных там
советов.
Q6: Как запустить сервер для Win32 сервисом?
A6: Заставить работать ircd для Win32 сервисом можно с помощью утилиты
cygrunsrv. Вместе с ней поставляется документация с подробным описанием
использования. Примеры:
Зарегистрировать сервис ircd, с автозапуском при старте системы:
cygrunsrv -I ircd -f 'IRC daemon' -p /home/ircd/bin/ircd -a '-s -n 123.45.67.89' -o
В аргументах, передаваемых ircd, обязательно должен быть ключ -s.
Запустить сервис вручную:
cygrunsrv -S ircd
Остановить сервис вручную:
cygrunsrv -E ircd
Q7: Почему при заходе на пустой канал я не получаю статус оператора, а взамен
вижу "Due to a network split, you can not obtain channel operator status
in a new channel at this time"?
A7: Для одиночного сервера надо отключить в include/config.h определение
NO_CHANOPS_WHEN_SPLIT, тогда сервер не будет ограничивать статус
оператора на пустом канале в течение времени восстановления из сплита.
Если же сервер работает в сети, то отключать это нельзя.
Бинарники для одиночного Win32 сервера находятся в ZIP-архиве с суффиксом
-standalone.
Q8: Не могу взять статус IRC оператора, сервер сообщает "Password Incorrect",
хотя в моем O:line указан используемый мной пароль.
A8: В O:lines надо указывать криптованные пароли, сделанные с помощью утилиты
bin/ircdpasswd. Использовать plain text пароли можно, отменив
определение CRYPT_OPER_PASSWORD в include/config.h и переустановив
сервер.
Q9: В моем O:line указаны все возможные флаги, но когда я становлюсь IRC
оператором, я не вижу "is an IRC Operator - Server Administrator" в своем
/WHOIS. Почему?
A9: Не все user modes автоматически устанавливаются при взятии прав
оператора. Добавьте недостающие с помощью команды /MODE.
Q10: Как мне получить статус оператора на существующем канале с помощью своего
сервера?
A10: Посредством /SAMODE #chan +o nick. Перед этим надо взять статус
оператора и установить себе user mode +a.
Q11: Почему не работает /SAMODE?
A11: Использовать команду /SAMODE может только IRC оператор с установленным
user mode +a. Для этого также необходим флаг 'a' в O:line оператора
(более подробно см. ircd.conf-dist).
Q12: Я получаю статус IRC оператора, но не могу получить user modes +A/+a.
Почему?
A12: Для возможности установить user modes +A/+a в O:line недостаточно маски
'O', флаги 'A' и 'a' (и некоторые другие) надо указывать специально.
Q13: Какие должны быть флаги у NetAdmin'а?
A13: Нет таких флагов. ircd-RU! (как и его основа Bahamut) не является
"приятным" IRCd, эти сервера созданы для того, чтобы выполнять работу IRC
сервера как можно лучше, но только ее. Никаких ненужных рюшечек.
Q14: Как включить блокировку badwords?
A14: Блокировка badwords не поддерживается, это ненужная и бессмысленная
возможность для IRC сервера. Чистота канала достигается другими
средствами -- правильной политикой и администрированем канала.
Q15: Как сделать, чтобы при подключении к серверу пользователь автоматически
заходил на определенный канал?
A15: Поддержки такой возможности нет и не планируется. Пользователь должен
быть свободен в своем выборе, заходить ему на канал или нет. Более
тактично и грамотно описать нужные каналы в MOTD сервера и там же
пригласить их посетить. Также, для тех пользователей, которые "боятся
компьютера", т.е. научить которых использовать минимальные возможности
IRC клиента не представляется возможным, Вы можете сделать свой
собственный скрипт к клиенту со всеми уже настроенными нужными
действиями; и раздавать им скрипт за пиво.
Q16: Что такое "Excessive TS delta" и как решить эту проблему?
A16: Если при соединении двух серверов возникает такая ошибка, это означает,
что время на машинах серверов отличается больше чем на TS_MAX_DELTA (по
умолчанию 2 минуты). Вопреки распространенному заблуждению, разные
временные зоны или другие временные настройки не являются причиной этой
ошибки -- функция time(3), используемая для получения времени, возвращает
время UTC.
Решение 1. Наиболее оптимальное и простое решение - запустить на машине
IRC-сервера ntpd.
Решение 2. Синхронизировать время на машинах серверов. Это можно
сделать с помощью утилиты ntpdate и для этого требуется доступ root.
Инсталляция ntpdate и список NTP серверов есть на http://www.ntp.org/.
Для корректной работы сервера в сети достаточно делать синхронизацию при
загрузке системы, но до запуска ircd; и после этого обычно один раз в
сутки.
Решение 3. В include/config.h обоих серверов найти определение
TS_MAX_DELTA и увеличить его значение, переустановить и перезапустить
сервер. При таком способе решения проблемы могут наблюдаться "странные"
эффекты, потому что синхронизация серверов происходит с использованием
timestamps, временных отметок. Этот способ очень не рекомендуся к
применению и, кроме того, условия использования ircd в Вашей сети могут
не позволять увеличивать значение TS_MAX_DELTA.
Решение 4. В случае, если синхронизация невозможна (например, нет
доступа root), но неправильное время на машине сервере отличается от
правильного всегда на одинаковую или с колебанием в пределах TS_MAX_DELTA
определенную величину (некоторые системные администраторы делают так
специально, исходя из своих соображений безопасности), проблему можно
решить, установив в include/config.h значение TIME_OFFSET в величину
постоянной разницы с правильным временем и переустановив сервер. При
отклонении времени назад TIME_OFFSET должен быть положительным, при
отклонении вперед -- отрицательным.
Q17: Можно ли отключить блокирование отправки по DCC .exe, .zip и некоторых
других типов файлов?
A17: Прежде всего, отключать это очень не рекомендуется. IRC сервер не ставит
целью предотвратить заражение компьютера пользователя вирусом, но такое
блокирование снижает риск случайного инфицирования вследствие например
настроек клиента (автоприем и возможно автоматическое открытие файла),
или других случайных обстоятельств.
Пользователь может определить список ников (находящихся в текущее время в
онлайне), которые могут отправлять по DCC файлы блокируемых типов. См.
справку по команде /DCCALLOW.
Отключить совсем блокирование можно лишь удалив перед сборкой сервера
определения блокируемых расширений в src/s_user.c, или удалив код,
относящийся к блокированию. Делать это не рекомендуется, кроме того,
условия использования ircd в Вашей сети могут не разрешать этого.
Q18: Как отключить DCC, чтобы мои локальные пользователи не могли скачивать
файлы по бесплатному IRC?
A18: Отключить DCC настройками сервера нельзя. И не имеет смысла. DCC -- это
соединение не через сервер, а напрямую между машинами пользователей
(Direct Client to Client). Таким образом, если у локальных пользователей
нет доступа за пределы локальной сети, внешние DCC соединения будут им
недоступны. Или, если у них оплачиваемый внешний трафик, то трафик
внешних DCC соединений будет также платный.
Q19: Как использовать хостмаскинг для IRC операторов?
A19: Для oper hostmasking необходимы например такие дополнительные I/P:lines в
конфиге сервера:
I:*@*:oper.maskpass:*@*:7149:1
P:*::CP1251:7149
Первая часть пароля в I:line, 'oper.', должна быть именно такой,
'maskpass' может быть произвольным паролем для хостмаскинга.
Далее, допустим, в конфиге сервера есть O:line для оператора culbolz с
криптованным паролем 'operpass':
O:somehost.yo.net:AmamHIZ4FH8Lg:culbolz:O:10
А в STAFF_ADDRESS в include/config.h указан адрес staff.some.net.
Теперь, чтобы получить маскирование идента/хоста в виде
culbolz@staff.some.net, этот оператор должен соединяться к серверу на
порт 7149 и с паролем maskpass:culbolz:operpass
/server irc.some.net:7149 maskpass:culbolz:operpass
Q20: Какие сервисы работают с ircd-RU! и как их подключить к серверу?
A20: С ircd-RU! работают любые стандартные сервисы (мы рекомендуем
IRCServices, http://www.ircservices.za.net/) после отключения на сервере
возможности регистронезависимых 8-битных имен, см.
_8BITNAMES_CASEINSENSITIVE в include/config.h. Также, в N:line для
сервисов необходимо указать флаг отмены проверки версии протокола.
Q21: Почему при обращении к сервисам посредством команд /nickserv, /cs и т.д.
я получаю сообщение "Services is currently down. Please wait a few
moments, and then try again.", хотя сервисы при этом есть и доступны по
/msg nickserv?
A21: Вероятнее всего, имя сервера сервисов не соответствует определению
SERVICES_NAME в include/config.h. В обычном случае установка в
правильное значение решит такую проблему с командами /nickserv, /cs,
/identify и т.д.
В случае использования каких-нибудь экзотических сервисов, с
нестандартными username псевдопользователей, придется также исправить
определения NICKSERVATSERVICES, CHANSERVATSERVICES и т.д. там же, в
include/config.h.
Q22: Я не нашел защиты от kick/deop для фаундеров/кофаундеров и IRC
операторов, channel modes +a/+q/+Q, как в Unreal.
A22: Эти channel modes не поддерживаются, поскольку являются ненужными. Если
Вы не хотите, чтобы Вас кикали с канала, давайте aop/sop только
доверенным лицам, которы не будут применять административные меры к Вам
или кому-то еще без необходимой причины. Любой оператор, нарушающий
правила администрирования Вашего канала, видимо не подходит для того,
чтобы быть на нем оператором. Для решения подобных проблем определенно
не требуется технической поддержки на сервере.
Q23: Как насчет команд /SETHOST, /CHGHOST, /SETIDENT, /CHGIDENT и других
подобных, как в Unreal?
A23: Подобных возможностей нет и не планируется. Сейчас у пользователей есть
какого-то рода гарантия, что информация в /WHOIS другого пользователя
соответсвует его действительному местонахождению, будь то его собственный
компьютер, или даже BNC, прокси, или еще что-то. Возможность менять
хостнейм на какой-то другой собственный, даже IRC операторами, разрушит
эту гарантию. Даже если операторы сети заслуживают доверия или
использование таких возможностей ограничено узким кругом лиц, все равно
нет достаточных причин поддерживать эти возможности, дающие большой
потенциал для злоупотребления в плане ненастоящих источников действий IRC
операторов, смены хостнеймов пользователей и т.д. Такие команды являются
скорее игрушками для IRC операторов, нежели необходимыми возможностями
для выполнения ими своих функций.