diff --git a/doc/unreal32docs.ru.html b/doc/unreal32docs.ru.html index 0cbf2257c..b649b4ec6 100644 --- a/doc/unreal32docs.ru.html +++ b/doc/unreal32docs.ru.html @@ -15,14 +15,10 @@ - English - | German - | Spanish - | Hungarian - | French - | Greek - | Dutch - | Russian + English | German + | Spanish | Hungarian + | French | Greek + | Dutch | Russian

UnrealIRCd
@@ -35,14 +31,13 @@ / Griever / nighthawk
Документация: CKnight^ / Syzop
- Перевод: Bock / Slyder / DeathBaba / Kirya
-

Совершенствуя UnrealIRCd3.2, - мы создали также более подробную и удобную документацию. Чтобы ей - воспользоваться, у вас должен быть совместимый браузер из списка, приведённого - ниже. Последние версии документов доступны на - http://www.vulnscan.org/UnrealIrcd/unreal32docs.html , ЧАВО (ЧАсто - задаваемые ВОпросы): - http://www.vulnscan.org/UnrealIrcd/faq/. + Перевод: Bock / Slyder / DeathBaba + / Kirya
+

Для просмотра данной документации, вы должны иметь совместимый браузер из + списка, приведённого ниже. Документация с последними обновлениями доступна по + адресу http://www.vulnscan.org/UnrealIRCd/unreal32docs.ru.html + и ЧАВО (ЧАсто задаваемые ВОпросы): + http://www.vulnscan.org/UnrealIRCd/faq/.

Совместимые браузеры:
@@ -56,98 +51,101 @@

  • Mozilla 1.2.X
  • - Lynx (to a point)
  • + Lynx (to a point) +

    INDEX / Содержание
    - 1. Введение
    - ---1.1. Замечания по обновлению/совместному использованию - версий 3.1.x -> 3.2
    - ---1.2. Замечания по обновлению между версиями ветки 3.2
    - 2. Установка
    - 3. Функциональные возможности
    - -- 3.1. Cloaking[сокрытие хоста]
    - -- 3.2. Модули
    - -- 3.3. SNOMASKs
    - -- 3.4. Псевдонимы[aliases]
    - -- 3.5. Система помощи сервера (helpop)
    - -- 3.6. Уровни доступа операторов
    - -- 3.7. Команды операторов
    - -- 3.8. SSL
    - -- 3.9. IPv6
    - -- 3.10. Сжатые соединения
    - -- 3.11. Поддержка соединения с динамическим DNS/IP
    - -- 3.12. Возможности защиты от flood'а
    - -- 3.13. Разновидности банов
    - -- 3.14. Спамфильтр
    - -- 3.15. CIDR
    - -- 3.16. Использование национальных наборов символов в - никах
    - -- 3.17. Другие возможности
    - 4. Настройка сервера
    - ---4.1. Обзор структуры конфигурационного - файла
    - ---4.2. Блок Me -=- (M:Line)
    - ---4.3. Блок Admin -=- (A:Line)
    - ---4.4. Блок Class -=- (Y:Line)
    - ---4.5. Блок Allow -=- (I:Line)
    - ---4.6. Блок Listen -=- (P:Line)
    - ---4.7. Блок Oper -=- (O:Line)
    - ---4.8. Блок DRpass -=-(X:Line)
    - ---4.9. Директива Include
    - ---4.10. Директива Loadmodule
    - ---4.11. Блок Log
    - ---4.12. Блок TLD -=- (T:Line)
    - ---4.13. Блок Ban Nick -=- (Q:Line)
    - ---4.14. Блок Ban User -=- (K:Line)
    - ---4.15. Блок Ban IP -=- (Z:Line)
    - ---4.16. Блок Ban Server -=-(q:Line)
    - ---4.17. Блок Ban Realname -=- (n:Line)
    - ---4.18. Блок Ban Version
    - ---4.19. Блок Ban Exception -=- (E:Line)
    - ---4.20. Блок TKL Exception
    - ---4.21. Блок Throttle Exception
    - ---4.22. Блок Deny DCC -=- (dccdeny.conf)
    - ---4.23. Блок Deny Version -=- (V:Line)
    - ---4.24. Блок Deny Link -=- (D:Line / d:Line)
    - ---4.25. Блок Deny Channel -=- (chrestrict.conf)
    - ---4.26. Блок Allow Channel
    - ---4.27. Блок Allow DCC
    - ---4.28. Блок Vhost -=- (vhost.conf)
    - ---4.29. Блок Badword -=- (badwords.conf)
    - ---4.30. Блок Uline -=- (U:Line)
    - ---4.31. Блок Link -=- (C/N/H:Lines)
    - ---4.32. Блок Alias
    - ---4.33. Блок Help
    - ---4.34. Блок Official Channels
    - ---4.35. Блок Spamfilter
    - ---4.36. Блок Set -=- (networks/unrealircd.conf)
    - 5. Дополнительные файлы
    - 6. Режимы пользователя и канала
    - 7. Команды пользователя и оператора
    - 8. Список советов по безопасности
    - ---8.1. Пароли
    - ---8.2. Уязвимости, не относящиеся к IRCD
    - ---8.3. Права доступа на конфигурационный файл
    - ---8.4. Человеческий фактор
    - ---8.5. SSL/SSH и перехват трафика
    - ---8.6. Атака на отказ в обслуживании (DoS) [или "как защитить - мой хаб"]
    - ---8.7. Раскрытие информации
    - ---8.8. Защита против эксплоитов
    - ---8.9. Итоги
    - 9. Часто + 1. Введение
    + ---1.1. Замечания по обновлению/совместному использованию + версий 3.1.x -> 3.2
    + ---1.2. Замечания по обновлению между версиями ветки 3.2
    + 2. Установка
    + 3. Функциональные возможности
    + -- 3.1. Cloaking[сокрытие хоста]
    + -- 3.2. Модули
    + -- 3.3. SNOMASKs
    + -- 3.4. Псевдонимы[aliases]
    + -- 3.5. Система помощи сервера (helpop)
    + -- 3.6. Уровни доступа операторов
    + -- 3.7. Команды операторов
    + -- 3.8. SSL
    + -- 3.9. IPv6
    + -- 3.10. Сжатые соединения
    + -- 3.11. Поддержка соединения с динамическим DNS/IP
    + -- 3.12. Возможности защиты от flood'а
    + -- 3.13. Разновидности банов
    + -- 3.14. Спамфильтр
    + -- 3.15. CIDR
    + -- 3.16. Использование национальных наборов символов в + никах
    + -- 3.17. Поддержка CGI:IRC
    + -- 3.18. Другие возможности
    + 4. Конфигурирование вашего unrealircd.conf
    + ---4.1. Обзор структуры конфигурационного + файла
    + ---4.2. Блок Me -=- (M:Line)
    + ---4.3. Блок Admin -=- (A:Line)
    + ---4.4. Блок Class -=- (Y:Line)
    + ---4.5. Блок Allow -=- (I:Line)
    + ---4.6. Блок Listen -=- (P:Line)
    + ---4.7. Блок Oper -=- (O:Line)
    + ---4.8. Блок DRpass -=-(X:Line)
    + ---4.9. Директива Include
    + ---4.10. Директива Loadmodule
    + ---4.11. Блок Log
    + ---4.12. Блок TLD -=- (T:Line)
    + ---4.13. Блок Ban Nick -=- (Q:Line)
    + ---4.14. Блок Ban User -=- (K:Line)
    + ---4.15. Блок Ban IP -=- (Z:Line)
    + ---4.16. Блок Ban Server -=-(q:Line)
    + ---4.17. Блок Ban Realname -=- (n:Line)
    + ---4.18. Блок Ban Version
    + ---4.19. Блок Ban Exception -=- (E:Line)
    + ---4.20. Блок TKL Exception
    + ---4.21. Блок Throttle Exception
    + ---4.22. Блок Deny DCC -=- (dccdeny.conf)
    + ---4.23. Блок Deny Version -=- (V:Line)
    + ---4.24. Блок Deny Link -=- (D:Line / d:Line)
    + ---4.25. Блок Deny Channel -=- (chrestrict.conf)
    + ---4.26. Блок Allow Channel
    + ---4.27. Блок Allow DCC
    + ---4.28. Блок Vhost -=- (vhost.conf)
    + ---4.29. Блок Badword -=- (badwords.conf)
    + ---4.30. Блок Uline -=- (U:Line)
    + ---4.31. Блок Link -=- (C/N/H:Lines)
    + ---4.32. Блок Alias
    + ---4.33. Блок Help
    + ---4.34. Блок Official Channels
    + ---4.35. Блок Spamfilter
    + ---4.36. Блок Cgiirc
    + ---4.37. Блок Set -=- (networks/unrealircd.conf)
    + 5. Дополнительные файлы
    + 6. Режимы пользователя и канала
    + 7. Команды пользователя и оператора
    + 8. Список советов по безопасности
    + ---8.1. Пароли
    + ---8.2. Уязвимости, не относящиеся к IRCD
    + ---8.3. Права доступа на конфигурационный файл
    + ---8.4. Человеческий фактор
    + ---8.5. SSL/SSH и перехват трафика
    + ---8.6. Атака на отказ в обслуживании (DoS) [или "как защитить + мой хаб"]
    + ---8.7. Раскрытие информации
    + ---8.8. Защита против эксплоитов
    + ---8.9. Итоги
    + 9. Часто задаваемые вопросы (ЧАВО)
    - A. Регулярные выражения
    - ---A.1. Литералы
    - ---A.2. Оператор Точка
    - ---A.3. Операторы повторения
    - ---A.4. Выражения в скобках
    - ---A.5. Управляющие символы
    - ---A.6. Оператор выбора
    - ---A.7. Подвыражения
    - ---A.8. Обратные ссылки
    - ---A.9. Чувствительность к регистру
    + A. Регулярные выражения
    + ---A.1. Литералы
    + ---A.2. Оператор Точка
    + ---A.3. Операторы повторения
    + ---A.4. Выражения в скобках
    + ---A.5. Управляющие символы
    + ---A.6. Оператор выбора
    + ---A.7. Подвыражения
    + ---A.8. Обратные ссылки
    + ---A.9. Чувствительность к регистру

    1.0 – Введение
    @@ -160,26 +158,27 @@ случае, если он будет использован с UnrealIRCd, и не будет содержать каких-либо изменений. – Copyright UnrealIRCd Development Team 2002-2006

    Пожалуйста, прочитайте это руководство прежде, чем задавать вопросы, а так же - загляните в ЧАВО, + загляните в ЧАВО, так как 80% ваших вопросов/проблем уже описано в нём. Если вы всё же нуждаетесь в помощи, попросите поддержки на irc.ircsystems.net (port 6667) на канале #unreal-support (имейте в виду, что мы ТРЕБУЕМ, чтобы документация была прочитана, и мы помогаем только по UnrealIRCd, а не по сервисам!). Если вы обнаружили реальный баг (например, аварийное завершение работы), сообщите об - этом на http://bugs.unrealircd.org.

    + этом на http://bugs.unrealircd.org.

    1.1 – Замечания по обновлению/совместному использованию версий 3.1.x-> 3.2

    -

    При переходе с Unreal3.1.x на Unreal3.2 вы заметите, что структура конфигурационного файла - полностью изменилась. Сначала она покажется сложной, однако со временем вы - привыкнете и поймёте, чтотак намного удобнее!

    +

    При переходе с Unreal3.1.x на Unreal3.2 вы заметите, что структура + конфигурационного файла полностью изменилась. Сначала она покажется сложной, + однако со временем вы привыкнете и поймёте, чтотак намного удобнее!

    Так же не забудьте прочитать раздел 3 о функциональных возможностях. С некоторыми из них вы знакомы по версии 3.1.x, но мы добавили новые!

    Лучше не использовать совместно 3.1.x и 3.2, но если вы на самом деле этого - хотите, у вас должна быть как минимум версия 3.1.4(мы настоятельно рекомендуем 3.1.5.1).

    + хотите, у вас должна быть как минимум версия 3.1.4(мы настоятельно рекомендуем + 3.1.5.1).

    1.2 – Замечания по обновлению между версиями ветки 3.2

    @@ -188,7 +187,8 @@ Linux:

    Пожалуйста, проверьте/прочитайте .RELEASE.NOTES чтобы увидеть, что изменилось. Если вы заметили разницу в работе (или ошибки) в новой версии, УБЕДИТЕСЬ, ЧТО ВЫ ПРОЧИТАЛИ .RELEASE.NOTES ПРЕЖДЕ, чем сообщать об этом!

    -

    2.0 - Установка
    -

    -
    +

    2.0 - Установка
    +


    Тестируемые и поддерживаемые операционные системы:
  • Windows версии: @@ -239,7 +241,8 @@
  • Windows XP (Home, Pro)
  • - Windows 2003
  • + Windows 2003 +
  • Тестируемые архитектуры: @@ -251,12 +254,13 @@
  • amd64
  • - alpha
  • + alpha +
    - Если у вас Unreal3.2 корректно работает на других операционных системах, пожалуйста, - вышлите детали на coders@lists.unrealircd.org
    -
    + Если у вас Unreal3.2 корректно работает на других операционных системах, + пожалуйста, вышлите детали на coders@lists.unrealircd.org
    +

    Инструкции по установке
    Linux:
    @@ -271,24 +275,25 @@ ./Config

  • Ответьте на вопросы. В общем случае, если вы не уверены в ответе, выбирайте - значение по умолчанию
  • + значение по умолчанию +
  • make
  • Теперь создайте ваш unrealircd.conf и другие конфигурационные файлы так, как - описано в разделе 4.
  • + описано в разделе 4. + -

    - Windows:
    +

    Windows:

    1. Запустите программу установки Unreal
    2. Теперь создайте ваш unrealircd.conf и другие конфигурационные файлы так, как - описано в разделе 4.
    3. + описано в разделе 4. +

    -

    -

    +

    @@ -299,13 +304,14 @@ обзор, но иногда мы будем обращаться к конфигурационному файлу (чтобы пояснить то, о чём вы, возможно, ещё не имеете представления).

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

    + сразу после установки, потому что в ином случае вы можете не понять таких + концепций как 'cloaking', 'snomasks' и др.

    3.1 - Cloaking[сокрытие хоста]

    Cloaking – это механизм сокрытия реального имени компьютера пользователя. К примеру, если ваша система имеет имя d5142341.cable.wanadoo.nl, оно - будет показано (при заходе на канал, выходе, whois и пр.) как rox-2DCA3201.cable.wanadoo.nl. + будет показано (при заходе на канал, выходе, whois и пр.) как rox-2DCA3201.cable.wanadoo.nl. Это полезно для предотвращения пользовательского флуда, так как реальное имя компьютера или его IP не показывается.

    Эта функция контролируется режимом пользователя +x (использование: /mode ваш_ник @@ -318,8 +324,7 @@ различных ключа set::cloak-keys::, состоящих из смеси прописных (a-z), заглавных (A-Z) букв и цифр (0-9) [т.е.: "AopAS6WQH2Os6hfosh4SFJHs"]. Смотрите example.conf для примера.
    -

    - Эти ключи ДОЛЖНЫ быть одинаковыми на ВСЕХ СЕРВЕРАХ в сети. Также ключи должны +

    Эти ключи ДОЛЖНЫ быть одинаковыми на ВСЕХ СЕРВЕРАХ в сети. Также ключи должны храниться в секрете, потому что возможно получить реальный хост, зная эти ключи (что делает режим +x бесполезным).

    @@ -395,7 +400,7 @@ Помните, что если вы irc-оператор (ircop), или доступны для помощи (helpop), вам необходимо добавлять символ '?', т.е. вместо /helpop необходимо писать /helpop ? и вместо /helpop chmodes надо писать /helpop - ?chmodes и т.д.

    + ?chmodes и т.д.

    3.6 - Уровни доступа операторов

    @@ -409,13 +414,12 @@

    3.7 - Команды операторов

    В UnrealIRCd имеется много различных команд оператора, о которых рассказано в - разделе Команды пользователя и оператора. Вы + разделе Команды пользователя и оператора. Вы наверняка захотите прочитать его после установки :).

    3.8 - SSL

    -

    - SSL является аббревиатурой от Secure Socket Layer. Используя SSL, вы можете +

    SSL является аббревиатурой от Secure Socket Layer. Используя SSL, вы можете создавать защищённые соединения. Его можно использовать для шифрования трафика от сервера к серверу, но шифрование данных от клиента к серверу так же может быть организовано. Обычно SSL используют для защиты от перехвата трафика и для @@ -423,17 +427,17 @@

    Чтобы использовать SSL, вам необходимо скомпилировать сервер с поддержкой этого протокола. Чтобы указать используемые для SSL-соединений порты, необходимо в конфигурационном файле задать опцию listen::options::ssl.

    -

    - Подключится на SSL-порт обычным способом невозможно (так что не стоит включать +

    Подключится на SSL-порт обычным способом невозможно (так что не стоит включать SSL на порту 6667), для этого необходим клиент или туннель, который понимает SSL протокол.

    -

    Клиенты, поддерживающие SSL: XChat, - irssi, +

    Клиенты, поддерживающие SSL: XChat, + irssi, mIRC (версии 6.14 и выше, но нужно предпринять некоторые дополнительные шаги).

    Для клиентов, которые не поддерживают SSL, вы можете использовать - туннелирование, используя, к примеру, - stunnel. Вот пример конфигурационного файла stunnel.conf (для stunnel версии 4.x):
    + туннелирование, используя, к примеру, + stunnel. Вот пример конфигурационного файла stunnel.conf (для stunnel + версии 4.x):

       client = yes
     				[irc]
     				accept = 127.0.0.1:6667
    @@ -480,8 +484,7 @@
     		

    3.12 - Возможности защиты от flood'а

    -

    - Тротлинг (Throttling)
    +

    Тротлинг (Throttling)
    Тротлинг - это метод, который позволяет вам ограничить скорость, с которой пользователь может соединяться и отсоединяться от вашего сервера. Вы можете сконфигурировать его в set::throttle блоке, чтобы ограничить X соединений в YY @@ -502,7 +505,7 @@ лимит превышен, то автоматически будет установлен режим +i (только по приглашениям).
    Доступны следующие типы защиты от флуда:
    - +
    @@ -515,20 +518,20 @@ - + - + - + @@ -536,14 +539,14 @@ - + - - + + @@ -554,7 +557,7 @@ кикать или банить пользователя.
    type: имя:CTCPs auto +C m, M 
    j заходы на канал auto +i R 
    k постукивание auto +K  (считаются только для локального сервера)
    сообщения/уведомления auto +m M 
    n изменения ников auto +N  
    t
    -

      Пример: +

    Пример:

    *** ChanOp sets mode: +f [20j,50m,7n]:15
     <ChanOp> ляля
     *** Evil1 (~fdsdsfddf@Clk-17B4D84B.blah.net) has joined #test
    @@ -648,8 +651,7 @@
     		

    3.13 - Типы банов

    -

    - Основные типы бана и скрытые хосты
    +

    Основные типы бана и скрытые хосты
    UnrealIRCd поддерживает основные типы банов, такие как +b nick!user@host.
    Если хост скрыт: 'rox-ACB17294.isp.com' и вы установили бан *!*@rox-ACB17294.isp.com, а пользователь установил на себя -x (и его хост стал, @@ -720,7 +722,7 @@ /spamfilter [add|del|remove|+|-] [тип] [действие] [время_действия] [причина] [регулярное_выражение]
    - + - + - + - - + - - - - + + +
    [тип] определяет тип цели фильтра:
    @@ -782,14 +784,13 @@
    Можно определить сразу несколько целей, например: cpNn
    [действие] определяет, что будет предпринято (только одно действие можно определить)
    - + @@ -824,7 +825,7 @@ - +
    kill - "убивает" пользователя"убивает" пользователя
    tempshundccblock пользователю запрещается посылать любое DCC
    viruschan принудительно покидает все каналы, заходит на set::spamfilter::virus-help-channel, отключает все команды кроме PONG, ADMIN, и @@ -832,26 +833,23 @@
    [время_действия] - Длительность установленного фильтра на *line/shun, используйте '-' для + Длительность установленного фильтра на *line/shun, используйте '-' для установок по умолчанию или для пропуска задания времени (eg: если действие = 'block')
    [причина] - Причина Block/*line/shun. Вы НЕ МОЖЕТЕ использовать пробелы, вместо них + Причина Block/*line/shun. Вы НЕ МОЖЕТЕ использовать пробелы, вместо них используйте подчёркивания ('_'). Для установки в причину подчёркивания ('_'), используйте двойное подчёркивание ('__'). Используйте '-' для установок по умолчанию.
    [регулярное_выражение] - действующее регулярное выражение (regexp) или "нецензурное слово", которое - заблокируется и вызовет реакцию спамфильтра
    [регулярное_выражение]действующее регулярное выражение (regexp) или "нецензурное слово", + которое заблокируется и вызовет реакцию спамфильтра

    @@ -871,11 +869,10 @@ работают независимо от того, установлен ли на пользователе или канале флаг +G, спамфильтр не проверяется только на операторах и ulines (сервисы).

    -

    - Вы так же можете добавлять спамфильтры в конфигурационные файлы, но это будут +

    Вы так же можете добавлять спамфильтры в конфигурационные файлы, но это будут только локальные спамфильтры (т.е. не будут действовать во всей сети, используйте удалённые включения (remote includes) для этого). Синтакс - spamfilter { } блоков описан тут.
    + spamfilter { } блоков описан тут.
    Пример:

    spamfilter {
         regex "//write \$decode\(.+\|.+load -rs";
    @@ -920,8 +917,7 @@
     					
     					
     						catalan
    -						
    -							Каталанская кодировка
    +						Каталанская кодировка
     						iso8859-1 (latin1)
     					
     					
    @@ -1027,8 +1023,7 @@
     					
     					
     						russian-w1251
    -						
    -							Русская кодировка
    +						Русская кодировка
     						windows-1251
     					
     					
    @@ -1091,8 +1086,8 @@
     			IRCd и эта проблема не может быть решена в настоящем времени. Люди должны быть 
     			предупреждены об этом ограничении. Заметим, что данное ограничение 
     			распространяется и на каналы, по этому будьте внимательны и помните, что для 
    -			кодировки US-ASCII регистронезависимость всегда существует.

    - Замечание 3: Базовый набор символов (a-z A-Z 0-9 [ \ ] ^ _ - { | }) всегда + кодировки US-ASCII регистронезависимость всегда существует. +

    Замечание 3: Базовый набор символов (a-z A-Z 0-9 [ \ ] ^ _ - { | }) всегда разрешён.

    Пример №1, для людей из Западной Европы:
    set { allowed-nickchars { latin1; }; };
    @@ -1101,133 +1096,141 @@
    set { allowed-nickchars { chinese-simp; chinese-trad; }; };

    -

    3.17 - Другие возможности

    +

    3.17 - Поддержка CGI:IRC

    +
    +

    UnrealIRCd поддерживает подмену хоста для CGI:IRC, что означает, что вы можете + пометить определённые CGI:IRC гейты как "доверенные". В этом случае IRCd будет + показывать реальный хост/IP пользователей везде в IRC, вместо хоста/ip + CGI:IRC-гейта.

    +

    Смотрите cgiirc block для того, чтобы сконфигурировать + поддержку CGI:IRC.

    +
    +

    3.18 - Другие возможности

    UnrealIRCd имеет множество других возможностей, не все из которых тут раскрыты... Вы можете найти их в другом месте самостоятельно.

    -

    -

    -

    4.0 - Настройка сервера +

    4.0 - Конфигурирование вашего unrealircd.conf

    -

    - Создание хорошего конфигурационного файла unrealircd.conf займёт немного - времени, от 10 до 60 минут. Вы можете попытаться быстро загрузить ircd и потом - настроить правильно, однако правильным выбором будет изучение последовательно - всех основных секций ;P. Если у вас возникли проблемы, проверьте синтаксис, - руководство по использованию и ЧАВО прежде, чем задавать вопросы или сообщать о - неисправностях.

    +

    Прежде всего, создание вашего первого unrealircd.conf займёт примерно 15-60 + минут. Создание хорошего unrealircd.conf займёт гораздо больше времени. + Вы не должны стремится запустить как можно быстрее IRCd, гораздо быстрее будет + пройтись по всем пунктам последовательно. Если у вас возникают проблемы, + проверьте синтаксис, проверьте документацию и + ЧаВО прежде, чем просить помощи или сообщать об ошибке.

    4.1 Обзор структуры конфигурационного файла

    -

    -

    Новая система базируется на использовании блоков. Каждая секция или блок имеет - специфический формат. К примеру:

    -
    <block-name> <block-value> {
    +				
    +

    +

    Новая система базируется на использовании блоков. Каждая секция или блок имеет + специфический формат. К примеру:

    +
    <block-name> <block-value> {
         <block-directive> <directive-value>;
     };
     
    -

    -

    <block-name> - это тип блока, такой как me или admin. <block-value> - иногда определяет значение, к примеру /oper login, но иногда может быть и - подтипом, как например в ban user.

    -

    <block-directive> - это индивидуальное значение в блоке и - <directive-value> соответствующее ему значение. Если - <directive-value> содержит пробелы, или символы, соответствующие - комментариям, то они должны быть в двойных кавычках. Если в такой строке - необходимо использовать кавычку, используйте \", и это будет воспринято как - символ кавычки.

    -

    - A <block-directive> может содержать директивы в себе, в этом случае - необходимо заключать их в фигурные скобки. В некоторых блоках нет директив, и - они определяются просто в <block-value>, например, как include. На - заметку, здесь нет установленного формата, т.е. целый блок может быть записан и - в одну линию, а может и в несколько. Для удобства чтения был принят формат, - который употребляется здесь, он же рекомендован к использованию в файле. -

    -

    Замечание: конфигурационный файл регистрозависим, поэтому BLOCK-NAME не одно и - тоже, что и block-name. По поводу вхождений в блок в конфигурационном файле - использовано следующая терминология. К примеру, если разговор идёт о - <directive-name> в последующем примере, вы должны говорить - <block-name>::<block-directive> и если директива - это подблок, на - который вы хотите сослаться, вы должны добавить ещё :: и имя поддирективы.

    -

    Если беседа будет вестись о безымянной директиве, то <block-name>:: будет - в данном случае означать <block-value>, или же это будет вхождение в - подблок без имени.

    -

    Поддерживается три типа комментариев:

    -

    - # Однострочный комментарий
    - // Однострочный комментарий
    - /* Многострочный
    -     комментарий */
    -

    -

    Теперь, зная как все это работает, вы можете создать свой unrealircd.conf из - кусочков или же скопировать doc/example.conf и отредактировать его. - Рекомендовано сделать именно так, просматривая все типы блоков и используя это - руководство как справку.

    -

    -
    -

    4.2 - Me блок - НЕОБХОДИМ (Ранее известен как M:Line)

    -

    -

    Синтаксис:
    -

    me {
    +					

    +

    <block-name> - это тип блока, такой как me или admin. <block-value> + иногда определяет значение, к примеру /oper login, но иногда может быть и + подтипом, как например в ban user.

    +

    <block-directive> - это индивидуальное значение в блоке и + <directive-value> соответствующее ему значение. Если + <directive-value> содержит пробелы, или символы, соответствующие + комментариям, то они должны быть в двойных кавычках. Если в такой строке + необходимо использовать кавычку, используйте \", и это будет воспринято как + символ кавычки.

    +

    A <block-directive> может содержать директивы в себе, в этом случае + необходимо заключать их в фигурные скобки. В некоторых блоках нет директив, и + они определяются просто в <block-value>, например, как include. На + заметку, здесь нет установленного формата, т.е. целый блок может быть записан и + в одну линию, а может и в несколько. Для удобства чтения был принят формат, + который употребляется здесь, он же рекомендован к использованию в файле. +

    +

    Замечание: конфигурационный файл регистрозависим, поэтому BLOCK-NAME не + одно и тоже, что и block-name. По поводу вхождений в блок в + конфигурационном файле использовано следующая терминология. К примеру, если + разговор идёт о <directive-name> в последующем примере, вы должны + говорить <block-name>::<block-directive> и если директива - это + подблок, на который вы хотите сослаться, вы должны добавить ещё :: и имя + поддирективы.

    +

    Если беседа будет вестись о безымянной директиве, то <block-name>:: будет + в данном случае означать <block-value>, или же это будет вхождение в + подблок без имени.

    +

    Поддерживается три типа комментариев:

    +

    # Однострочный комментарий
    + // Однострочный комментарий
    + /* Многострочный
    + комментарий */
    +

    +

    Теперь, зная как оно работает, вы можете скопировать doc/example.conf в + директорию вашего UnrealIRCd (например: /home/user/Unreal3.2) и переименовать + его в unrealircd.conf (ИЛИ создать ваш unrealircd.conf с нуля). + Рекомендовано сделать именно так, просматривая все типы блоков и используя это + руководство как справку.

    +
    +

    4.2 - Me блок + НЕОБХОДИМ (Ранее известен как M:Line) +

    +

    +

    Синтаксис:
    +

    me {
         name <имя-сервера>;
         info <описание-сервера>;
         numeric <нумерик-сервера>;
     };
     
    -

    -

    Значения абсолютно прозрачны. name определяет имя сервера, info - - строчку информации о сервере, numeric определяет уникальное определяющее - число для сервера. Это должно быть значение между 0 и 254 и оно должно быть - УНИКАЛЬНО для каждого сервера в сети, т.е. НЕ должно быть разных серверов с - одинаковыми нумериками.

    -

    Пример:
    -

    me {
    +						

    +

    Значения абсолютно прозрачны. name определяет имя сервера, info - + строчку информации о сервере, numeric определяет уникальное определяющее + число для сервера. Это должно быть значение между 0 и 254 и оно должно быть + УНИКАЛЬНО для каждого сервера в сети, т.е. НЕ должно быть разных серверов с + одинаковыми нумериками.

    +

    Пример:
    +

    me {
         name "irc.foonet.com";
         info "FooNet Server";
         numeric 1;
     };
     
    -

    -
    -

    -

    4.3 - Admin блок - НЕОБХОДИМ (Ранее - известен как A:Line)

    -

    -

    Синтаксис:
    -

    admin {
    +						

    +
    +

    +

    4.3 - Admin блок + НЕОБХОДИМ (Ранее + известен как A:Line) +

    +

    +

    Синтаксис:
    +

    admin {
         <text-line>;
         <text-line>;
     };
     
    -

    -

    -

    -

    Admin блок определяет текст, который будет выводиться по команде /admin. Вы - можете определить много информации для отображения, но по стандарту необходимо - иметь хотя бы ник администратора и его email. Если желаете, можно добавить - любую дополнительную информацию.

    -

    Пример:
    -

    admin {
    +						

    +

    +

    Admin блок определяет текст, который будет выводиться по команде /admin. Вы + можете определить много информации для отображения, но по стандарту необходимо + иметь хотя бы ник администратора и его email. Если желаете, можно добавить + любую дополнительную информацию.

    +

    Пример:
    +

    admin {
         "Bob Smith";
         "bob";
         "widely@used.name";
     };
     
    -

    -
    -

    -

    4.4 - Class блок - НЕОБХОДИМ (Ранее - известен как Y:Line)

    -

    -

    Синтакс:
    -

    class <name> {
    +						

    +
    +

    +

    4.4 - Class блок + НЕОБХОДИМ (Ранее + известен как Y:Line) +

    +

    +

    Синтакс:
    +

    class <name> {
         pingfreq <частота-пинга>;
         connfreq <частота-соединения>;
         maxclients <максимальное-количество-клиентов>;
    @@ -1235,28 +1238,27 @@
         recvq <recv-queue>;
     };
     
    -

    -

    -

    -

    Блок Class определяет классы, в которые входят соединения (например, из блока - allow или servers из блока link). Вы можете сделать составными блоки class - (т.е.: для servers, clients, opers).

    -

    name - это описательное имя, вроде "clients" или "servers", данное имя - используется для ссылок в блоках allow/link/oper и др.

    -

    pingfreq - это количество секунд между командой PING от сервера - (рекомендовано использовать промежуток от 90 до 180).

    -

    connfreq используется только для серверов и обозначает количество секунд - между попытками соединения, если автосоединение включено

    -

    maxclients определяет максимум (всего) число клиентов/серверов, которые - могут быть в этом классе

    -

    sendq определяет количество данных, которое можно передавать подряд - (очень большое для серверов с малым каналом и среднее для клиентов)

    -

    recvq определяет количество данных, которое можно получить одновременно и - используется для контроля за флудом (применимо только к нормальным - пользователям, попробуйте поэкспериментировать с промежутком 3000-8000, 8000 - установлено по умолчанию).

    -

    Примеры:
    -

    class clients {
    +						

    +

    +

    Блок Class определяет классы, в которые входят соединения (например, из блока + allow или servers из блока link). Вы можете сделать составными блоки class + (т.е.: для servers, clients, opers).

    +

    name - это описательное имя, вроде "clients" или "servers", данное имя + используется для ссылок в блоках allow/link/oper и др.

    +

    pingfreq - это количество секунд между командой PING от сервера + (рекомендовано использовать промежуток от 90 до 180).

    +

    connfreq используется только для серверов и обозначает количество секунд + между попытками соединения, если автосоединение включено

    +

    maxclients определяет максимум (всего) число клиентов/серверов, которые + могут быть в этом классе

    +

    sendq определяет количество данных, которое можно передавать подряд + (очень большое для серверов с малым каналом и среднее для клиентов)

    +

    recvq определяет количество данных, которое можно получить одновременно и + используется для контроля за флудом (применимо только к нормальным + пользователям, попробуйте поэкспериментировать с промежутком 3000-8000, 8000 + установлено по умолчанию).

    +

    Примеры:
    +

    class clients {
         pingfreq 90;
         maxclients 500;
         sendq 100000;
    @@ -1270,16 +1272,16 @@ class servers{
         connfreq 100; /* Через сколько секунд повторять попытку соединения */
     };
     
    -

    -

    -

    -
    -

    4.5 - Allow блок - НЕОБХОДИМ (Ранее - известен как I:Line)

    -

    -

    Синтакс:
    -

    allow {
    +						

    +

    +
    +

    4.5 - Allow блок + НЕОБХОДИМ (Ранее + известен как I:Line) +

    +

    +

    Синтакс:
    +

    allow {
         ip <пользователь@маска-ip-соединения>;
         hostname <пользователь@маска-host-соединения>;
         class <класс-соединения>;
    @@ -1294,52 +1296,52 @@ class servers{
         };
     };
     
    -

    -

    Класс allow позволяет задать, кто может подключиться к данному серверу; можно - сделать несколько блоков allow.

    -

    О совпадениях
    - Контроль доступа работает следующим образом: ip совпадает ИЛИ хост совпадает, - поэтому "hostname *@*"; и "ip *@1.2.3.4"; будут совпадать. Чтение блоков allow - идёт сверху вниз, поэтому, если вам необходимо задать специфические блоки - host/ip allow, то задавайте их ПОСЛЕ главного блока *@* allow. Дополнительно, - если вы хотите задать блок, который базируется только на IP, тогда установите в - hostname что-нибудь неправильное, например "hostname NOBODY;", это позволит вам - сделать блок только по IP.

    -

    ip
    - IP маска - это user@ip, user - это идент (ident) и часто устанавливается в *, - ip - это ip-маска. Примеры: *@* (отовсюду), *@192.168.* (только для адресов, - начинающихся с 192.168), и др.

    -

    host
    - Хостмаска - это user@host, и снова, user часто выставляется в *. Примеры: *@* - (отовсюду), *@*.wanadoo.fr (только от wanadoo.fr).

    -

    password (не обязательно)
    - Требует пароль на соединение. Так же можно указать метод шифрования пароля. -

    -

    class
    - Определяет имя класса, пользователям/серверам которого можно подключаться. -

    -

    maxperip (необязательно, но рекомендуется)
    - Позволяет указать, сколько соединений с одного IP разрешено на этот сервер - (пример: maxperip 4;). -

    -

    redirect-server (необязательно)
    - Если класс полон, перенаправляет пользователей на указанный сервер (если такое - поддерживают клиенты [mIRC 6 поддерживает]).

    -

    redirect-port (необязательно)
    - Если указан redirect-server, вы можете задать порт для него, иначе будет - назначен 6667.

    -

    options блок (необязательно)
    - Правильные опции:
    -    useip всегда показывать IP вместо хостнейма
    -    noident не использовать ident, вместо него - использовать имя пользователя из клиента
    -    ssl Только пользователи из этого блока могут - подключаться к серверу по SSL
    -    nopasscont - продолжить совпадение, если пароль не был задан (можно клиентов определить в - специальные классы, если они подставили пароль). -

    Примеры:
    -

    allow {
    +						

    +

    Класс allow позволяет задать, кто может подключиться к данному серверу; можно + сделать несколько блоков allow.

    +

    О совпадениях
    + Контроль доступа работает следующим образом: ip совпадает ИЛИ хост совпадает, + поэтому "hostname *@*"; и "ip *@1.2.3.4"; будут совпадать. Чтение блоков allow + идёт сверху вниз, поэтому, если вам необходимо задать специфические блоки + host/ip allow, то задавайте их ПОСЛЕ главного блока *@* allow. Дополнительно, + если вы хотите задать блок, который базируется только на IP, тогда установите в + hostname что-нибудь неправильное, например "hostname NOBODY;", это позволит вам + сделать блок только по IP.

    +

    ip
    + IP маска - это user@ip, user - это идент (ident) и часто устанавливается в *, + ip - это ip-маска. Примеры: *@* (отовсюду), *@192.168.* (только для адресов, + начинающихся с 192.168), и др.

    +

    host
    + Хостмаска - это user@host, и снова, user часто выставляется в *. Примеры: *@* + (отовсюду), *@*.wanadoo.fr (только от wanadoo.fr).

    +

    password (не обязательно)
    + Требует пароль на соединение. Так же можно указать метод шифрования пароля. +

    +

    class
    + Определяет имя класса, пользователям/серверам которого можно подключаться. +

    +

    maxperip (необязательно, но рекомендуется)
    + Позволяет указать, сколько соединений с одного IP разрешено на этот сервер + (пример: maxperip 4;). +

    +

    redirect-server (необязательно)
    + Если класс полон, перенаправляет пользователей на указанный сервер (если такое + поддерживают клиенты [mIRC 6 поддерживает]).

    +

    redirect-port (необязательно)
    + Если указан redirect-server, вы можете задать порт для него, иначе будет + назначен 6667.

    +

    options блок (необязательно)
    + Правильные опции:
    + useip всегда показывать IP вместо хостнейма
    + noident не использовать ident, вместо него + использовать имя пользователя из клиента
    + ssl Только пользователи из этого блока могут + подключаться к серверу по SSL
    + nopasscont + продолжить совпадение, если пароль не был задан (можно клиентов определить в + специальные классы, если они подставили пароль). +

    Примеры:
    +

    allow {
         ip *;
         hostname *;
         class clients;
    @@ -1354,15 +1356,16 @@ allow {
         maxperip 1;
     };
     
    -

    -
    -

     

    -

    4.6 - Listen блок - НЕОБХОДИМ (Ранее - известен как P:Line)

    -

    -

    Синтаксис:
    -

    listen <ip:port> {
    +						

    +
    +

    +

    4.6 - Listen блок + НЕОБХОДИМ (Ранее + известен как P:Line) +

    +

    +

    Синтаксис:
    +

    listen <ip:port> {
         options {
             <option>;
             <option>;
    @@ -1370,55 +1373,56 @@ allow {
         };
     };
     
    -

    -

    -

    -

    Данный блок позволяет определить, какие порты должен прослушивать IRCD. Если - опции вам не нужны, можно определить только блок в виде <ip:port>;.

    -

    ip и port
    - Вы можете установить ip в * чтобы ожидать подключения на всех доступных ip - адресах, или определить только необходимый ip (обычно необходим в провайдерах - shell-ов). port - это порт, на котором вы хотите включить прослушивание. Можно - так же определить диапазон портов, вместо указания каждого из них - индивидуально. Например, 6660-6669 будет прослушивать все порты от 6660 до 6669 - (включительно).

    -

    Информация для пользователей IPv6
    - Если на сервере вы используете IPv6, вам необходимо заключать IP в квадратные - скобки. Например, [::1]:6667 (будет прослушиваться порт 6667 на localhost). - Если вы используете IPv6 и вам необходимо прослушивать на определённом IPv4 - адресе, вам необходимо использовать ::ffff:ipv4ip. Пример: - [::ffff:203.123.67.1]:6667 будет прослушивать на 203.123.67.1 порт 6667. - Естественно, можно использовать и *.

    -

    options блок (необязательно)
    - Если вы желаете, можно определить специальные опции для указанного порта, такие - как:
    - - - - - - - - - - - - - - - - - -
    clientsonly
    -
    порт только для клиентов
    serversonly
    -
    порт только для серверов
    java
    -
    - CR поддержка чата на java
    ssl
    -
    - порт для зашифрованного соединения (SSL)
    -

    -

    Примеры:

    -
    listen *:6601 {
    +						

    +

    +

    Данный блок позволяет определить, какие порты должен прослушивать IRCD. Если + опции вам не нужны, можно определить только блок в виде <ip:port>;.

    +

    ip и port
    + Вы можете установить ip в * чтобы ожидать подключения на всех доступных ip + адресах, или определить только необходимый ip (обычно необходим в провайдерах + shell-ов). port - это порт, на котором вы хотите включить прослушивание. Можно + так же определить диапазон портов, вместо указания каждого из них + индивидуально. Например, 6660-6669 будет прослушивать все порты от 6660 до 6669 + (включительно).

    +

    Информация для пользователей IPv6
    + Если на сервере вы используете IPv6, вам необходимо заключать IP в квадратные + скобки. Например, [::1]:6667 (будет прослушиваться порт 6667 на localhost). + Если вы используете IPv6 и вам необходимо прослушивать на определённом IPv4 + адресе, вам необходимо использовать ::ffff:ipv4ip. Пример: + [::ffff:203.123.67.1]:6667 будет прослушивать на 203.123.67.1 порт 6667. + Естественно, можно использовать и *.

    +

    options блок (необязательно)
    + Если вы желаете, можно определить специальные опции для указанного порта, такие + как:
    + + + + + + + + + + + + + + + + + +
    +
    clientsonly
    +
    порт только для клиентов
    +
    serversonly
    +
    порт только для серверов
    +
    java
    +
    CR поддержка чата на java
    +
    ssl
    +
    порт для зашифрованного соединения (SSL)
    +

    +

    Примеры:

    +
    listen *:6601 {
         options {
             ssl;
             clientsonly;
    @@ -1426,18 +1430,18 @@ allow {
     };
     
     
    -

    -

    Если без опций:

    -

    listen *:8067;
    - listen 213.12.31.126:6667;
    - listen *:6660-6669;

    -
    -

    4.7 - Oper блок - РЕКОМЕНДОВАН (Ранее - известен как O:Line)

    -

    -

    -

    oper <имя> {
    +						

    +

    Если без опций:

    +

    listen *:8067;
    + listen 213.12.31.126:6667;
    + listen *:6660-6669;

    +
    +

    4.7 - Oper блок + РЕКОМЕНДОВАН (Ранее + известен как O:Line) +

    +

    +

    oper <имя> {
         from {
             userhost <хостмаска>;
             userhost <хостмаска>;
    @@ -1456,380 +1460,436 @@ allow {
         maxlogins <число>;
     };
     
    -

    -

    Блок oper позволяет назначить IRC-операторов на вашем сервере. oper:: определяет - логин команды /oper. oper::from::userhost - это user@host маска, под - которую должен попадать пользователь. Вы можете - определить более, чем одну хостмаску в oper::from::userhost. oper::password - - пароль, который должен определить пользователь. oper::password:: позволяет - определить метод аутентификации для данного пароля(crypt, md5, sha1 и ripemd-160). - Если вы хотите использовать просто текстовый пароль, оставьте этот подблок пустым.

    -

    Замечание: логин и пароль РЕГИСТРОЗАВИСИМЫ.

    -

    oper::class директива определяет имя уже существующего (в - конфигурационном файле должен следовать перед oper-блоком) - класса, который будет использовать блок oper.

    -

    oper::flags директива имеет 2 формата. Если вы желаете использовать - старый стиль флагов для операторов, например, - OAa, используйте метод задания флагов <flags>, - если желаете использовать новый стиль, например, - services-admin, тогда используйте метод флагов { <flag>; } . Ниже - приведён список всех флагов (в обоих форматах) и что они обозначают.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Старый флаг
    -
    Новый флаг
    -
    Описание
    o
    -
    local
    -
    Локальный оператор
    O
    -
    global
    -
    Глобальный оператор
    C
    -
    coadmin
    -
    Помощник администратора сервера
    A
    -
    admin
    -
    Администратор сервера
    a
    -
    services-admin
    -
    Администратор сервисов
    N
    -
    netadmin
    -
    Администратор - - сети
    r
    -
    can_rehash
    -
    Оператор может использовать /rehash
    D
    -
    can_die
    -
    Оператор может использовать /die
    R
    -
    can_restart
    -
    Оператор может использовать /restart
    h
    -
    helpop
    -
    Оператор получает режим пользователя +h (оператор помощи (helpop))
    w
    -
    can_wallops
    -
    Оператор может посылать /wallops
    g
    -
    can_globops
    -
    Оператор может посылать /globops
    c
    -
    can_localroute
    -
    Может соединять сервера локально
    L
    -
    can_globalroute
    -
    Может соединять сервера глобально
    k
    -
    can_localkill
    -
    Может использовать команду /kill на локальных пользователей
    K
    -
    can_globalkill
    -
    Может использовать /kill на всех пользователей
    b
    -
    can_kline
    -
    Может использовать /kline
    B
    -
    can_unkline
    -
    Может использовать /kline -u@h
    n
    -
    can_localnotice
    -
    Может посылать уведомления по локальному серверу
    G
    -
    can_globalnotice
    -
    Может посылать уведомления по всем серверам
    z
    -
    can_zline
    -
    Может использовать /zline
    t
    -
    can_gkline
    -
    Может использовать /gline, /shun и /spamfilter
    Z
    -
    can_gzline
    -
    Может использовать /gzline
    W
    -
    get_umodew
    -
    Устанавливает режим +W, - когда вы оператор
    H
    -
    get_host
    -
    Устанавливает ваш хост в оперхост
    v
    -
    can_override
    -
    Может использовать OperOverride
    q
    -
    can_setq
    -
    Может устанавливать режим пользователя +q
    X
    -
    can_addline
    -
    Может использовать /addline
    d
    -
    can_dccdeny
    -
    Может использовать /dccdeny и /undccdeny
    -

    Флаги, устанавливаемые по умолчанию:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    localglobaladmin/coadminservices-adminnetadmin
    can_rehashcan_rehashcan_rehashcan_rehashcan_rehash
    helpophelpophelpophelpophelpop
    can_globopscan_globopscan_globopscan_globopscan_globops
    can_wallopscan_wallopscan_wallopscan_wallopscan_wallops
    can_localroutecan_localroutecan_localroutecan_localroutecan_localroute
    can_localkillcan_localkillcan_localkillcan_localkillcan_localkill
    can_klinecan_klinecan_klinecan_klinecan_kline
    can_unklinecan_unklinecan_unklinecan_unklinecan_unkline
    can_localnoticecan_localnoticecan_localnoticecan_localnoticecan_localnotice
     can_globalroutecan_globalroutecan_globalroutecan_globalroute
     can_globalkillcan_globalkillcan_globalkillcan_globalkill
     can_globalnoticecan_globalnoticecan_globalnoticecan_globalnotice
      globalglobalglobal
      can_dccdenycan_dccdenycan_dccdeny
       can_setqcan_setq
        admin
        services-admin
    -

    Директива oper::swhois позволяет вам добавить информацию, выводимую по - команде whois для оператора. [необязательно]

    -

    Директива oper::snomask позволяет установить маску получения уведомлений - от сервера при взятии оператора. Для списка доступных SNOMASK смотрите - секцию 3.3 [необязательно]

    -

    Директива oper::modes позволяет задать режимы оператора при взятии - оператора. [необязательно]

    -

    oper::maxlogins позволяет ограничить количество логинов оператора с - текущего хоста, для примера, если вы установите его в 1, то только один человек - может стать оператором (из этого блока) в любое время. [необязательно]

    -

    Пример:
    -

    oper bobsmith {
    +						

    +

    Блок oper позволяет назначить IRC-операторов на вашем сервере. oper:: определяет + логин команды /oper. oper::from::userhost - это user@host маска, под + которую должен попадать пользователь. Вы можете определить более, чем одну + хостмаску в oper::from::userhost. oper::password - пароль, который + должен определить пользователь. oper::password:: позволяет определить метод + аутентификации для данного пароля(crypt, md5, sha1 и ripemd-160). Если вы + хотите использовать просто текстовый пароль, оставьте этот подблок пустым.

    +

    Замечание: логин и пароль РЕГИСТРОЗАВИСИМЫ.

    +

    oper::class директива определяет имя уже существующего (в + конфигурационном файле должен следовать перед oper-блоком) класса, который + будет использовать блок oper.

    +

    oper::flags директива имеет 2 формата. Если вы желаете использовать + старый стиль флагов для операторов, например, OAa, используйте метод задания + флагов <flags>, если желаете использовать новый стиль, например, + services-admin, тогда используйте метод флагов { <flag>; } . Ниже + приведён список всех флагов (в обоих форматах) и что они обозначают.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    Старый флаг
    +
    +
    Новый флаг
    +
    Описание
    +
    o
    +
    +
    local
    +
    Локальный оператор
    +
    O
    +
    +
    global
    +
    Глобальный оператор
    +
    C
    +
    +
    coadmin
    +
    Помощник администратора сервера
    +
    A
    +
    +
    admin
    +
    Администратор сервера
    +
    a
    +
    +
    services-admin
    +
    Администратор сервисов
    +
    N
    +
    +
    netadmin
    +
    Администратор сети
    +
    r
    +
    +
    can_rehash
    +
    Оператор может использовать /rehash
    +
    D
    +
    +
    can_die
    +
    Оператор может использовать /die
    +
    R
    +
    +
    can_restart
    +
    Оператор может использовать /restart
    +
    h
    +
    +
    helpop
    +
    Оператор получает режим пользователя +h (оператор помощи (helpop))
    +
    w
    +
    +
    can_wallops
    +
    Оператор может посылать /wallops
    +
    g
    +
    +
    can_globops
    +
    Оператор может посылать /globops
    +
    c
    +
    +
    can_localroute
    +
    Может соединять сервера локально
    +
    L
    +
    +
    can_globalroute
    +
    Может соединять сервера глобально
    +
    k
    +
    +
    can_localkill
    +
    Может использовать команду /kill на локальных пользователей
    +
    K
    +
    +
    can_globalkill
    +
    Может использовать /kill на всех пользователей
    +
    b
    +
    +
    can_kline
    +
    Может использовать /kline
    +
    B
    +
    +
    can_unkline
    +
    Может использовать /kline -u@h
    +
    n
    +
    +
    can_localnotice
    +
    Может посылать уведомления по локальному серверу
    +
    G
    +
    +
    can_globalnotice
    +
    Может посылать уведомления по всем серверам
    +
    z
    +
    +
    can_zline
    +
    Может использовать /zline
    +
    t
    +
    +
    can_gkline
    +
    Может использовать /gline, /shun и /spamfilter
    +
    Z
    +
    +
    can_gzline
    +
    Может использовать /gzline
    +
    W
    +
    +
    get_umodew
    +
    Устанавливает режим +W, когда вы оператор
    +
    H
    +
    +
    get_host
    +
    Устанавливает ваш хост в оперхост
    +
    v
    +
    +
    can_override
    +
    Может использовать OperOverride
    +
    q
    +
    +
    can_setq
    +
    Может устанавливать режим пользователя +q
    +
    X
    +
    +
    can_addline
    +
    Может использовать /addline
    +
    d
    +
    +
    can_dccdeny
    +
    Может использовать /dccdeny и /undccdeny
    +

    Флаги, устанавливаемые по умолчанию:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    localglobaladmin/coadminservices-adminnetadmin
    can_rehashcan_rehashcan_rehashcan_rehashcan_rehash
    helpophelpophelpophelpophelpop
    can_globopscan_globopscan_globopscan_globopscan_globops
    can_wallopscan_wallopscan_wallopscan_wallopscan_wallops
    can_localroutecan_localroutecan_localroutecan_localroutecan_localroute
    can_localkillcan_localkillcan_localkillcan_localkillcan_localkill
    can_klinecan_klinecan_klinecan_klinecan_kline
    can_unklinecan_unklinecan_unklinecan_unklinecan_unkline
    can_localnoticecan_localnoticecan_localnoticecan_localnoticecan_localnotice
    can_globalroutecan_globalroutecan_globalroutecan_globalroute
    can_globalkillcan_globalkillcan_globalkillcan_globalkill
    can_globalnoticecan_globalnoticecan_globalnoticecan_globalnotice
    globalglobalglobal
    can_dccdenycan_dccdenycan_dccdeny
    can_setqcan_setq
    admin
    services-admin
    +

    Директива oper::swhois позволяет вам добавить информацию, выводимую по + команде whois для оператора. [необязательно]

    +

    Директива oper::snomask позволяет установить маску получения уведомлений + от сервера при взятии оператора. Для списка доступных SNOMASK смотрите + секцию 3.3 [необязательно]

    +

    Директива oper::modes позволяет задать режимы оператора при взятии + оператора. [необязательно]

    +

    oper::maxlogins позволяет ограничить количество логинов оператора с + текущего хоста, для примера, если вы установите его в 1, то только один человек + может стать оператором (из этого блока) в любое время. [необязательно]

    +

    Пример:
    +

    oper bobsmith {
         class clients;
         from {
             userhost bob@smithco.com;
    @@ -1849,107 +1909,111 @@ allow {
         snomask frebWqFv;
     };
     
    -

    - Немного информации об OperOverride:
    - OperOverride понимается как вход на канал с режимами +ikl и - вход через баны(вам необходимо вначале сделать /invite самого себя), выдача оператора - самому себе на канале и т.д.
    - Флаг can_override был добавлен как попытка остановить превышение полномочий - оператора. По умолчанию ни один оператор не может делать override, вам - необходимо установить флаг can_override для этого - (примечание: из личного опыта, в большой и децентрализованной - сети именно этот флаг вызывает больше всего проблем с - "беспределом" операторов /DeathBaba/). -

    -

    -
    -

    4.8 - DRpass блок - РЕКОМЕНДОВАН (Ранее - известен как X:Line)

    +

    4.8 - DRpass блок + РЕКОМЕНДОВАН (Ранее + известен как X:Line) +

    +

    +

    Синтаксис:
    +

    drpass {
         restart <пароль-для-перезапуска> { <тип-аутентификации>; };
         die <пароль-для-остановки-сервера> { <тип-аутентификации>; };
     };
    -

    -

    Данный блок устанавливает пароли на команды /restart и /die с директивами - drpass::restart и drpass::die. drpass::restart:: и drpass::die:: позволяют - установить тип аутентификации для их использования. Типы аутентификации, - поддерживаемые на текущий момент: crypt, md5, sha1 и ripemd-160.

    -

    Пример:

    -
    drpass {
    +						

    +

    Данный блок устанавливает пароли на команды /restart и /die с директивами + drpass::restart и drpass::die. drpass::restart:: и drpass::die:: позволяют + установить тип аутентификации для их использования. Типы аутентификации, + поддерживаемые на текущий момент: crypt, md5, sha1 и ripemd-160.

    +

    Пример:

    +
    drpass {
         restart "Я-очень-люблю-перезапуски";
         die "die-you-stupid";
     };
     
    -

    -
    -

    4.9 - Директива Include

    -

    -

    Синтаксис:
    - include <file-name>;

    -

    Данная директива определяет имя файла, который будет загружен как отдельный - конфигурационный файл. Этот файл может содержать любой тип блоков - конфигурирования и может включать другие файлы. - В именах файлов поддерживаются шаблоны (wildcards), что позволяет загружать - несколько файлов за один раз.

    -

    Пример 1: сетевой файл
    -

    include mynetwork.network;
    -

    -

    Это в случае использования отдельного сетевого файла. - На данный момент все сетевые настройки могут быть включены прямо в unrealircd.conf. Или же можно - включить их для загрузкив include - решать вам.

    -

    Пример 2: псевдонимы
    -

    include aliases/ircservices.conf
    -

    -

    Другой пример использования include. UnrealIRCd поставляется вместе с некоторыми файлами, - которые содержат псевдонимы (aliases)большинства сервисов:
    -

      -
    • - aliases/ircservices.conf (IRCServices, Daylight) -
    • - aliases/epona.conf (Epona) -
    • - aliases/anope.conf (Anope) -
    • - aliases/auspice.conf (Auspice) -
    • - aliases/generic.conf (Magick, Sirius, Wrecked) -
    • - aliases/cygnus.conf (Cygnus) -
    • - aliases/operstats.conf (OperStats) -
    • - aliases/genericstats.conf (GeoStats, NeoStats)
    • -
    -

    -

    -
    -

    4.10 - Директива - LoadModule НЕОБХОДИМА

    -

    -

    Синтаксис:
    - loadmodule <имя-файла>;

    -

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

    -

    Модули из стандартной поставки Unreal3.2:

    -

    commands.so / commands.dll - все "/" команды (пока не все, но скоро будут) - НЕОБХОДИМ
    cloak.so / cloak.dll - модуль скрытности НЕОБХОДИМ (или - другой модуль скрытности)

    -

    Если вы хотите быть уверенным в том, что они загружены:

    -
    loadmodule "src/modules/commands.so";
    +						

    +
    +

    4.9 - Директива Include +

    +

    +

    Синтаксис:
    + include <file-name>;

    +

    Данная директива определяет имя файла, который будет загружен как отдельный + конфигурационный файл. Этот файл может содержать любой тип блоков + конфигурирования и может включать другие файлы. В именах файлов поддерживаются + шаблоны (wildcards), что позволяет загружать несколько файлов за один раз.

    +

    Пример 1: сетевой файл
    +

    include mynetwork.network;
    +

    +

    Это в случае использования отдельного сетевого файла. На данный момент все + сетевые настройки могут быть включены прямо в unrealircd.conf. Или же можно + включить их для загрузкив include - решать вам.

    +

    Пример 2: псевдонимы
    +

    include aliases/ircservices.conf
    +

    +

    Другой пример использования include. UnrealIRCd поставляется вместе с некоторыми + файлами, которые содержат псевдонимы (aliases)большинства сервисов:
    +

      +
    • + aliases/ircservices.conf (IRCServices, Daylight) +
    • + aliases/epona.conf (Epona) +
    • + aliases/anope.conf (Anope) +
    • + aliases/auspice.conf (Auspice) +
    • + aliases/generic.conf (Magick, Sirius, Wrecked) +
    • + aliases/cygnus.conf (Cygnus) +
    • + aliases/operstats.conf (OperStats) +
    • + aliases/genericstats.conf (GeoStats, NeoStats) +
    • +
    +

    +

    +
    +

    4.10 - Директива + LoadModule НЕОБХОДИМА +

    +

    +

    Синтаксис:
    + loadmodule <имя-файла>;

    +

    Смотри тут чтобы узнать, какие модули + используются.

    +

    Модули из стандартной поставки Unreal3.2:

    +

    commands.so / commands.dll - все "/" команды (пока не все, но скоро будут) + НЕОБХОДИМ
    + cloak.so / cloak.dll - модуль скрытности НЕОБХОДИМ (или + другой модуль скрытности)

    +

    Если вы хотите быть уверенным в том, что они загружены:

    +
    loadmodule "src/modules/commands.so";
     loadmodule "src/modules/cloak.so";
     
    -

    или в ОС Windows:

    -
    loadmodule "modules/commands.dll";
    +						

    или в ОС Windows:

    +
    loadmodule "modules/commands.dll";
     loadmodule "modules/cloak.dll";
     
    -
    -

    4.11 - Log блок - РЕКОМЕНДОВАН

    -

    -

    Синтаксис:
    -

    log <имя-файла> {
    +					
    +

    4.11 - Log блок + РЕКОМЕНДОВАН +

    +

    +

    Синтаксис:
    +

    log <имя-файла> {
         maxsize <максимальный-размер-файла>;
         flags {
             <флаг>;
    @@ -1958,66 +2022,65 @@ loadmodule "modules/cloak.dll";
         };
     };
     
    -

    -

    Блок log позволяет назначить различные имена файлов логов - для различных целей. log:: содержит имя файла лога. log::maxsize - - это необязательная директива, позволяющая определить размер файла лога, после - превышения которого он будет очищен. Можно ввести строку, используя MB для - мегабайт, KB для килобайт, GB для гигабайт. log::flags определяет тип - информации, которая будет занесена в файл. Список доступных флагов приведён - ниже.

    -

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

    -

    Доступные флаги:
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    errorsошибки
    killsуведомления команды /kill
    tklинформация - о *lines, shuns и spamfilters (добавление/удаление/истекание срока)
    connectsсоединения/отсоединения пользователей
    server-connectsсоединения/отсоединения сервера
    klineиспользование команды /kline
    operпопытки команды /oper (как удачные, так и неудачные)
    sadmin-commandsиспользование команд /sa* (samode, sajoin, sapart и т.д.)
    chg-commandsиспользование команд /chg* (chghost, chgname, chgident и т.д.)
    oper-overrideиспользование operoverride
    spamfilterсовпадения спамфильтра
    -

    -

    Пример:

    -
    log ircd.log {
    +						

    +

    Блок log позволяет назначить различные имена файлов логов для различных целей. log:: + содержит имя файла лога. log::maxsize - это необязательная директива, + позволяющая определить размер файла лога, после превышения которого он будет + очищен. Можно ввести строку, используя MB для мегабайт, KB для килобайт, GB для + гигабайт. log::flags определяет тип информации, которая будет занесена в + файл. Список доступных флагов приведён ниже.

    +

    Можно создать несколько блоков log, чтобы протоколировать разную информацию в + разные файлы.

    +

    Доступные флаги:
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    errorsошибки
    killsуведомления команды /kill
    tklинформация о *lines, shuns и spamfilters (добавление/удаление/истекание срока)
    connectsсоединения/отсоединения пользователей
    server-connectsсоединения/отсоединения сервера
    klineиспользование команды /kline
    operпопытки команды /oper (как удачные, так и неудачные)
    sadmin-commandsиспользование команд /sa* (samode, sajoin, sapart и т.д.)
    chg-commandsиспользование команд /chg* (chghost, chgname, chgident и т.д.)
    oper-overrideиспользование operoverride
    spamfilterсовпадения спамфильтра
    +

    +

    Пример:

    +
    log ircd.log {
         maxsize 5MB;
         flags {
             errors;
    @@ -2028,15 +2091,16 @@ loadmodule "modules/cloak.dll";
         };
     };
     
    -

    -

    -
    -

    4.12 - TLD блок - НЕОБЯЗАТЕЛЬНО (Ранее - известен как T:Line)

    -

    -

    Синтаксис:
    -

    tld {
    +						

    +

    +
    +

    4.12 - TLD блок + НЕОБЯЗАТЕЛЬНО (Ранее + известен как T:Line) +

    +

    +

    Синтаксис:
    +

    tld {
         mask <хостмаска>;
         motd <файл-motd>;
         rules <файл-rules>;
    @@ -2048,209 +2112,213 @@ loadmodule "modules/cloak.dll";
             ssl;
         }
     };
    -

    -

    Блок tld позволяет вам определить сообщение дня(motd), - правила и канал для пользователей, базируясь на их хосте. Это весьма полезная - вещь, если вы используете различные motd для различных языков. tld::mask - - это user@host маска, где имя пользователя и имя хоста должны попадать под - него. tld::motd, tld::shortmotd, tld::opermotd, tld::botmotd - и tld::rules определяют сообщение дня (motd), короткое сообщение дня - (shortmotd), сообщение дня для оператора(opermotd), сообщение дня для бота - (botmotd), файл правил пользования, которые будут показаны данной хостмаске. - tld::shortmotd, tld::opermotd и tld::botmotd необязательны. tld::channel - необязателен, но позволяет вам определить канал, на который пользователь попадает - по умолчанию при подключении к серверу. Если tld::channel определен, то - он перезапишет канал для входа по умолчанию. tld::options блок позволяет - определить дополнительные требования, пока что только tld::options::ssl - (показывать файл для пользователей SSL) - и tld::options::remote (показывать файл для удалённых пользователей).

    -

    Вхождения в блок TLD проверяются сверху вниз.

    -

    Пример:
    -

    tld {
    +						

    +

    Блок tld позволяет вам определить сообщение дня(motd), правила и канал для + пользователей, базируясь на их хосте. Это весьма полезная вещь, если вы + используете различные motd для различных языков. tld::mask - это + user@host маска, где имя пользователя и имя хоста должны попадать под него. tld::motd, + tld::shortmotd, tld::opermotd, tld::botmotd и tld::rules + определяют сообщение дня (motd), короткое сообщение дня (shortmotd), сообщение + дня для оператора(opermotd), сообщение дня для бота (botmotd), файл правил + пользования, которые будут показаны данной хостмаске. tld::shortmotd, + tld::opermotd и tld::botmotd необязательны. tld::channel необязателен, + но позволяет вам определить канал, на который пользователь попадает по + умолчанию при подключении к серверу. Если tld::channel определен, то он + перезапишет канал для входа по умолчанию. tld::options блок позволяет + определить дополнительные требования, пока что только tld::options::ssl + (показывать файл для пользователей SSL) и tld::options::remote (показывать файл + для удалённых пользователей).

    +

    Вхождения в блок TLD проверяются сверху вниз.

    +

    Пример:
    +

    tld {
         mask *@*.ru;
         motd "ircd.motd.ru";
         rules "ircd.rules.ru";
     };
    -

    -

    -
    -

    4.13 - Ban Nick блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как Q:Line)

    -

    -

    Синтаксис:
    -

    ban nick {
    +

    +

    +
    +

    4.13 - Ban Nick блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как Q:Line) +

    +

    +

    Синтаксис:
    +

    ban nick {
    mask <ник>; reason <причина-бана>; };
    -

    -

    Блок ban nick позволяет отключить использование ников на сервере. - В ban::mask можно использовать шаблоны (wildcards) для определения множества ников, - в ban::reason необходимо написать причину бана. Данные блоки в - большинстве случаев устанавливаются для ников, которые используют сервисы сети.

    -

    Пример:
    -

    ban nick {
    +						

    +

    Блок ban nick позволяет отключить использование ников на сервере. В ban::mask + можно использовать шаблоны (wildcards) для определения множества ников, в + ban::reason необходимо написать причину бана. Данные блоки в большинстве + случаев устанавливаются для ников, которые используют сервисы сети.

    +

    Пример:
    +

    ban nick {
         mask "*C*h*a*n*S*e*r*v*";
         reason "Reserved for Services";
     };
    -

    -

    -
    -

    4.14 - Ban User блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как K:Line)

    -

    -

    Синтаксис:
    -

    ban user {
    +						

    +

    +
    +

    4.14 - Ban User блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как K:Line) +

    +

    +

    Синтаксис:
    +

    ban user {
         mask <хостмаска>;
         reason <причина-бана>;
     };
    -

    -

    Блок позволяет забанить по маске user@host при коннекте к серверу. ban::mask - - это шаблон вида user@host, ban::reason - это причина бана. Замечание: это только локальный бан, - пользователь может обойти его, подключившись к другим серверам в сети.

    -

    Пример:
    -

    ban user {
    +						

    +

    Блок позволяет забанить по маске user@host при коннекте к серверу. ban::mask - + это шаблон вида user@host, ban::reason - это причина бана. Замечание: это + только локальный бан, пользователь может обойти его, подключившись к другим + серверам в сети.

    +

    Пример:
    +

    ban user {
         mask *tirc@*.saturn.bbn.com;
         reason "Дурила_Картонная";
     };
    -

    -

    -
    -

    4.15 - Ban IP блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как Z:Line)

    -

    -

    Синтаксис:
    -

    ban ip {
    +						

    +

    +
    +

    4.15 - Ban IP блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как Z:Line) +

    +

    +

    Синтаксис:
    +

    ban ip {
         mask <ip-маска>;
         reason <причина-бана>;
     };
    -

    -

    Блок ban ip банит указанный IP и лишает доступа к серверу, в т.ч. - и попытки пользователей и серверов присоединится к серверу. Параметр ban::mask - - это IP, который может содержать символы и/или шаблон. ban::reason - это причина, - по которой отказано в использовании сервера. Т.к. бан распространяется и на сервера, - будьте с ним очень внимательны!

    -

    Пример:
    -

    ban ip {
    +						

    +

    Блок ban ip банит указанный IP и лишает доступа к серверу, в т.ч. и попытки + пользователей и серверов присоединится к серверу. Параметр ban::mask - это IP, + который может содержать символы и/или шаблон. ban::reason - это причина, по + которой отказано в использовании сервера. Т.к. бан распространяется и на + сервера, будьте с ним очень внимательны!

    +

    Пример:
    +

    ban ip {
         mask 192.168.1.*;
         reason "Получи реальный ip, ламeр :]!";
     };
    -

    -

    -

    -
    -

    4.16 - Ban Server блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как q:Line)

    -

    -

    Синтаксис:
    -

    ban server {
    +						

    +

    +
    +

    4.16 - Ban Server блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как q:Line) +

    +

    +

    Синтаксис:
    +

    ban server {
         mask <имя-сервера>;
         reason <причина-бана>;
     };
    -

    -

    Данный блок отключает возможность сервера присоединится к сети. Если - забаненый сервер соединяется непосредственно к вашему серверу, то соединение - запрещается. - Если забаненый сервер соединяется к удалённому серверу, то - ваш локальный сервер, где прописан бан, отключается от сети. Поле ban::mask определяет - шаблон для совпадения с именем сервера, который пытается соединится. ban::reason - определяет причину, по которой бан был установлен.

    -

    Пример:
    -

    ban server {
    +						

    +

    Данный блок отключает возможность сервера присоединится к сети. Если забаненый + сервер соединяется непосредственно к вашему серверу, то соединение запрещается. + Если забаненый сервер соединяется к удалённому серверу, то ваш локальный + сервер, где прописан бан, отключается от сети. Поле ban::mask определяет шаблон + для совпадения с именем сервера, который пытается соединится. ban::reason + определяет причину, по которой бан был установлен.

    +

    Пример:
    +

    ban server {
         mask broken.server.my.network.com;
         reason "Он сломан!";
     };
    -

    -

    -

    -
    -

    4.17 - Ban RealName блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как n:Line)

    -

    -

    Синтаксис:
    -

    ban realname {
    +						

    +

    +
    +

    4.17 - Ban RealName блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как n:Line) +

    +

    +

    Синтаксис:
    +

    ban realname {
         mask <маска-реального-имени>;
         reason <причина-бана>;
     };
    -

    -

    Блок ban realname позволяет забанить клиента, базируясь на поле GECOS (реальное имя). - Это весьма полезная вещь для прекращения флуда клонов, потому что достаточно часто боты-клоны - используют одинаковое имя. ban::mask определяет реальное имя для бана, можно использовать - шаблон. ban::reason определяет причину установки бана.

    -

    Пример:
    -

    ban realname {
    +						

    +

    Блок ban realname позволяет забанить клиента, базируясь на поле GECOS (реальное + имя). Это весьма полезная вещь для прекращения флуда клонов, потому что + достаточно часто боты-клоны используют одинаковое имя. ban::mask определяет + реальное имя для бана, можно использовать шаблон. ban::reason определяет + причину установки бана.

    +

    Пример:
    +

    ban realname {
         mask "Bob*";
         reason "Bob sucks!";
     };
    -

    -

    -
    -

    4.18 - Ban Version блок - НЕОБЯЗАТЕЛЕН -

    -

    -

    Синтаксис:
    -

    ban version {
    +						

    +

    +
    +

    4.18 - Ban Version блок + НЕОБЯЗАТЕЛЕН +

    +

    +

    Синтаксис:
    +

    ban version {
         mask <маска-версии>;
         reason <причина-бана>;
         action [kill|tempshun|shun|kline|zline|gline|gzline];
     };
    -

    -

    Блок ban version позволяет вам забанить IRC клиента, базируясь на ПО, которое он - использует. Это работает только тогда, когда клиент посылает ответ на CTCP version. - Если ответ не приходит, то бан не работает. Данная вещь позволяет вам блокировать - вредоносные скрипты. - ban::mask определяет версию, на которую ставится бан (можно использовать - шаблон), - ban::reason определяет причину установки бана. Вы так же можете - установить ban::action, kill используется по умолчанию, tempshun - сделает shun на коннект определённого пользователя, что эффективно против - ботов/зомби с динамическими IP и не влияет на невиновных пользователей. shun/kline/zline/gline/gzline - установят бан на (*@IPADDR), время действия бана может быть сконфигурировано опцией - set::ban-version-tkl-time и по умолчанию равно 1 суткам.

    -

    Пример:
    -

    ban version {
    +						

    +

    Блок ban version позволяет вам забанить IRC клиента, базируясь на ПО, которое он + использует. Это работает только тогда, когда клиент посылает ответ на CTCP + version. Если ответ не приходит, то бан не работает. Данная вещь позволяет вам + блокировать вредоносные скрипты. ban::mask определяет версию, на которую + ставится бан (можно использовать шаблон), ban::reason определяет причину + установки бана. Вы так же можете установить ban::action, kill используется + по умолчанию, tempshun сделает shun на коннект определённого + пользователя, что эффективно против ботов/зомби с динамическими IP и не влияет + на невиновных пользователей. shun/kline/zline/gline/gzline установят бан + на (*@IPADDR), время действия бана может быть сконфигурировано опцией + set::ban-version-tkl-time и по умолчанию равно 1 суткам.

    +

    Пример:
    +

    ban version {
         mask "*SomeLameScript*";
         reason "SomeLameScript содержит трояна";
     };
    -
    ban version {
    +							
    ban version {
         mask "*w00tZombie*";
         reason "Я ненавижу толпы зомби";
         action zline;
     };
    -

    -

    -
    -

    4.19 - Ban Exceptions - блок НЕОБЯЗАТЕЛЕН - (Ранее известен как E:Line)

    -

    -

    Синтаксис:
    -

    except ban {
    +						

    +

    +
    +

    4.19 - Ban Exceptions + блок НЕОБЯЗАТЕЛЕН + (Ранее известен как E:Line) +

    +

    +

    Синтаксис:
    +

    except ban {
         mask <хостмаска>;
     };
    -

    -

    Блок except ban позволяет определить user@host в качестве исключения для бана. Данный - блок используется, если вы хотите забанить провайдера, но - так же хотите, чтобы определённые пользователи могли - присоединится. Директива except::mask определяет шаблон - user@host для клиента, чтобы позволить ему присоединится.

    -

    Пример:
    -

    except ban {
    +						

    +

    Блок except ban позволяет определить user@host в качестве исключения для бана. + Данный блок используется, если вы хотите забанить провайдера, но так же хотите, + чтобы определённые пользователи могли присоединится. Директива except::mask + определяет шаблон user@host для клиента, чтобы позволить ему присоединится.

    +

    Пример:
    +

    except ban {
         mask myident@my.isp.com;
     };
    -

    -

    -
    -

    4.20 - TKL Exceptions - блок НЕОБЯЗАТЕЛЕН

    -

    -

    Синтаксис:
    -

    except tkl {
    +						

    +

    +
    +

    4.20 - TKL Exceptions + блок НЕОБЯЗАТЕЛЕН +

    +

    +

    Синтаксис:
    +

    except tkl {
         mask <хостмаска>;
         type <тип>;
         type { 
    @@ -2259,69 +2327,67 @@ loadmodule "modules/cloak.dll";
             ...
         };
     };
    -

    -

    Блок except tkl позволяет вам определить user@host для преодолевания бана tkl, - если пользователь под него попадает. Данный блок используется, если вы хотите забанить провайдера, - но так же хотите, чтобы определённые пользователи могли присоединится. - Директива except::mask определяет маску user@host для клиента, - чтобы позволить ему присоединится. except::type определяет, какой тип бана - должен преодолеваться. - Возможные типы: gline, gzline, qline, gqline и shun, что позволяет исключать из Glines, - Global Zlines, Qlines, Global Qlines и shuns. Если используется формат type {}, - то можно определить несколько типов.

    -

    Пример:
    -

    except tkl {
    +						

    +

    Блок except tkl позволяет вам определить user@host для преодолевания бана tkl, + если пользователь под него попадает. Данный блок используется, если вы хотите + забанить провайдера, но так же хотите, чтобы определённые пользователи могли + присоединится. Директива except::mask определяет маску user@host для клиента, + чтобы позволить ему присоединится. except::type определяет, какой тип бана + должен преодолеваться. Возможные типы: gline, gzline, qline, gqline и shun, что + позволяет исключать из Glines, Global Zlines, Qlines, Global Qlines и shuns. + Если используется формат type {}, то можно определить несколько типов.

    +

    Пример:
    +

    except tkl {
         mask myident@my.isp.com;
         type gline;
     };
    -

    -

    -
    -

    4.21 - Throttle - Exceptions блок НЕОБЯЗАТЕЛЕН - -

    -
    -

    Синтаксис:
    -

    except throttle {
    +						

    +

    +
    +

    4.21 - Throttle + Exceptions блок НЕОБЯЗАТЕЛЕН + +

    +
    +

    Синтаксис:
    +

    except throttle {
         mask <маска-ip>;
     };
    -

    -

    Блок except throttle позволяет определить IP маску, с которой можно преодолевать - систему троттлинга. - Блок используется, если вы включили троттлинг. - except::mask определяет маску IP, которая не будет забанена троттлингом.

    -

    Пример:
    -

    except throttle {
    +					

    +

    Блок except throttle позволяет определить IP маску, с которой можно преодолевать + систему троттлинга. Блок используется, если вы включили троттлинг. except::mask + определяет маску IP, которая не будет забанена троттлингом.

    +

    Пример:
    +

    except throttle {
         mask 192.168.1.*;
     };
    -

    -

    -
    -

    4.22 - Deny DCC блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как dccdeny.conf) -

    -
    -

    Синтаксис:
    -

    deny dcc {
    +					

    +

    +
    +

    4.22 - Deny DCC блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как dccdeny.conf) +

    +
    +

    Синтаксис:
    +

    deny dcc {
         filename <файл-для-блокирования>;
         reason <причина-бана>;
         soft [yes|no];
     };
    -

    -

    Блок deny dcc позволяет вам установить имя файла, передача которого невозможна - посредством DCC на этом сервере. - Блок используется для остановки распространения троянов и вирусов.

    -

    Параметр deny::filename определяет маску для имени файла, - передачу которого нужно блокировать; - deny::reason определяет причину, почему файл заблокирован.

    -

    Опция deny::soft, если установлена в 'yes', - DCC будет блокирован до тех пор, пока пользователь не позволит передачу - самостоятельно посредством /DCCALLOW +nickname-trying-to-send. Смотрите - dccallow.conf для выяснения подробностей конфигурирования dccallow.

    -

    Пример:
    -

    deny dcc {
    +					

    +

    Блок deny dcc позволяет вам установить имя файла, передача которого невозможна + посредством DCC на этом сервере. Блок используется для остановки + распространения троянов и вирусов.

    +

    Параметр deny::filename определяет маску для имени файла, передачу + которого нужно блокировать; deny::reason определяет причину, почему файл + заблокирован.

    +

    Опция deny::soft, если установлена в 'yes', DCC будет блокирован до тех + пор, пока пользователь не позволит передачу самостоятельно посредством + /DCCALLOW +nickname-trying-to-send. Смотрите dccallow.conf для выяснения + подробностей конфигурирования dccallow.

    +

    Пример:
    +

    deny dcc {
         filename virus.exe;
         reason "Это вирус";
     };
    @@ -2331,96 +2397,91 @@ deny dcc {
         reason "Исполняемый файл";
         soft yes;
     };
    -

    -
    -

    -

    4.23 - Deny Version блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как V:Line)

    -

    -

    - Синтаксис:
    -

    deny version {
    +					

    +
    +

    +

    4.23 - Deny Version блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как V:Line) +

    +

    +

    Синтаксис:
    +

    deny version {
         mask <имя-сервера>;
         version <номер-версии>;
         flags <флаги-компиляции>;
     };
    -

    -

    Данный блок позволяет вам запретить линковку сервера, базируясь на версии Unreal - и на опциях, с которыми он был скомпилирован. Директива deny::mask определяет маску, - на какие сервера будет распространятся запрет. deny::version определяет номер - версиипротокола.

    -

    К примеру, 3.0 - это 2301, 3.1.1/3.1.2 это 2302, 3.2 это 2303. Первым символом - этого параметра может быть один из следующих: - >, <, =, !. Этот символ сообщает IRCd, - как интерпретировать версию. Если первый символ >, - то будут запрещены все версии, номер у которых БОЛЬШЕ, если это <, - то все версии МЕНЬШЕ, если это = , то только эта версия запрещена; - ! означает, что все версии, кроме данной, запрещены. - Директива deny::flags позволяет указать флаги, с которыми был - или не был скомпилирован сервер. Флаги следуют один за - одним без разделения, если символ идёт с ! - - - это значит, что сервер может не содержать его, а если нет такого префикса - - - это значит, что сервер должен быть скомпилирован с указанным флагом.

    -

    -
    -

    4.24 - Deny Link блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как D/d:Line)

    -

    -

    Синтаксис:
    -

    deny link {
    +						

    +

    Данный блок позволяет вам запретить линковку сервера, базируясь на версии Unreal + и на опциях, с которыми он был скомпилирован. Директива deny::mask определяет + маску, на какие сервера будет распространятся запрет. deny::version определяет + номер версиипротокола.

    +

    К примеру, 3.0 - это 2301, 3.1.1/3.1.2 это 2302, 3.2 это 2303. Первым символом + этого параметра может быть один из следующих: >, <, =, !. Этот символ + сообщает IRCd, как интерпретировать версию. Если первый символ >, то будут + запрещены все версии, номер у которых БОЛЬШЕ, если это <, то все версии + МЕНЬШЕ, если это = , то только эта версия запрещена; ! означает, что все + версии, кроме данной, запрещены. Директива deny::flags позволяет указать флаги, + с которыми был или не был скомпилирован сервер. Флаги следуют один за одним без + разделения, если символ идёт с ! - это значит, что сервер может не содержать + его, а если нет такого префикса - это значит, что сервер должен быть + скомпилирован с указанным флагом.

    +

    +
    +

    4.24 - Deny Link блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как D/d:Line) +

    +

    +

    Синтаксис:
    +

    deny link {
         mask <имя-сервера>;
         rule <выражение>;
         type <тип-запрета>;
     };
    -

    -

    Данный блок позволяет вам использовать специфические правила для запрета - линковки сервера. deny::mask определяет маску имени сервера, на которую распространяется - данное правило. Директива deny::rule очень сложна и позволяет детально настраивать - запрет на линковку. Поддерживается 4 операции: - connected(<маска-сервера>) вернёт истину (true), если сервер попадает под - маску и соединён; - directcon(<маска-сервера>) вернёт true если сервер попадает под маску и - напрямую соединён с сервером; - via(<маска-via>,<маска-сервера>), вернёт true, если сервер попадает - под маску и соединён через сервер, попадающий под via-маску; - directop(), которое вернёт true если оператор, который выполнил /connect, - напрямую соединен с этим сервером. Данные операции могут комбинироваться - посредством && (логическое И) и || (логическое ИЛИ), они могут - заключаться в скобки для группировки. - Если перед оператором идет !, он проверяется на false. Если полное вычисление выражения - вернёт true, то соединение будет запрещено. deny::type позволяет два различных - значения: auto (применимо только для автосоединений, /connect будет работать), - и all (применяется на все попытки соединений).

    -

    -
    -

    4.25 - Deny Channel блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как chrestrict.conf) -

    -
    -

    Синтаксис:
    -

    deny channel {
    +						

    +

    Данный блок позволяет вам использовать специфические правила для запрета + линковки сервера. deny::mask определяет маску имени сервера, на которую + распространяется данное правило. Директива deny::rule очень сложна и позволяет + детально настраивать запрет на линковку. Поддерживается 4 операции: + connected(<маска-сервера>) вернёт истину (true), если сервер попадает под + маску и соединён; directcon(<маска-сервера>) вернёт true если сервер + попадает под маску и напрямую соединён с сервером; + via(<маска-via>,<маска-сервера>), вернёт true, если сервер попадает + под маску и соединён через сервер, попадающий под via-маску; directop(), + которое вернёт true если оператор, который выполнил /connect, напрямую соединен + с этим сервером. Данные операции могут комбинироваться посредством && + (логическое И) и || (логическое ИЛИ), они могут заключаться в скобки для + группировки. Если перед оператором идет !, он проверяется на false. Если полное + вычисление выражения вернёт true, то соединение будет запрещено. deny::type + позволяет два различных значения: auto (применимо только для автосоединений, + /connect будет работать), и all (применяется на все попытки соединений).

    +

    +
    +

    4.25 - Deny Channel блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как chrestrict.conf) +

    +
    +

    Синтаксис:
    +

    deny channel {
         channel "<маска-канала>";
         reason <причина-бана>;
         redirect "<имя-канала>";
         warn [on|off];
     };
    -

    -

    -

    -

    Блок deny channel позволяет вам запретить пользователям заходить на указанные каналы. - Директива deny::channel определяет маску для каналов, на которые нельзя зайти пользователям, - и deny::reason определяет причину, почему это невозможно сделать. Дополнительно, можно - определить deny::redirect, тогда пользователь, пытающийся зайти на канал, - совпадающий с deny::channel, будет перенаправлен на deny::redirect. Если deny::warn - будет установлено в on, то будет послано уведомление оператору (для сномаски EYES), - когда пользователь попытается зайти на канал.

    -

    Пример

    -
    deny channel {
    +					

    +

    +

    Блок deny channel позволяет вам запретить пользователям заходить на указанные + каналы. Директива deny::channel определяет маску для каналов, на которые + нельзя зайти пользователям, и deny::reason определяет причину, почему + это невозможно сделать. Дополнительно, можно определить deny::redirect, + тогда пользователь, пытающийся зайти на канал, совпадающий с deny::channel, + будет перенаправлен на deny::redirect. Если deny::warn будет установлено + в on, то будет послано уведомление оператору (для сномаски EYES), когда + пользователь попытается зайти на канал.

    +

    Пример

    +
    deny channel {
         channel "#unrealsucks";
         reason "И не мечтайте";
     };
    @@ -2436,57 +2497,57 @@ deny channel {
         reason "Канал помощи в сети #help, а не #operhelp";
         redirect "#help";
     };
    -

    -

    -
    -

    4.26 - Allow Channel - блок НЕОБЯЗАТЕЛЕН -

    -
    -

    Синтаксис:
    -

    allow channel {
    +					

    +

    +
    +

    4.26 - Allow Channel + блок НЕОБЯЗАТЕЛЕН +

    +
    +

    Синтаксис:
    +

    allow channel {
         channel "<маска-канала>";
     };
    -

    -

    Блок allow channel позволяет определить специфические каналы, куда могут - заходитьпользователи. Директива allow::channel - определяется маской каналов, куда можно заходить.

    -

    Пример:
    -

    allow channel {
    +					

    +

    Блок allow channel позволяет определить специфические каналы, куда могут + заходитьпользователи. Директива allow::channel определяется маской каналов, + куда можно заходить.

    +

    Пример:
    +

    allow channel {
         channel "#something";
     };
    -

    -

    -
    -

    4.27 - Allow DCC блок - НЕОБЯЗАТЕЛЕН -

    -
    -

    Синтаксис:
    -

    allow dcc {
    +					

    +

    +
    +

    4.27 - Allow DCC блок + НЕОБЯЗАТЕЛЕН +

    +
    +

    Синтаксис:
    +

    allow dcc {
         filename "<маска-имени-файла>";
         soft [yes|no];
     };
    -

    -

    Блок allow dcc позволяет определить исключения из блоков deny dcc, - разрешено использование шаблонов. Если allow dcc::soft - установлен в 'yes', блок применяется к списку 'soft dcc bans', - если установлен в 'no', то применяется к нормальным ('hard') банам dcc.

    -

    Пример:
    -

    allow dcc {
    +					

    +

    Блок allow dcc позволяет определить исключения из блоков deny dcc, разрешено + использование шаблонов. Если allow dcc::soft установлен в 'yes', блок + применяется к списку 'soft dcc bans', если установлен в 'no', то применяется к + нормальным ('hard') банам dcc.

    +

    Пример:
    +

    allow dcc {
         filename "*.jpg"; /* Картинки обычно безопасны */
         soft yes;
     };
    -

    -

    -
    -

    4.28 - Vhost блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как vhosts.conf) -

    -
    -

    Синтаксис:
    -

    vhost {
    +					

    +

    +
    +

    4.28 - Vhost блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как vhosts.conf) +

    +
    +

    Синтаксис:
    +

    vhost {
         vhost <виртуальный-хост>;
         from {
             userhost <хостмаска>;
    @@ -2497,20 +2558,21 @@ deny channel {
         password <пароль> { <тип-аутентификации>; };
         swhois "<информация-в-swhois>";
     };
    -

    -

    Блок vhost позволяет определить логин/пароль, который может быть использован - посредством команды /vhost, чтобы получить ненастоящее (fake) имя хоста. - Параметр vhost::vhost может быть задан в виде user@host или просто host, - который получит пользователь после удачного использования команды /vhost. - vhost::from::userhost содержит маску в виде user@host, под которую должен - попадать пользователь, чтобы получить виртуальный хост. Можно задать - несколько хостмасок. vhost::login - логин и vhost::password - пароль, которые - должны быть введены пользователем. vhost::password:: позволяет определить тип аутентификации для - его использования. Поддерживаются следующие типы: crypt, md5, sha1 и ripemd-160. - И напоследок, vhost::swhois позволяет добавить строку в информацию о пользователе (whois), - без необходимости добавлять его в блок Oper oper::swhois.

    -

    Пример:
    -

    vhost {
    +					

    +

    Блок vhost позволяет определить логин/пароль, который может быть использован + посредством команды /vhost, чтобы получить ненастоящее (fake) имя хоста. + Параметр vhost::vhost может быть задан в виде user@host или просто host, + который получит пользователь после удачного использования команды /vhost. + vhost::from::userhost содержит маску в виде user@host, под которую должен + попадать пользователь, чтобы получить виртуальный хост. Можно задать несколько + хостмасок. vhost::login - логин и vhost::password - пароль, которые должны быть + введены пользователем. vhost::password:: позволяет определить тип + аутентификации для его использования. Поддерживаются следующие типы: crypt, + md5, sha1 и ripemd-160. И напоследок, vhost::swhois позволяет добавить строку в + информацию о пользователе (whois), без необходимости добавлять его в блок Oper + oper::swhois.

    +

    Пример:
    +

    vhost {
         vhost my.own.personal.vhost.com;
         from {
             userhost my@isp.com;
    @@ -2520,72 +2582,72 @@ deny channel {
         password mypassword;
         swhois "Im Special";
     };
    -

    -

    -
    -

    4.29 - Badword блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как badwords.*.conf) -

    -
    -

    Синтаксис:
    -

    badword <тип> {
    +					

    +

    +
    +

    4.29 - Badword блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как badwords.*.conf) +

    +
    +

    Синтаксис:
    +

    badword <тип> {
         word <текст-совпадение>;
         replace <заменить-с-помощью>;
         action <replace|block>;
     };
    -

    -

    Блок badword позволяет манипулировать вам списком, используемым для режима +G, - установленного на пользователей и канал, чтобы вырезать матные слова. - badword:: определяет тип, такой, как channel, message, quit и all. - channel - это список +G на канале, message - это список +G пользователя, - quit - для цензуры сообщения при выходе, all - добавляет всё в указанные выше 3 списка. - badword::word может быть просто словом или же регулярным выражением. badword::replace - - чем заменить совпадающее слово.Если badword::replace не указан, то - слово будет заменено на <censored>. badword::action определяет, какое - действие будет предпринято, если будет найден мат. Если вы определили replace, - тогда мат будет заменен, если же вы определили block, то сообщение будет - заблокировано целиком. Если вы не определили badword::action, то будет назначен - replace.

    -

    Пример:
    -

    badword channel {
    +					

    +

    Блок badword позволяет манипулировать вам списком, используемым для режима +G, + установленного на пользователей и канал, чтобы вырезать матные слова. badword:: + определяет тип, такой, как channel, message, quit и all. channel - это список + +G на канале, message - это список +G пользователя, quit - для цензуры + сообщения при выходе, all - добавляет всё в указанные выше 3 списка. + badword::word может быть просто словом или же регулярным выражением. + badword::replace - чем заменить совпадающее слово.Если badword::replace не + указан, то слово будет заменено на <censored>. badword::action + определяет, какое действие будет предпринято, если будет найден мат. Если вы + определили replace, тогда мат будет заменен, если же вы определили block, то + сообщение будет заблокировано целиком. Если вы не определили badword::action, + то будет назначен replace.

    +

    Пример:
    +

    badword channel {
         word shit;
         replace shoot;
     };
    -

    -

    -
    -

    4.30 - ULines блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как U:Line)

    -

    -

    Синтаксис:
    -

    ulines {
    +					

    +

    +
    +

    4.30 - ULines блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как U:Line) +

    +

    +

    Синтаксис:
    +

    ulines {
         <имя-сервера>;
         <имя-сервера>;
         ...
     };
    -

    -

    Блок ulines позволяет вам установить проверенные сервера, - как заслуживающие максимального доверия. - Блок должен быть использован для сервисов или статистики. - Лучше не прописывать в ulines обычный сервер. Каждый сервер, входящий в список, - получит максимальные привилегии.

    -

    Пример
    -

    ulines {
    +						

    +

    Блок ulines позволяет вам установить проверенные сервера, как заслуживающие + максимального доверия. Блок должен быть использован для сервисов или + статистики. Лучше не прописывать в ulines обычный сервер. Каждый сервер, + входящий в список, получит максимальные привилегии.

    +

    Пример
    +

    ulines {
         services.mynetwork.com;
         stats.mynetwork.com;
     };
    -

    -

    -
    -

    4.31 - Link блок - НЕОБЯЗАТЕЛЕН (Ранее - известен как C/N/H:Lines) -

    -
    -

    Синтаксис:
    -

    link <имя-сервера> {
    +						

    +

    +
    +

    4.31 - Link блок + НЕОБЯЗАТЕЛЕН (Ранее + известен как C/N/H:Lines) +

    +
    +

    Синтаксис:
    +

    link <имя-сервера> {
         username <маска-пользователя>;
         hostname <маска-ip>;
         bind-ip <ip-для-прослушивания>;
    @@ -2603,132 +2665,122 @@ deny channel {
             ...
         };
     };
    -

    -

    Этот блок необходим для соединения серверов друг с другом, желательно прочитать всё, - что находится ниже, т.к. это одна из важных и сложных настроек, в которой новоиспеченные - администраторы часто совершают ошибки;P

    -

    - имя-сервера - это имя удалённого сервера, которое идёт в его блоке me { - }, например hub.blah.com (не IP адрес; имя сервера может отличаться от хостнейма).

    -

    username
    - Можно указать его, если необходимо использовать идент для аутентификации, нормой - считается установка значения в "*". -

    -

    hostname
    - Хост или IP адрес удалённого сервера. Используется для обоих соединений И для - аутентификации/проверки со входящей стороны. Несколько примеров:
    - - - - - - - - - - - - - - - - - -
    1.2.3.4 - обычный IP адрес
    hub.blah.com - хост: только для исходящего соединения, не может принимать входящие соединения. - Может принимать, если присутствует link::options::nohostcheck
    * - Не может присоединится к серверу, но принимает входящие соединения (если указан - правильный пароль) с любого IP адреса или хоста
    ::ffff:1.2.3.4 - для линковки ipv6 к ipv4.
    -

    -

    bind-ip (необязательно)
    - Служит для прослушивания указанного IP адреса (пример: 192.168.0.1). - Используется, если IRC-сервер имеет несколько IP адресов, для явного указания - одного из них. -

    -

    port
    - Порт для соединения (необходимо, чтобы он прослушивался на удалённом сервере). -

    -

    password-connect
    - Пароль, используемый для подключения к удалённому серверу, не может быть - зашифрованным (обычный текст). -

    -

    password-receive
    - Пароль для проверки входящих соединений, может быть зашифрован (методами crypt, - md5, sha1, ripemd-160). Вы можете не трогать тип авторизации и использовать - пароль в текстовом виде. Часто этот пароль совпадает с password-connect. -

    -

    hub vs leaf
    - Хаб позволяет соединения с несколькими серверами, а лист - только с одним. - Сервер может быть или хабом, или листом, нельзя комбинировать данные опции. -

    -

    hub (необязателен)
    - Значение - это маска, указывающая, какие сервера могут присоединиться к данному - хабу (пример: *.my.net). -

    -

    leaf (необязателен)
    - Маска, с которой этот сервер может выступать как лист. -

    -

    leaf-depth (необязателен)
    - Если определён этот параметр, то должен быть определён и leaf. Значение - определяет глубину (количество переходов), которую не должен превышать данный - сервер до указанного. -

    -

    class
    - Класс сервера, для этого часто используется класс server. -

    -

    compression-level (необязателен)
    - Определяет уровень сжатия (1-9) для данного соединения. Используется, если - установлен link::options::zip. -

    -

    ciphers (необязателен)
    - Определяет шифры SSL для применения к данному линку. Чтобы получить список всех - доступных шифров, используйте команду `openssl ciphers`. Шифры в списке должны - быть разделены двоеточием : . -

    -

    options блок
    - Обычно используется одна или несколько опций, иногда они вообще не нужны.
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ssl - для соединения на SSL порт.
    autoconnect - сервер будет автоматически пробовать соединятся, время определяется параметром - в class::connfreq ( лучшим решением будет включение это опции только с одной - стороны, например лист->хаб)
    zip - если вы желаете сжимать трафик для данного соединения, то необходимо - скомпилировать сервер с поддержкой zlib и установить сжатие с двух сторон.
    nodnscache - не кэшировать IP для исходящего соединения с сервером, используется для часто - изменяемых хостов (например dyndns.org)
    nohostcheck - не проверяет удалённый хост (link::hostname), используется для часто изменяемых - хостов (например dyndns.org)
    quarantine - операторы с этого сервера будут ограничены правами локальных операторов
    -

    -

    Пример:

    -
    link hub.mynet.com {
    +					

    +

    Этот блок необходим для соединения серверов друг с другом, желательно прочитать + всё, что находится ниже, т.к. это одна из важных и сложных настроек, в которой + новоиспеченные администраторы часто совершают ошибки;P

    +

    имя-сервера - это имя удалённого сервера, которое идёт в его блоке me { + }, например hub.blah.com (не IP адрес; имя сервера может отличаться от + хостнейма).

    +

    username
    + Можно указать его, если необходимо использовать идент для аутентификации, + нормой считается установка значения в "*". +

    +

    hostname
    + Хост или IP адрес удалённого сервера. Используется для обоих соединений И для + аутентификации/проверки со входящей стороны. Несколько примеров:
    + + + + + + + + + + + + + + + + + +
    1.2.3.4обычный IP адрес
    hub.blah.comхост: только для исходящего соединения, не может принимать входящие соединения. + Может принимать, если присутствует link::options::nohostcheck
    *Не может присоединится к серверу, но принимает входящие соединения + (если указан правильный пароль) с любого IP адреса или хоста
    ::ffff:1.2.3.4для линковки ipv6 к ipv4.
    +

    +

    bind-ip (необязательно)
    + Служит для прослушивания указанного IP адреса (пример: 192.168.0.1). + Используется, если IRC-сервер имеет несколько IP адресов, для явного указания + одного из них. +

    +

    port
    + Порт для соединения (необходимо, чтобы он прослушивался на удалённом сервере). +

    +

    password-connect
    + Пароль, используемый для подключения к удалённому серверу, не может быть + зашифрованным (обычный текст). +

    +

    password-receive
    + Пароль для проверки входящих соединений, может быть зашифрован (методами crypt, + md5, sha1, ripemd-160). Вы можете не трогать тип авторизации и использовать + пароль в текстовом виде. Часто этот пароль совпадает с password-connect. +

    +

    hub vs leaf
    + Хаб позволяет соединения с несколькими серверами, а лист - только с одним. + Сервер может быть или хабом, или листом, нельзя комбинировать данные опции. +

    +

    hub (необязателен)
    + Значение - это маска, указывающая, какие сервера могут присоединиться к данному + хабу (пример: *.my.net). +

    +

    leaf (необязателен)
    + Маска, с которой этот сервер может выступать как лист. +

    +

    leaf-depth (необязателен)
    + Если определён этот параметр, то должен быть определён и leaf. Значение + определяет глубину (количество переходов), которую не должен превышать данный + сервер до указанного. +

    +

    class
    + Класс сервера, для этого часто используется класс server. +

    +

    compression-level (необязателен)
    + Определяет уровень сжатия (1-9) для данного соединения. Используется, если + установлен link::options::zip. +

    +

    ciphers (необязателен)
    + Определяет шифры SSL для применения к данному линку. Чтобы получить список всех + доступных шифров, используйте команду `openssl ciphers`. Шифры в списке должны + быть разделены двоеточием : . +

    +

    options блок
    + Обычно используется одна или несколько опций, иногда они вообще не нужны.
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    sslдля соединения на SSL порт.
    autoconnectсервер будет автоматически пробовать соединятся, время определяется параметром + в class::connfreq ( лучшим решением будет включение это опции только с одной + стороны, например лист->хаб)
    zipесли вы желаете сжимать трафик для данного соединения, то необходимо + скомпилировать сервер с поддержкой zlib и установить сжатие с двух сторон.
    nodnscacheне кэшировать IP для исходящего соединения с сервером, используется для часто + изменяемых хостов (например dyndns.org)
    nohostcheckне проверяет удалённый хост (link::hostname), используется для часто изменяемых + хостов (например dyndns.org)
    quarantineоператоры с этого сервера будут ограничены правами локальных операторов
    +

    +

    Пример:

    +
    link hub.mynet.com {
         username *;
         hostname 1.2.3.4;
         bind-ip *;
    @@ -2743,43 +2795,36 @@ deny channel {
             zip;
         };
     };
    -

    -

    -

    -
    -

    4.32 - Alias блок - НЕОБЯЗАТЕЛЕН -

    -
    -

    Синтаксис [обычный псевдоним]:
    -

    alias <имя> {
    +					

    +

    +
    +

    4.32 - Alias блок + НЕОБЯЗАТЕЛЕН +

    +
    +

    Синтаксис [обычный псевдоним]:
    +

    alias <имя> {
         target <ник-для-перенаправления>;
         type <тип-псевдонима>;
         spamfilter <yes|no>;
     };
    -

    -

    Замечание: о - стандартных файлах - с псевдонимами, - поставляемыми - вместе с UnrealIRCd, можно прочитать - - здесь - .

    -

    Блок alias позволяет вам перенаправить команду пользователя, например /chanserv - будет отправлять сообщение пользователю chanserv (/msg chanserv). alias:: определяет имя команды, - которое будет псевдонимом (т.е.: chanserv), alias::target - это ник или канал, - куда будет направлена команда, если alias:: и есть цель, куда необходимо перенаправить, - то alias::target может быть пропущен. - alias::type определяет тип псевдонима, правильные типы это services - (пользователь на сервере сервисов), stats (пользователь на сервере статистики), - normal (пользователь - это обычный пользователь на любом сервере) и channel - (цель - имя канала). Если alias::spamfilter (не обязательный параметр) - установлен в 'yes', тогда будет произведена проверка на - попадание в спамфильтр (по умолчанию 'no').
    -

    Блок alias имеет так же и другую цель, которая объясняется ниже.

    -

    Синтаксис [псевдоним команды]:
    -

    alias <имя> {
    +					

    +

    Замечание: о стандартных файлах с псевдонимами, поставляемыми вместе с + UnrealIRCd, можно прочитать здесь .

    +

    Блок alias позволяет вам перенаправить команду пользователя, например /chanserv + будет отправлять сообщение пользователю chanserv (/msg chanserv). alias:: + определяет имя команды, которое будет псевдонимом (т.е.: chanserv), + alias::target - это ник или канал, куда будет направлена команда, если alias:: + и есть цель, куда необходимо перенаправить, то alias::target может быть + пропущен. alias::type определяет тип псевдонима, правильные типы это services + (пользователь на сервере сервисов), stats (пользователь на сервере статистики), + normal (пользователь - это обычный пользователь на любом сервере) и channel + (цель - имя канала). Если alias::spamfilter (не обязательный параметр) + установлен в 'yes', тогда будет произведена проверка на попадание в спамфильтр + (по умолчанию 'no').
    +

    Блок alias имеет так же и другую цель, которая объясняется ниже.

    +

    Синтаксис [псевдоним команды]:
    +

    alias <имя> {
         format <регулярное-выражение> {
             target <ник-направления>;
             type <тип-псевдонима>;
    @@ -2791,96 +2836,95 @@ deny channel {
         type command;
         spamfilter <yes|no>;
     };
    -

    -

    Блок alias в данном формате позволяет значительно расширить рамки - своего использования. К примеру, можно создать псевдонимы вроде /identify. alias:: - - это имя псевдонимакоманды. alias::format определяет - регулярное выражение, которое сравнивается с текстом послылаемой команды, - и если оно совпадает, то будет использован alias::format. - Можно сделать несколько alias::format'ов, чтобы одна команда выполняла различные действия - в зависимости от контекста. alias::format::target - цель направления - этого псевдонима. alias::format::type определяет тип псведонима, куда будет - направлено сообщение. alias::format::parameters - это то, что будет послано в - качестве параметра данному псевдониму. Чтобы определить, какой именно из - параметров необходимо выдать псевдониму команды, используют знак %вместе - с номером, к примеру, %1 - это первый параметр. Для определения всех - параметров, идущих после указанного, используют %, идущий с номером и знаком, - к примеру, %2- вернёт все параметры, от второго до последнего. - Дополнительно, вы можете использовать %n как ник пользователя, который использует команду. - Примеры использования блока alias в командном формате находятся в doc/example.conf.

    -

    -
    -

    4.33 - Help блок - НЕОБЯЗАТЕЛЕН -

    -
    -

    Синтаксис:
    -

    help <имя> {
    +					

    +

    Блок alias в данном формате позволяет значительно расширить рамки своего + использования. К примеру, можно создать псевдонимы вроде /identify. alias:: - + это имя псевдонимакоманды. alias::format определяет регулярное выражение, + которое сравнивается с текстом послылаемой команды, и если оно совпадает, то + будет использован alias::format. Можно сделать несколько alias::format'ов, + чтобы одна команда выполняла различные действия в зависимости от контекста. + alias::format::target - цель направления этого псевдонима. alias::format::type + определяет тип псведонима, куда будет направлено сообщение. + alias::format::parameters - это то, что будет послано в качестве параметра + данному псевдониму. Чтобы определить, какой именно из параметров необходимо + выдать псевдониму команды, используют знак %вместе с номером, к примеру, %1 - + это первый параметр. Для определения всех параметров, идущих после указанного, + используют %, идущий с номером и знаком, к примеру, %2- вернёт все параметры, + от второго до последнего. Дополнительно, вы можете использовать %n как ник + пользователя, который использует команду. Примеры использования блока alias в + командном формате находятся в doc/example.conf.

    +

    +
    +

    4.33 - Help блок + НЕОБЯЗАТЕЛЕН +

    +
    +

    Синтаксис:
    +

    help <имя> {
         <строка-текста>;
         <строка-текста>;
         ...
     };
    -

    -

    Замечание: обычно достаточно просто подключить файл help.conf

    -

    Блок help позволяет добавить справочную информацию, которая будет выдаваться по - команде /helpop. help:: - это значение параметра команды /helpop. Если help:: пропущен, - данный блок справки будет выдан по команде /helpop без параметров. - Содержимое блока help - это текст, который будет отображаться пользователю, - который набрал команду /helpop.

    -

    -
    -

    4.34 - Official Channels - блок НЕОБЯЗАТЕЛЕН -

    -
    -

    Синтаксис:
    -

    official-channels {
    +					

    +

    Замечание: обычно достаточно просто подключить файл help.conf

    +

    Блок help позволяет добавить справочную информацию, которая будет выдаваться по + команде /helpop. help:: - это значение параметра команды /helpop. Если help:: + пропущен, данный блок справки будет выдан по команде /helpop без параметров. + Содержимое блока help - это текст, который будет отображаться пользователю, + который набрал команду /helpop.

    +

    +
    +

    4.34 - Official Channels + блок НЕОБЯЗАТЕЛЕН +

    +
    +

    Синтаксис:
    +

    official-channels {
         "#channel" { topic "Топик по умолчанию"; };
     };
    -

    -

    Оффициальные каналы будут показаны при команде /list, даже если там не будет - пользователей. topic необязателен, и показывается по команде /list - только если на данном канале 0 пользователей. -

    -

    Пример:
    -

    official-channels {
    +					

    +

    Оффициальные каналы будут показаны при команде /list, даже если там не будет + пользователей. topic необязателен, и показывается по команде /list + только если на данном канале 0 пользователей. +

    +

    Пример:
    +

    official-channels {
         "#Help" { topic "Оффициальный канал помощи, если никого нет, наберите /helpop helpme"; };
         "#Home";
         "#Main" { topic "Главный канал"; };
     };
    -

    -
    -

    4.35 - Spamfilter блок - НЕОБЯЗАТЕЛЕН -

    -
    -

    - Блок spamfilter позволяет добавлять вам локальные спамфильтры (действующие не - на всю сеть).
    - Смотрите Функциональные возможности - Спамфильтр - для более подробной информации о спамфильтрах.
    -

    -

    Синтаксис:
    -

    spamfilter {
    +					

    +
    +

    4.35 - Spamfilter блок + НЕОБЯЗАТЕЛЕН +

    +
    +

    Блок spamfilter позволяет добавлять вам локальные спамфильтры (действующие не на + всю сеть).
    + Смотрите Функциональные возможности - Спамфильтр + для более подробной информации о спамфильтрах.
    +

    +

    Синтаксис:
    +

    spamfilter {
         regex <слово>;
         target { <цель(цели)> };
         action <действие>;
         reason <причина>;
         ban-time <время>;
     };
    -

    -

    regex - регулярное выражение для совпадения.
    - target определяет цели, смотрите списки вероятных типов  - здесь (например: 'channel').
    - action определяет предпринимаемое действие, смотрите списки возможных - действий здесь (например: 'gline').
    - reason необязателен, определяет причину бана или блокирования, если не - указан, используется причина по умолчанию.
    - ban-time необязателен, определяет длительность бана *line или shun, - иначе используется время по умолчанию (1 сутки).
    -

    -

    Примеры:
    -

    spamfilter {
    +					

    +

    regex - регулярное выражение для совпадения.
    + target определяет цели, смотрите списки вероятных типов + здесь (например: 'channel').
    + action определяет предпринимаемое действие, смотрите списки возможных + действий здесь (например: 'gline').
    + reason необязателен, определяет причину бана или блокирования, если не + указан, используется причина по умолчанию.
    + ban-time необязателен, определяет длительность бана *line или shun, + иначе используется время по умолчанию (1 сутки).
    +

    +

    Примеры:
    +

    spamfilter {
         regex "Come watch me on my webcam";
         target { private; channel; };
         action gline;
    @@ -2895,38 +2939,99 @@ spamfilter {
         reason "Скажем нет спаму!";
     };
     
    -

    -
    -

    4.36 - Set блок - НЕОБХОДИМ (Ранее - известен как unrealircd.conf/networks) -

    -
    -

    - Данный блок содержит настройки вашей irc-сети, он может размещаться как в - unrealircd.conf, так и в отдельном файле (см. директорию networks). Если сеть - состоит из одного сервера, проще будет вместо создания отдельного файла - все настройки поместить в unrealircd.conf, однако если сеть многосерверная, - рекомендовано использовать отдельный файл с настройками сети и загружать его с - помощью директивы include.

    -

    В данном блоке мы будем ссылаться на настройки / директивы в формате - <имя-блока>::<директива-блока>. Это НЕ ТОТ формат, который можно - включать в конфигурационный файл, Это ДОЛЖНО быть преобразовано в формат, - используемый ниже. С таким форматом будет проще понять настройки.

    -

    Синтаксис:
    -

    set {
    +					

    4.36 - Блок Cgiirc + НЕОБЯЗАТЕЛЕН +

    +
    +

    + Блок cgiirc позволяет вам настроить скрытие хоста для гейтов CGI:IRC, + которым вы доверяете (больше информации).

    +

    Синтаксис:
    +

    +cgiirc {
    +	type <webirc|old>;
    +	username <mask>; /* необязательно */
    +	hostname <mask>;
    +	password <password>; /* только для типа webirc */
    +};
    +

    +

    type бывает 'webirc' или 'old'.
    + username это как ident (если указан). Если не указан, + то будет учитываться как "*".
    + hostname это маска, с которой производится сравнение.
    + password это пароль webirc, только если используется + тип 'webirc'.
    +

    +

    Как сконфигурировать, используя метод 'webirc' (рекомендованный метод)
    + В вашем конфигурационном файле CGI:IRC (cgiirc.conf) вы + устанавливаете пароль в webirc_password.
    + Далее, в вашем unrealircd.conf вы добавляете блок cgiirc, указывая данный + хост и пароль. Установите cgiirc::type в "webirc".
    +
    + Пример:
    + В вашем конфигурационном файле CGI:IRC (cgiirc.conf) вы добавляете: +

    webirc_password = LpT4xqPI5
    + Далее, в вашем unrealircd.conf вы добавляете блок cgiirc: +
    cgiirc {
    +	type webirc;
    +	hostname "1.2.3.4";
    +	password "LpT4xqPI5";
    +};
    +

    +

    Как сконфигурировать, используя метод 'old'
    + Замечание: Это не рекомендованный метод, потому что у него есть два недостатка: + этот метод посылает IP/хост для скрытия серверу как пароль для сервера, + это значит, что вы не можете указать пароль на сервер как + пользователь CGI:IRC. Дополнительно, управление доступом работает только + для основанных на IP клиентах и не требует экстрасложного пароля, + как в методе 'webirc'. Вкратце, вы не захотите использовать этот метод до тех + пор, пока вы не найдёте хорошую причину для этого.
    +
    + В конфигурационном файле вашего CGI:IRC (cgiirc.conf) установите + realhost_as_password в 1.
    + Далее, в вашем unrealircd.conf добавьте блок cgiirc для разрешения + работы с данного хоста.
    +
    + Пример:
    + В вашем конфигурационном файлеCGI:IRC (cgiirc.conf) добавьте: +

    realhost_as_password = 1
    + Далее в unrealircd.conf вы добавьте блок cgiirc: +
    cgiirc {
    +	type old;
    +	hostname "1.2.3.4";
    +};
    +

    +
    +
    +

    4.37 - Set блок + НЕОБХОДИМ (Ранее + известен как unrealircd.conf/networks) +

    +
    +

    Данный блок содержит настройки вашей irc-сети, он может размещаться как в + unrealircd.conf, так и в отдельном файле (см. директорию networks). Если сеть + состоит из одного сервера, проще будет вместо создания отдельного файла все + настройки поместить в unrealircd.conf, однако если сеть многосерверная, + рекомендовано использовать отдельный файл с настройками сети и загружать его с + помощью директивы include.

    +

    В данном блоке мы будем ссылаться на настройки / директивы в формате + <имя-блока>::<директива-блока>. Это НЕ ТОТ формат, который можно + включать в конфигурационный файл, Это ДОЛЖНО быть преобразовано в формат, + используемый ниже. С таким форматом будет проще понять настройки.

    +

    Синтаксис:
    +

    set {
         <вхождение> <переменная>;
         <вхождение> <переменная>;
         ...
     };
    -

    -

    Блок set устанавливает индивидуальные настройки для конкретного сервера. - Каждая директива уникальна (указывается в блоке set один раз), все директивы указаны ниже. - Некоторые из них могут содержать подблоки. Т.к. директив весьма много, то все они - могут быть включены в одном блоке set. Если у директивы есть опции, они так же могут - включаться внутри одного set.
    - Пример:
    -

    set {
    +					

    +

    Блок set устанавливает индивидуальные настройки для конкретного сервера. Каждая + директива уникальна (указывается в блоке set один раз), все директивы указаны + ниже. Некоторые из них могут содержать подблоки. Т.к. директив весьма много, то + все они могут быть включены в одном блоке set. Если у директивы есть опции, они + так же могут включаться внутри одного set.
    + Пример:
    +

    set {
         kline-address my@emailaddress.com;
         auto-join #welcome;
         options {
    @@ -2937,1790 +3042,1858 @@ spamfilter {
             global globalop.mynet.com;
         };
     };
    -

    -

    Если - необходимо - разделить - блоки set, - можно записать - опции в одну строку.
    - Пример:
    - set { options { hide-ulines; no-stealth; }; };
    -

    -

    set::kline-address <адрес-email>;
    - Адрес электронной почты, который будет выдаваться всем пользователям, - попавшим в K:line. Данное значение должно быть указано.

    -

    set::gline-address <адрес-email>;
    - Адрес электронной почты, который будет выдаваться всем пользователям, попавшим в  G:line.

    -

    set::modes-on-connect <+режимы>;
    - Режимы, устанавливаемые для пользователей при их подключении.

    -

    set::snomask-on-connect <+режимы>
    - SNOMASKs, устанавливаемые для пользователей при их подключении.

    -

    set::modes-on-oper <+режимы>;
    - Режимы, устанавливаемые для пользователей при удачном выполнении команды /oper.

    -

    set::snomask-on-oper <+режимы>;
    - SNOMASKs, устанавливаемые для пользователей при удачном выполнении команды /oper.

    -

    set::modes-on-join <+режимы>;
    - Режимы, устанавливаемые на канале при его создании. Не все режимы - возможно установить, используя эту опцию (+qaohvbeOAzlLk НЕЛЬЗЯ установить).

    -

    set::restrict-usermodes <режимы>
    - Запрещает пользователям устанавливать/снимать ссебя указанные режимы (не используйте + или -).
    - К примеру, можно установить режим +G в modes-on-connect и G в restrict-usermodes, - тогда для всех пользователей будет принудительно установлен +G, и они не смогут выполнить -G.

    -

    set::restrict-channelmodes <режимы>
    - Запрещает пользователям устанавливать/снимать указанные режимы канала (не - используйте + или -).
    - К примеру, можно установить +G в modes-on-join и G в restrict-channelmodes, - таким образом на всех (новых) каналах принудительно будет установлен +G и - будет невозможно выполнить -G.
    - ЗАМЕЧАНИЕ: эти режимы все-таки можно установить через сервисы, используя MLOCK. К сожалению, - сложно сказать, чем этозакончится, поэтому лучше уточнить у авторов сервисов.

    -

    set::restrict-extendedbans <типы|*>
    - Запрещает пользователям использовать расширенные баны ("*") или отключает - использование указанных банов (например: "qc").

    -

    set::auto-join <каналы>;
    - Канал(-ы), куда принудительно будет заброшен пользователь при подключении - к серверу. Чтобы определить несколько каналов, необходимо разделить их запятыми.
    - [Замечание: имя канала(-ов) должно быть в кавычках, т.е.: auto-join "#chan";]

    -

    set::oper-auto-join <каналы>;
    - Каналы(ы), куда будет заброшен пользователь при удачном выполнении команды - /oper. Чтобы определить несколько каналов, необходимо разделить их запятыми.
    - [Замечание: имя канала(ов) должно быть в кавычках, т.е.: oper-auto-join "#chan";]

    -

    set::anti-spam-quit-message-time <длительность>;
    - Время, в течение которого пользователь должен быть подключен к серверу, чтобы - отобразилось его сообщение о выходе (/quit). Используется для предотвращения спама. - Длительность задаётся числовой строкой, где d значит дни, h - часы, m - минуты и - s - секунды. К примеру 1d2h3m значит 1 день, 2 часа и 3 минуты.

    -

    set::prefix-quit <префикс-выхода>;
    - Устанавливает текст, который используется как префикс сообщения - о выходе. Если опция установлена в 0, то используется стандартный "Quit:".

    -

    set::static-quit <сообщение-выхода>;
    - Устанавливает статическое сообщение о выходе, которое будет использоваться - всегда, когда пользователь отключается от сети. Необходим anti-spam-quit-message-time - и set::prefix-quit. Отключения из-за ошибок связи НЕ заменяются сообщением static-quit.

    -

    set::static-part <no|yes|part сообщение>;
    - Значение 'yes' будет пропускать все сообщения при выходе с канала, значение 'no' - не изменяет работу /part, всё остальное будет интерпретировано как сообщение при выходе с канала - (например: static-part "Bye!"), что может весьма раздражать, поэтому аккуратнее - используйте данный параметр.

    -

    set::who-limit <предел>;
    - Устанавливает максимальное количество выводимых совпадений, возвращаемых командой /who. - Если данная опция не установлена, то ограниченийне будет.

    -

    set::silence-limit <предел>;
    - Устанавливает максимальное количество вхождений в список SILENCE. Если директиване - задана, то по умолчанию устанавливается 15.

    -

    set::maxbans <предел>;
    - Устанавливает максимально возможное количество банов (+b) на канале. По - умолчанию - 60. Если вы изменяете данную величину, ознакомьтесь с параметром - maxbanlength (см. дальше)!

    -

    set::maxbanlength <предел>;
    - Подобно set::maxbans, но устанавливает максимальное количество символов для - всех банов, сложенных вместе, т.е. лимит на максимальный объем памяти для банов, - возможный для канала. Значение по умолчание - 2048 (байт). - Исходя из значения по умолчанию для maxbans (60) можно получить 2048:60=34 символа - в среднем на один бан.

    -

    set::oper-only-stats <список-stats>;
    - Устанавливает список флагов (без разделителей) - команды stats, которые могут использовать только операторы. Оставьте - значение пустым, чтобы пользователи могли использовать все флаги, - или укажите *, чтобы пользователи не могли использовать ни одного флага. - Могут быть определены только короткие флаги команды /stats.

    -

    set::oper-only-stats {<флаг-stats>; <флаг-stats>;};
    - Устанавливает список флагов команды stats, которые могут использоваться только операторами. - Работает только с длинными флагами stats.

    -

    set::maxchannelsperuser <число-каналов>;
    - Определяет максимальное количество каналов, на которых одновременно - может присутствовать пользователь.

    -

    set::maxdccallow <количество-вхождений>;
    - Определяет максимальное число вхождений в список DCCALLOW для пользователя.

    -

    set::channel-command-prefix <префиксы-команд>;
    - Определяет символы-префиксы для сервисов для сообщений-команд на канале. - Сообщения, начинающиеся с любого из указанных символов будут посланы, даже если клиент - в режиме +d. Значение по умолчанию "`!.".

    -

    set::allowed-nickchars { <список> };
    - Кодировка/языки, допустимые в никах, смотрите Использование - национальных наборов символов в никах.

    -

    set::allow-userhost-change - [never|always|not-on-channels|force-rejoin]
    - Определяет, что происходит, если изменяется user@host - (+x/-x/chghost/chgident/setident/vhost/ и др.).
    - never - запрещает все команды, изменяющие user@host, - always - разрешает эти команды, даже если пользователь находится на канале(-ах) (может - привести к десинхронизации клиента) [по умолчанию], - not-on-channels - разрешает эти команды если пользователь не находится ни на одном канале, - force-rejoin принудительно заставит перезайти на все каналы и, - если необходимо, даст оператора, право голоса и др.

    -

    set::options::hide-ulines;
    - При наличии этой опции сервера U-line будут скрыты в запросе по команде /links от не-операторов.

    -

    set::options::flat-map;
    - При наличии этой опции все сервера по команде /map и /linksбудут выглядеть, как - будто напрямую прилинкованы к данному серверу (т.е. невозможно определить, - куда и какой сервер прилинкован). Это небольшая уловка против атак типа (D)DoS, - т.к. злоумышленники не смогут быстро определить уязвимые сервера в сети.

    -

    set::options::show-opermotd;
    - При наличии этой опции пользователю, успешно выполнившему /oper, - будет показан opermotd.

    -

    set::options::identd-check;
    - При наличии этой опции у клиента при подключении будет проверен сервер identd; - значение, которое он вернёт,будет использоваться в качестве имени - пользователя. Если не пришёл ответ или сервер identd не существует, то - указанное пользователем имя будет с префиксом ~. Если опцияне - установлена, никакой проверки не происходит.

    -

    set::options::show-connect-info;
    - При наличии этой опции при подключении пользователюбудут показаны - уведомления "ident request", "hostname lookup" и д.р..

    -

    set::options::dont-resolve;
    - Если хосты пользователей при подключении не определяются, - можно указать эту опцию. Это может пригодиться для ускорения соединения, если - большинство ваших пользователей не имеют хоста.
    - Замечание: если будет установлена эта опция, вы не сможете использовать - блоки allow, основанные на хостах.

    -

    set::options::mkpasswd-for-everyone;
    - Позволяет использовать команду /mkpasswd всем, а не только операторам, - использование команды не-операторами отправляется сномаске EYES.

    -

    set::options::allow-part-if-shunned;
    - Позволяет пользователям, на которых установлен shun, использовать /part.

    -

    set::options::fail-oper-warn;
    - При наличии этой опции пользователь будет уведомлён о том, что его неудачная попытка - стать оператором (/oper) была зафиксирована.

    -

    set::dns::timeout <интервал-времени>;
    - Интервал времени, определяющий таймаут DNS-сервера. - Это строка, где d означает дни, h - часы, m - минуты и s - секунды. К примеру, - 1d2h3m означает 1 день, 2 часа и 3 минуты.

    -

    set::dns::retries <количество-повторов>;
    - Число, определяющее количество попыток запроса DNS перед выдачей сообщения об ошибке.

    -

    set::dns::nameserver <имя-dns-сервера>;
    - Определяет имя сервера (hostname), который будет использован в качестве DNS запросов.

    -

    set::dns::bind-ip <ip>;
    - Привязка к определенному IP для DNS-запросов, очень редко используется.

    -

    set::network-name <имя-сети>;
    - Определяет имя сети, в которой запущен сервер. Желательно, чтобы эта переменная - была одинаковой на всех серверах в сети.

    -

    set::default-server <имя-сервера>;
    - Определяет имя сервера по умолчанию, которое сообщается пользователям, если - текущий сервер полон.

    -

    set::services-server <имя-сервера>;
    - Определяет имя сервера, к которому подключены сервисы. - Если у вас нет сервисов, необходимо установить значение вроде services.yournet.com.

    -

    set::stats-server <имя-сервера>;
    - Устанавливает имя сервера, где находится бот статистики. - Если статистика не запущена, можно оставить значение пустым.

    -

    set::help-channel <канал-помощи>;
    - Устанавливает название канала помощи.

    -

    set::cloak-keys { "ключ1"; "ключ2"; "ключ3"; };
    - Устанавливает ключи, используемые для генерации хоста при +x host. Данные - значения должны быть одинаковыми на всех серверах, иначе серверы не соединятся. - Каждый из 3-х set::cloak-keys:: должен быть строкой в 5-100 символов(желательно10-20), - содержащий смесь прописных (a-z), заглавных (A-Z) букв и цифр (0-9). Замечание: - значения ключей зависят от используемого вами модуля скрытности, при использовании - нестандартного модуля значения могут быть другими.

    -

    set::hiddenhost-prefix <значение-префикса>;
    - Определяет префикс, который используется для зашифрованных хостов - (+x). Обычно это 3 или 4 буквы, представляющие название сети.

    -

    set::hosts::local <хост-локального-оператора>;
    - Определяет хост, который будет назначен локальным операторам при установке на - них режима +x. Можно определить значение в виде username@host.

    -

    set::hosts::global <хост-глобального-оператора>;
    - Определяет хост, который будет назначен глобальным операторам при установке на - них режима +x. Можно определить значение в виде username@host.

    -

    set::hosts::coadmin <хост-помощника-администратора>;
    - Определяет хост, который будет назначен помощникам администратора при установке на - них режима +x. Можно определить значение в виде username@host.

    -

    set::hosts::admin <хост-администратора>;
    - Определяет хост, который будет назначен администраторам при установке на них - режима +x. Можно определить значение в виде username@host.

    -

    set::hosts::servicesadmin <хост-сервис-администратора>;
    - Определяет хост, который будет назначен администраторам сервисов при установке - на них режима +x. Можно определить значение в виде username@host.

    -

    set::hosts::netadmin <хост-администратора-сети>;
    - Определяет хост, который будет назначен администраторам - сети при установке на них режима +x. Можно определить значение в виде username@host.

    -

    set::hosts::host-on-oper-up <yes/no>;
    - Если установлено в yes, то флаг H/get_host будет учтен, и при удачной попытке команды - /oper автоматически будет установлен режим +x. Если установлено в no, чтобы получить хост - оператора пользователь должен установить флаг +x вручную (см. выше set::hosts).

    -

    set::ssl::egd <имя-файла>;
    - Определяет поддержку EGD (Entropy Gathering Daemon). Если используется - OpenSSL 0.9.7 или выше, тогда будет произведен поиск в /var/run/egd-pool, - /dev/egd-pool, /etc/egd-pool, и /etc/entropy, поэтому имя-файла можно опустить, - для этого просто определите set::ssl::egd без указания имени файла. Если используется - OpenSSL версии ниже, чем 0.9.7, или вы хотите использовать EGD сокет, находящийся в другом месте, - надо указать имя файла UNIX Domain Socket, на котором прослушивается EGD.

    -

    set::ssl::certificate <имя-файла>;
    - Определяет имя файла, в котором указан SSL сертификат сервера.

    -

    set::ssl::key <имя-файла>;
    - Определяет имя файла, в котором находится приватный ключ SSL.

    -

    set::ssl::trusted-ca-file <имя-файла>;
    - Определяет имя файла, где указаны сертификаты доверенных CA.

    -

    set::ssl::options::fail-if-no-clientcert;
    - Запрещает пользователей без сертификата.

    -

    set::ssl::options::no-self-signed;
    - Блокирует подключения пользователей с самоподписанными сертификатами.

    -

    set::ssl::options::verify-certificate;
    - Позволяет серверу определять правильность SSL сертификата прежде, чем разрешить соединение.

    -

    set::throttle::period <длительность>
    - Указывает, сколько времени должен подождать пользователь - перед повторным подключением, если он превысил лимит set::throttle::connections.

    -

    set::throttle::connections <количество>;
    - Сколько раз должен подключиться пользователь с одним и тем же хостом, чтобы - сработал троттлинг (защита от join-флуда).

    -

    set::ident::connect-timeout <время>;
    - Время в секундах, после которого прекращаются попытки соединения с идент-сервером [по - умолчанию 10 секунд (10s)].

    -

    set::ident::read-timeout <время>;
    - Время в секундах, после которого прекращается ожидание ответа - от идент-сервера [по умолчанию 30 секунд (30s)].

    -

    set::anti-flood::unknown-flood-bantime <время>;
    - Определяет, сколько времени будет забанен флудер с неизвестного подключения - [unknown connection flooder].

    -

    set::anti-flood::unknown-flood-amount <количество>;
    - Определяет количество данных (в килобайтах) с неизвестного подключения, - за превышение которого пользователь будет отключен от сети [killed].

    -

    set::anti-flood::away-flood <количество>:<период>;
    - Защита от "away" флуда: ограничивает использование команды /away - 'количество' за 'период' секунд. Необходимо, чтобы NO_FLOOD_AWAY был включён в config.h. - Пример:away-flood 5:60s; - - максимум 5 /away команд за 60 секунд.

    -

    set::anti-flood::nick-flood <количество>:<период>;
    - Защита от флуда сменой ников: ограничивает количество изменений ников - ('количество' за 'период' секунд). Для примера: - nick-flood 4:90 означает, что ник можно изменить 4 раза за - 90 секунд, по умолчанию установлено 3 изменения за 60 секунд.

    -

    set::default-bantime <время>;
    - Определяет длительность бана при использовании команд /kline, - /gline, /zline, /shun и остальных без указания параметра времени (вроде /gline *@some.nasty.isp). - По умолчанию ставится постоянный бан - 0. Пример: default-bantime 90d;

    -

    set::modef-default-unsettime <значение>;
    - Для режима канала +f можно определить время его снятия, т.е. если - установлено значение 10, то +f [5j]:15 будет трансформировано в [5j#i10]:15. По умолчанию - значение не установлено и не используется.

    -

    set::modef-max-unsettime <значение>;
    - Максимальное количество минут для снятия режима +f (в +f - [5j#i<TIME>]:15), значение может быть от 0 до 255. По умолчанию 60 (= 1 час).

    -

    set::ban-version-tkl-time <значение>;
    - Если при использовании команд вида zline/gline/и др. при бане по версии определен - 'action', то необходимо определить, сколько времени будет забанен данный ip, по - умолчанию - 86400 (1 день).

    -

    set::spamfilter::ban-time <значение>;
    - Тоже, что и выше, только для *lines/shuns, добавленных спамфильтром.

    -

    set::spamfilter::ban-reason <причина>;
    - Причина, которая будет указана при добавлении бана спамфильтром.

    -

    set::spamfilter::virus-help-channel <канал>;
    - Канал, используемый в качестве действия 'viruschan' в спамфильтре.

    -

    set::spamfilter::virus-help-channel-deny <yes|no>;
    - Если установлено в yes (или в 1), то обычным пользователям, пытающимся зайти на - канал virus-help-channel, будет сообщено, что попасть на канал можно только по приглашениям - ('invite only'). Только операторы, люди, попавшие под спамфильтр, и те, которых пригласили - на канал, могут туда зайти.

    -

    set::spamfilter::except <канал(ы)>;
    - Канал(-ы), которые исключаются от фильтрации спама (т.е. - никаких действий предпринятоне будет). Это может быть - один канал, либо несколько, разделённых запятыми. - Пример: except "#help,#spamreport";

    -

    set::check-target-nick-bans <yes|no>;
    - Где бы пользователь не менял свой ник, будет происходить проверка на бан для - НОВОГО ника. Если он будет попадать под бан, то ник не изменится. Значение по умолчанию yes.

    -

    -
    -

    5 – Дополнительные файлы -

    -
    - В дополнение к указанным у Unreal есть ещё другие конфигурационные файлы, такие как MOTD, - OperMOTD, BotMOTD и Rules. Ниже приведены имена файлов и их назначение.
    - Обратите внимание, что motd файлы (всех типов) и файлы правил могут быть - определены в блоке tld, просто данные имена файлов используются по умолчанию - (и для удалённых MOTD/RULES).

      - - - - - - - - - - - - - - - - - - - - - -
    ircd.motd - Отображается по команде /motd и (если нет ircd.smotd) при - подключении пользователей
    ircd.smotdОтображается только при подключении (сокращённый MOTD)
    ircd.rulesОтображается по команде /rules
    oper.motdОтображается по команде /opermotd или при получении статуса оператора /oper
    bot.motdОтображается по команде /botmotd
    -

    -
    -

    6 – Режимы пользователя и канала - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Режим
    -
    Описание
    -
    Режимы канала
    -
    A
    -
    Зайти могут только администраторы канала
    a <nick>
    -
    Делает пользователя администратором канала
    b <nick!user@host>
    -
    -
    Банит указанного пользователя на канале
    c
    -
    ANSI цвета не могут быть отправлены на канал
    C
    -
    на канале запрещены CTCP -
    e <nick!user@host>
    -
    Исключение от бана – если кто-то попадает под него, он может зайти на канал, - даже если он забанен
    f [<число><тип>]:<секунды>
    -
    Защита канала от флуда. См. секцию 3.12 для - подробного описания.
    G
    -
    Включает на канале проверку цензуры. Проверяются слова из списка матов (блоки Badword) - и при необходимости заменяются.
    h <nick>
    -
    Устанавливает статус полуоператора
    i
    -
    Необходимо приглашение, чтобы попасть на канал
    I <nick!user@host>
    -
    -
    Исключения приглашений ("invex") - если пользователь попадает, то требование +i - опускается при входе на канал.
    j <количество:секунды>
    -
    Ограничивает количество входов на канал пользователя до - количество в течение секунды секунд
    K
    -
    Запрещено использование /knock
    k <ключ>
    -
    Устанавливает ключ (пароль), необходимый для входа на канал
    l <##>
    -
    Устанавливает максимальное количество пользователей на канале
    L <канал>
    -
    Если превышено число, установленное режимом +l, то - пользователи будут отправлены на указанный канал
    M
    -
    Говорить могут только зарегистрированные пользователи (+r)
    m
    -
    Модерируемый канал. Говорить могут только пользователи с режимами +v/o/h
    N
    -
    На канале запрещено изменение ников
    n
    -
    Не разрешены сообщения извне
    O
    -
    Зайти могут только ирц-операторы
    o <nick>
    -
    Устанавливает статус оператора канала
    p
    -
    Канал становится приватным
    q <nick>
    -
    Устанавливает статус владельца канала
    Q
    -
    Только серверы из U:Lines могут кикать пользователей
    R
    -
    Для входа на канал необходимо, чтобы ники были зарегистрированы
    S
    -
    Вырезает из сообщений все цвета
    s
    -
    Канал становится секретным
    t
    -
    Только операторы канала могут устанавливать топик
    T
    -
    На - канале запрещены NOTICE
    u
    -
    Аудитория – исполнение команд /names и /who #channel выводит только операторов - канала
    V
    -
    Не разрешён /invite
    v <nick>
    -
    Даёт право голоса пользователям. (Могут говорить на каналах с +m)
    z
    -
    - Зайти на канал могут только клиенты с защищённым соединением (SSL)
    -

     

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Режим
    -
    Описание
    -
    Режимы пользователя
    -
    A
    -
    Администратор сервера (устанавливается в блоке Oper)
    a
    -
    Администратор сервисов (устанавливается в блоке Oper)
    B
    -
    Помечает вас как бота :)
    C
    -
    - Помощник администратора [co-administrator] (устанавливается в блоке Oper)
    d
    -
    Вы не сможете получать сообщения на каналах [channel PRIVMSGs] (за исключением - текста, который начинается с указанных в set::channel-command-prefix символов)
    G
    -
    Фильтрует маты во всех ваших сообщениях
    g
    -
    - Можно посылать и читать globops и locops
    H
    -
    Скрывает статус ирцоператора (только для ирцоператоров)
    h
    -
    Доступен для помощи (оператор помощи) (устанавливается в блоке Oper)
    i
    -
    Невидим (не показывается при /who)
    N
    -
    Администратор сети (устанавливается в блоке Oper)
    O
    -
    Локальный ирцоператор (устанавливается в блоке Oper)
    o
    -
    Глобальный ирцоператор (устанавливается в блоке Oper)
    p
    -
    Скрывает каналы, на которых вы находитесь (выводимые по команде /whois)
    q
    -
    - Вас могут кикнуть только U:Lines (только для администраторов сервисов)
    R
    -
    Позволяет принимать сообщения и нотисы [PRIVMSG/NOTICE] только от - зарегистрированных пользователей (+r)
    r
    -
    - Показывает, что ник зарегистрирован
    S
    -
    Используется для защиты сервисов
    s
    -
    Может видеть уведомления сервера (смотрите секцию 3.3 - для более детальной информации)
    T
    -
    Отклоняет получение CTCP
    t
    -
    Сообщает, что вы используете /vhost
    V
    -
    Помечает вас как пользователя WebTV
    v
    -
    Разрешает получать уведомления о потенциально опасных отклоненных DCC запросах
    W
    -
    Позволяет видеть, когда на вас выполняют команду /whois (только для - ирцоператоров)
    w
    -
    Может читать сообщения wallop
    x
    -
    Выдаёт пользователю скрытый хост
    z
    -
    Указывает, что вы подключены к серверу через зашифрованное SSL-соединение
    -

    -
    -

    7 – Команды пользователя и оператора

    -
    -

    Замечание: документация, доступная по /helpop, более информативна, используйте /helpop - command (или /helpop ?command если вы оператор) для получения - более подробной информации о команде.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Команда
    -
    Описание
    -
    Кто
    -
    nick <новый_ник>Изменяет ваш ник. Уведомляет других, что вы изменили ник
    -
    Все
    whois <ник>Отображает информацию о пользователе, включая полное имя, хост, каналы, на - которых находится пользователь и статус оператора
    -
    Все
    who <маска>Who позволяет искать пользователей. Маска включает в себя: ник, #канал, - хостмаску (*.attbi.com)
    -
    Все
    whowas <ник> <максимум_ответов>Показывает информацию, когда ник отсоединился от сети. Поле - <максимум_ответов> необязательно и ограничивает количество найденных - результатов.
    -
    Все
    ison <ник1 ник2 ник3 ...>Позволяет проверить, находится ли пользователь (или несколько пользователей) в - сети. Обычно используется для скриптов.
    -
    Все
    join <канал1,канал2, ...>Позволяет вам заходить на каналы. /join #канал1,#канал2,#канал3 позволяет зайти - на несколько каналов одной командой. Команда /join 0 позволяет покинуть сразу - все каналы.Все
    cycle <канал1, канал2, ...>Перезаходит на указанный(-ые) канал(-ы). Команда эквивалентна 2-м подряд идущим - командам PART и JOIN.Все
    motd <сервер>Показывает motd сервера. Добавляя имя сервера, можно увидеть motd других - серверов.
    -
    Все
    rules <сервер>Показывает ircd.rules сервера. Если дополнительно указано имя сервера, то - позволяет просмотреть правила на указанном сервереВсе
    lusers <сервер> - Показывает текущее и максимальное количество пользователей, как локальных, так - и глобальных. Если дополнительно указано имя сервера, то можно посмотреть - статистику на других серверах.
    -
    Все
    mapПоказывает карту сетиВсе
    quit <причина>Отключает вас от сервера. Если указана причина, она будет показана на всех - каналах при выходе.Все
    ping <пользователь>Посылает запрос PING пользователю. Используется для проверки соединения и лага. - Сервера используют пинги для того, чтобы определить, подключены ли пользователи - или уже отключились.
    -
    Все
    version <ник>Посылает запрос CTCP Version пользователю. Если клиент пользователя - сконфигурирован, то он ответит своей версией.
    -
    Все
    linksПоказывает список всех серверов, прилинкованных к сети.Все
    Admin <сервер>Показывает информацию об администраторе сервера. Если указан сервер, то покажет - информацию об администраторе указанного сервера.
    -
    Все
    userhost <ник>Показывает хост пользователя по нику. Используется для скиптов.
    -
    Все
    topic <канал> <топик>Topic <канал> покажет текущий топик указанного канала. Topic - <канал> <топик> изменит топик на указанном канале.
    -
    Все
    invite <ник> <канал>Приглашает указанного пользователя на указанный канал (необходимо иметь - статус  оператора канала).
    -
    ОператорКанала
    kick <канал, канал> <пользователь, пользователь> - <причина>Выбрасывает пользователя(ей) с канала(ов). Причина может быть не указана.
    -
    ОператорКанала
    away <причина>Помечает вас ушедшим. Причина может быть не указана.
    -
    Все
    Watch +-<ник> +-<ник>
    -
    Watch - это новая система уведомлений в UnrealIRCd, которая работает быстрее и - меньше нагружает сеть, чем старая. Сервер посылает вам сообщение, когда любой - ник из вашего листа watch заходит или выходит. Лист watch НЕ ЗАПОМИНАЕТСЯ МЕЖДУ - СЕССИЯМИ, поэтому вы или ваш скрипт должны добавлять ники в лист watch каждый - раз при подключении к серверу.
    -
    All
    helpop ?<топик> или !<топик>
    -
    HelpOp - это новая система помощи по IRC серверу. Вы можете напечатать /HELPOP - ? <help system topic> или /HELPOP ! <вопрос>. "?" в /HELPOP значит - запрос в систему помощи, и если вы не получили ответа, то, указав перед вашим - вопросом '!', запрос пойдёт операторам помощи. Если не указаны ни ? ни !, тогда - запрос сначала пойдёт в систему помощи, и если не будет найден ответ, он будет - переадресован операторам помощи.Все
    list <строка поиска> - Если не указана строка поиска, то по умолчанию будет получен весь - неотфильтрованный список каналов. Ниже указаны опции, которые можно - использовать. +

    +

    Если необходимо разделить блоки set, можно записать опции в одну строку.
    + Пример:
    + set { options { hide-ulines; no-stealth; }; };
    +

    +

    set::kline-address <адрес-email>;
    + Адрес электронной почты, который будет выдаваться всем пользователям, попавшим + в K:line. Данное значение должно быть указано.

    +

    set::gline-address <адрес-email>;
    + Адрес электронной почты, который будет выдаваться всем пользователям, попавшим + в G:line.

    +

    set::modes-on-connect <+режимы>;
    + Режимы, устанавливаемые для пользователей при их подключении.

    +

    set::snomask-on-connect <+режимы>
    + SNOMASKs, устанавливаемые для пользователей при их подключении.

    +

    set::modes-on-oper <+режимы>;
    + Режимы, устанавливаемые для пользователей при удачном выполнении команды /oper.

    +

    set::snomask-on-oper <+режимы>;
    + SNOMASKs, устанавливаемые для пользователей при удачном выполнении команды + /oper.

    +

    set::modes-on-join <+режимы>;
    + Режимы, устанавливаемые на канале при его создании. Не все режимы возможно + установить, используя эту опцию (+qaohvbeOAzlLk НЕЛЬЗЯ установить).

    +

    set::restrict-usermodes <режимы>
    + Запрещает пользователям устанавливать/снимать ссебя указанные режимы (не + используйте + или -).
    + К примеру, можно установить режим +G в modes-on-connect и G в + restrict-usermodes, тогда для всех пользователей будет принудительно установлен + +G, и они не смогут выполнить -G.

    +

    set::restrict-channelmodes <режимы>
    + Запрещает пользователям устанавливать/снимать указанные режимы канала (не + используйте + или -).
    + К примеру, можно установить +G в modes-on-join и G в restrict-channelmodes, + таким образом на всех (новых) каналах принудительно будет установлен +G и будет + невозможно выполнить -G.
    + ЗАМЕЧАНИЕ: эти режимы все-таки можно установить через сервисы, используя MLOCK. + К сожалению, сложно сказать, чем этозакончится, поэтому лучше уточнить у + авторов сервисов.

    +

    set::restrict-extendedbans <типы|*>
    + Запрещает пользователям использовать расширенные баны ("*") или отключает + использование указанных банов (например: "qc").

    +

    set::auto-join <каналы>;
    + Канал(-ы), куда принудительно будет заброшен пользователь при подключении к + серверу. Чтобы определить несколько каналов, необходимо разделить их запятыми.
    + [Замечание: имя канала(-ов) должно быть в кавычках, т.е.: auto-join "#chan";]

    +

    set::oper-auto-join <каналы>;
    + Каналы(ы), куда будет заброшен пользователь при удачном выполнении команды + /oper. Чтобы определить несколько каналов, необходимо разделить их запятыми.
    + [Замечание: имя канала(ов) должно быть в кавычках, т.е.: oper-auto-join + "#chan";]

    +

    set::anti-spam-quit-message-time <длительность>;
    + Время, в течение которого пользователь должен быть подключен к серверу, чтобы + отобразилось его сообщение о выходе (/quit). Используется для предотвращения + спама. Длительность задаётся числовой строкой, где d значит дни, h - часы, m - + минуты и s - секунды. К примеру 1d2h3m значит 1 день, 2 часа и 3 минуты.

    +

    set::prefix-quit <префикс-выхода>;
    + Устанавливает текст, который используется как префикс сообщения о выходе. Если + опция установлена в 0, то используется стандартный "Quit:".

    +

    set::static-quit <сообщение-выхода>;
    + Устанавливает статическое сообщение о выходе, которое будет использоваться + всегда, когда пользователь отключается от сети. Необходим + anti-spam-quit-message-time и set::prefix-quit. Отключения из-за ошибок связи + НЕ заменяются сообщением static-quit.

    +

    set::static-part <no|yes|part сообщение>;
    + Значение 'yes' будет пропускать все сообщения при выходе с канала, значение + 'no' не изменяет работу /part, всё остальное будет интерпретировано как + сообщение при выходе с канала (например: static-part "Bye!"), что может весьма + раздражать, поэтому аккуратнее используйте данный параметр.

    +

    set::who-limit <предел>;
    + Устанавливает максимальное количество выводимых совпадений, возвращаемых + командой /who. Если данная опция не установлена, то ограниченийне будет.

    +

    set::silence-limit <предел>;
    + Устанавливает максимальное количество вхождений в список SILENCE. Если + директиване задана, то по умолчанию устанавливается 15.

    +

    set::maxbans <предел>;
    + Устанавливает максимально возможное количество банов (+b) на канале. По + умолчанию - 60. Если вы изменяете данную величину, ознакомьтесь с параметром + maxbanlength (см. дальше)!

    +

    set::maxbanlength <предел>;
    + Подобно set::maxbans, но устанавливает максимальное количество символов для + всех банов, сложенных вместе, т.е. лимит на максимальный объем памяти для + банов, возможный для канала. Значение по умолчание - 2048 (байт). Исходя из + значения по умолчанию для maxbans (60) можно получить 2048:60=34 символа в + среднем на один бан.

    +

    set::oper-only-stats <список-stats>;
    + Устанавливает список флагов (без разделителей) команды stats, которые могут + использовать только операторы. Оставьте значение пустым, чтобы пользователи + могли использовать все флаги, или укажите *, чтобы пользователи не могли + использовать ни одного флага. Могут быть определены только короткие флаги + команды /stats.

    +

    set::oper-only-stats {<флаг-stats>; <флаг-stats>;};
    + Устанавливает список флагов команды stats, которые могут использоваться только + операторами. Работает только с длинными флагами stats.

    +

    set::maxchannelsperuser <число-каналов>;
    + Определяет максимальное количество каналов, на которых одновременно может + присутствовать пользователь.

    +

    set::maxdccallow <количество-вхождений>;
    + Определяет максимальное число вхождений в список DCCALLOW для пользователя.

    +

    set::channel-command-prefix <префиксы-команд>;
    + Определяет символы-префиксы для сервисов для сообщений-команд на канале. + Сообщения, начинающиеся с любого из указанных символов будут посланы, даже если + клиент в режиме +d. Значение по умолчанию "`!.".

    +

    set::allowed-nickchars { <список> };
    + Кодировка/языки, допустимые в никах, смотрите Использование + национальных наборов символов в никах.

    +

    set::allow-userhost-change + [never|always|not-on-channels|force-rejoin]
    + Определяет, что происходит, если изменяется user@host + (+x/-x/chghost/chgident/setident/vhost/ и др.).
    + never запрещает все команды, изменяющие user@host, always разрешает + эти команды, даже если пользователь находится на канале(-ах) (может привести к + десинхронизации клиента) [по умолчанию], not-on-channels разрешает эти + команды если пользователь не находится ни на одном канале, force-rejoin принудительно + заставит перезайти на все каналы и, если необходимо, даст оператора, право + голоса и др.

    +

    set::options::hide-ulines;
    + При наличии этой опции сервера U-line будут скрыты в запросе по команде /links + от не-операторов.

    +

    set::options::flat-map;
    + При наличии этой опции все сервера по команде /map и /linksбудут выглядеть, как + будто напрямую прилинкованы к данному серверу (т.е. невозможно определить, куда + и какой сервер прилинкован). Это небольшая уловка против атак типа (D)DoS, т.к. + злоумышленники не смогут быстро определить уязвимые сервера в сети.

    +

    set::options::show-opermotd;
    + При наличии этой опции пользователю, успешно выполнившему /oper, будет показан + opermotd.

    +

    set::options::identd-check;
    + При наличии этой опции у клиента при подключении будет проверен сервер identd; + значение, которое он вернёт,будет использоваться в качестве имени пользователя. + Если не пришёл ответ или сервер identd не существует, то указанное + пользователем имя будет с префиксом ~. Если опцияне установлена, никакой + проверки не происходит.

    +

    set::options::show-connect-info;
    + При наличии этой опции при подключении пользователюбудут показаны уведомления + "ident request", "hostname lookup" и д.р..

    +

    set::options::dont-resolve;
    + Если хосты пользователей при подключении не определяются, можно указать эту + опцию. Это может пригодиться для ускорения соединения, если большинство ваших + пользователей не имеют хоста.
    + Замечание: если будет установлена эта опция, вы не сможете использовать блоки + allow, основанные на хостах.

    +

    set::options::mkpasswd-for-everyone;
    + Позволяет использовать команду /mkpasswd всем, а не только операторам, + использование команды не-операторами отправляется сномаске EYES.

    +

    set::options::allow-part-if-shunned;
    + Позволяет пользователям, на которых установлен shun, использовать /part.

    +

    set::options::fail-oper-warn;
    + При наличии этой опции пользователь будет уведомлён о том, что его неудачная + попытка стать оператором (/oper) была зафиксирована.

    +

    set::dns::timeout <интервал-времени>;
    + Интервал времени, определяющий таймаут DNS-сервера. Это строка, где d означает + дни, h - часы, m - минуты и s - секунды. К примеру, 1d2h3m означает 1 день, 2 + часа и 3 минуты.

    +

    set::dns::retries <количество-повторов>;
    + Число, определяющее количество попыток запроса DNS перед выдачей сообщения об + ошибке.

    +

    set::dns::nameserver <имя-dns-сервера>;
    + Определяет имя сервера (hostname), который будет использован в качестве DNS + запросов.

    +

    set::dns::bind-ip <ip>;
    + Привязка к определенному IP для DNS-запросов, очень редко используется.

    +

    set::network-name <имя-сети>;
    + Определяет имя сети, в которой запущен сервер. Желательно, чтобы эта переменная + была одинаковой на всех серверах в сети.

    +

    set::default-server <имя-сервера>;
    + Определяет имя сервера по умолчанию, которое сообщается пользователям, если + текущий сервер полон.

    +

    set::services-server <имя-сервера>;
    + Определяет имя сервера, к которому подключены сервисы. Если у вас нет сервисов, + необходимо установить значение вроде services.yournet.com.

    +

    set::stats-server <имя-сервера>;
    + Устанавливает имя сервера, где находится бот статистики. Если статистика не + запущена, можно оставить значение пустым.

    +

    set::help-channel <канал-помощи>;
    + Устанавливает название канала помощи.

    +

    set::cloak-keys { "ключ1"; "ключ2"; "ключ3"; };
    + Устанавливает ключи, используемые для генерации хоста при +x host. Данные + значения должны быть одинаковыми на всех серверах, иначе серверы не соединятся. + Каждый из 3-х set::cloak-keys:: должен быть строкой в 5-100 + символов(желательно10-20), содержащий смесь прописных (a-z), заглавных (A-Z) + букв и цифр (0-9). Замечание: значения ключей зависят от используемого вами + модуля скрытности, при использовании нестандартного модуля значения могут быть + другими.

    +

    set::hiddenhost-prefix <значение-префикса>;
    + Определяет префикс, который используется для зашифрованных хостов (+x). Обычно + это 3 или 4 буквы, представляющие название сети.

    +

    set::hosts::local <хост-локального-оператора>;
    + Определяет хост, который будет назначен локальным операторам при установке на + них режима +x. Можно определить значение в виде username@host.

    +

    set::hosts::global <хост-глобального-оператора>;
    + Определяет хост, который будет назначен глобальным операторам при установке на + них режима +x. Можно определить значение в виде username@host.

    +

    set::hosts::coadmin <хост-помощника-администратора>;
    + Определяет хост, который будет назначен помощникам администратора при установке + на них режима +x. Можно определить значение в виде username@host.

    +

    set::hosts::admin <хост-администратора>;
    + Определяет хост, который будет назначен администраторам при установке на них + режима +x. Можно определить значение в виде username@host.

    +

    set::hosts::servicesadmin <хост-сервис-администратора>;
    + Определяет хост, который будет назначен администраторам сервисов при установке + на них режима +x. Можно определить значение в виде username@host.

    +

    set::hosts::netadmin <хост-администратора-сети>;
    + Определяет хост, который будет назначен администраторам сети при установке на + них режима +x. Можно определить значение в виде username@host.

    +

    set::hosts::host-on-oper-up <yes/no>;
    + Если установлено в yes, то флаг H/get_host будет учтен, и при удачной попытке + команды /oper автоматически будет установлен режим +x. Если установлено в no, + чтобы получить хост оператора пользователь должен установить флаг +x вручную + (см. выше set::hosts).

    +

    set::ssl::egd <имя-файла>;
    + Определяет поддержку EGD (Entropy Gathering Daemon). Если используется OpenSSL + 0.9.7 или выше, тогда будет произведен поиск в /var/run/egd-pool, + /dev/egd-pool, /etc/egd-pool, и /etc/entropy, поэтому имя-файла можно опустить, + для этого просто определите set::ssl::egd без указания имени файла. Если + используется OpenSSL версии ниже, чем 0.9.7, или вы хотите использовать EGD + сокет, находящийся в другом месте, надо указать имя файла UNIX Domain Socket, + на котором прослушивается EGD.

    +

    set::ssl::certificate <имя-файла>;
    + Определяет имя файла, в котором указан SSL сертификат сервера.

    +

    set::ssl::key <имя-файла>;
    + Определяет имя файла, в котором находится приватный ключ SSL.

    +

    set::ssl::trusted-ca-file <имя-файла>;
    + Определяет имя файла, где указаны сертификаты доверенных CA.

    +

    set::ssl::options::fail-if-no-clientcert;
    + Запрещает пользователей без сертификата.

    +

    set::ssl::options::no-self-signed;
    + Блокирует подключения пользователей с самоподписанными сертификатами.

    +

    set::ssl::options::verify-certificate;
    + Позволяет серверу определять правильность SSL сертификата прежде, чем разрешить + соединение.

    +

    set::throttle::period <длительность>
    + Указывает, сколько времени должен подождать пользователь перед повторным + подключением, если он превысил лимит set::throttle::connections.

    +

    set::throttle::connections <количество>;
    + Сколько раз должен подключиться пользователь с одним и тем же хостом, чтобы + сработал троттлинг (защита от join-флуда).

    +

    set::ident::connect-timeout <время>;
    + Время в секундах, после которого прекращаются попытки соединения с + идент-сервером [по умолчанию 10 секунд (10s)].

    +

    set::ident::read-timeout <время>;
    + Время в секундах, после которого прекращается ожидание ответа от идент-сервера + [по умолчанию 30 секунд (30s)].

    +

    set::anti-flood::unknown-flood-bantime <время>;
    + Определяет, сколько времени будет забанен флудер с неизвестного подключения + [unknown connection flooder].

    +

    set::anti-flood::unknown-flood-amount <количество>;
    + Определяет количество данных (в килобайтах) с неизвестного подключения, за + превышение которого пользователь будет отключен от сети [killed].

    +

    set::anti-flood::away-flood <количество>:<период>;
    + Защита от "away" флуда: ограничивает использование команды /away 'количество' + за 'период' секунд. Необходимо, чтобы NO_FLOOD_AWAY был включён в config.h. + Пример:away-flood 5:60s; - максимум 5 /away команд за 60 секунд.

    +

    set::anti-flood::nick-flood <количество>:<период>;
    + Защита от флуда сменой ников: ограничивает количество изменений ников + ('количество' за 'период' секунд). Для примера: nick-flood 4:90 означает, + что ник можно изменить 4 раза за 90 секунд, по умолчанию установлено 3 + изменения за 60 секунд.

    +

    set::default-bantime <время>;
    + Определяет длительность бана при использовании команд /kline, /gline, /zline, + /shun и остальных без указания параметра времени (вроде /gline + *@some.nasty.isp). По умолчанию ставится постоянный бан - 0. Пример: default-bantime + 90d;

    +

    set::modef-default-unsettime <значение>;
    + Для режима канала +f можно определить время его снятия, т.е. если установлено + значение 10, то +f [5j]:15 будет трансформировано в [5j#i10]:15. По умолчанию + значение не установлено и не используется.

    +

    set::modef-max-unsettime <значение>;
    + Максимальное количество минут для снятия режима +f (в +f + [5j#i<TIME>]:15), значение может быть от 0 до 255. По умолчанию 60 (= 1 + час).

    +

    set::ban-version-tkl-time <значение>;
    + Если при использовании команд вида zline/gline/и др. при бане по версии + определен 'action', то необходимо определить, сколько времени будет забанен + данный ip, по умолчанию - 86400 (1 день).

    +

    set::spamfilter::ban-time <значение>;
    + Тоже, что и выше, только для *lines/shuns, добавленных спамфильтром.

    +

    set::spamfilter::ban-reason <причина>;
    + Причина, которая будет указана при добавлении бана спамфильтром.

    +

    set::spamfilter::virus-help-channel <канал>;
    + Канал, используемый в качестве действия 'viruschan' в спамфильтре.

    +

    set::spamfilter::virus-help-channel-deny <yes|no>;
    + Если установлено в yes (или в 1), то обычным пользователям, пытающимся зайти на + канал virus-help-channel, будет сообщено, что попасть на канал можно только по + приглашениям ('invite only'). Только операторы, люди, попавшие под спамфильтр, + и те, которых пригласили на канал, могут туда зайти.

    +

    set::spamfilter::except <канал(ы)>;
    + Канал(-ы), которые исключаются от фильтрации спама (т.е. никаких действий + предпринятоне будет). Это может быть один канал, либо несколько, разделённых + запятыми. Пример: except "#help,#spamreport";

    +

    set::check-target-nick-bans <yes|no>;
    + Где бы пользователь не менял свой ник, будет происходить проверка на бан для + НОВОГО ника. Если он будет попадать под бан, то ник не изменится. Значение по + умолчанию yes.

    +

    + +

    5 – Дополнительные файлы +

    +
    В дополнение к указанным у Unreal есть ещё другие + конфигурационные файлы, такие как MOTD, OperMOTD, BotMOTD и Rules. Ниже + приведены имена файлов и их назначение.
    + Обратите внимание, что motd файлы (всех типов) и файлы правил могут быть + определены в блоке tld, просто данные имена файлов используются по умолчанию (и + для удалённых MOTD/RULES). +

    + + + + + + + + + + + + + + + + + + + + + +
    ircd.motdОтображается по команде /motd и (если нет ircd.smotd) при подключении + пользователей
    ircd.smotdОтображается только при подключении (сокращённый MOTD)
    ircd.rulesОтображается по команде /rules
    oper.motdОтображается по команде /opermotd или при получении статуса оператора /oper
    bot.motdОтображается по команде /botmotd
    +

    +
    +

    6 – Режимы пользователя и канала + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    Режим
    +
    +
    Описание
    +
    +
    Режимы канала
    +
    +
    A
    +
    Зайти могут только администраторы канала
    +
    a <nick>
    +
    Делает пользователя администратором канала
    +
    b <nick!user@host>
    +
    +
    Банит указанного пользователя на канале
    +
    c
    +
    ANSI цвета не могут быть отправлены на канал
    +
    C
    +
    на канале запрещены CTCP +
    +
    e <nick!user@host>
    +
    Исключение от бана – если кто-то попадает под него, он может зайти на канал, + даже если он забанен
    +
    f [<число><тип>]:<секунды>
    +
    Защита канала от флуда. См. секцию 3.12 для + подробного описания.
    +
    G
    +
    Включает на канале проверку цензуры. Проверяются слова из списка матов (блоки + Badword) и при необходимости заменяются. +
    +
    h <nick>
    +
    Устанавливает статус полуоператора
    +
    i
    +
    Необходимо приглашение, чтобы попасть на канал
    +
    I <nick!user@host>
    +
    +
    Исключения приглашений ("invex") - если пользователь попадает, то требование +i + опускается при входе на канал.
    +
    j <количество:секунды>
    +
    Ограничивает количество входов на канал пользователя до количество в + течение секунды секунд
    +
    K
    +
    Запрещено использование /knock
    +
    k <ключ>
    +
    Устанавливает ключ (пароль), необходимый для входа на канал
    +
    l <##>
    +
    Устанавливает максимальное количество пользователей на канале
    +
    L <канал>
    +
    Если превышено число, установленное режимом +l, то пользователи будут + отправлены на указанный канал
    +
    M
    +
    Говорить могут только зарегистрированные пользователи (+r)
    +
    m
    +
    Модерируемый канал. Говорить могут только пользователи с режимами +v/o/h
    +
    N
    +
    На канале запрещено изменение ников
    +
    n
    +
    Не разрешены сообщения извне
    +
    O
    +
    Зайти могут только ирц-операторы
    +
    o <nick>
    +
    Устанавливает статус оператора канала
    +
    p
    +
    Канал становится приватным
    +
    q <nick>
    +
    Устанавливает статус владельца канала
    +
    Q
    +
    Только серверы из U:Lines могут кикать пользователей
    +
    R
    +
    Для входа на канал необходимо, чтобы ники были зарегистрированы
    +
    S
    +
    Вырезает из сообщений все цвета
    +
    s
    +
    Канал становится секретным
    +
    t
    +
    Только операторы канала могут устанавливать топик
    +
    T
    +
    На канале запрещены NOTICE
    +
    u
    +
    Аудитория – исполнение команд /names и /who #channel выводит только операторов + канала
    +
    V
    +
    Не разрешён /invite
    +
    v <nick>
    +
    Даёт право голоса пользователям. (Могут говорить на каналах с +m)
    +
    z
    +
    Зайти на канал могут только клиенты с защищённым соединением (SSL)
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    Режим
    +
    +
    Описание
    +
    +
    Режимы пользователя
    +
    +
    A
    +
    Администратор сервера (устанавливается в блоке Oper)
    +
    a
    +
    Администратор сервисов (устанавливается в блоке Oper)
    +
    B
    +
    Помечает вас как бота :)
    +
    C
    +
    Помощник администратора [co-administrator] (устанавливается в блоке Oper)
    +
    d
    +
    Вы не сможете получать сообщения на каналах [channel PRIVMSGs] (за исключением + текста, который начинается с указанных в set::channel-command-prefix символов)
    +
    G
    +
    Фильтрует маты во всех ваших сообщениях
    +
    g
    +
    Можно посылать и читать globops и locops
    +
    H
    +
    Скрывает статус ирцоператора (только для ирцоператоров)
    +
    h
    +
    Доступен для помощи (оператор помощи) (устанавливается в блоке Oper)
    +
    i
    +
    Невидим (не показывается при /who)
    +
    N
    +
    Администратор сети (устанавливается в блоке Oper)
    +
    O
    +
    Локальный ирцоператор (устанавливается в блоке Oper)
    +
    o
    +
    Глобальный ирцоператор (устанавливается в блоке Oper)
    +
    p
    +
    Скрывает каналы, на которых вы находитесь (выводимые по команде /whois)
    +
    q
    +
    Вас могут кикнуть только U:Lines (только для администраторов сервисов)
    +
    R
    +
    Позволяет принимать сообщения и нотисы [PRIVMSG/NOTICE] только от + зарегистрированных пользователей (+r)
    +
    r
    +
    Показывает, что ник зарегистрирован
    +
    S
    +
    Используется для защиты сервисов
    +
    s
    +
    Может видеть уведомления сервера (смотрите секцию 3.3 + для более детальной информации)
    +
    T
    +
    Отклоняет получение CTCP
    +
    t
    +
    Сообщает, что вы используете /vhost
    +
    V
    +
    Помечает вас как пользователя WebTV
    +
    v
    +
    Разрешает получать уведомления о потенциально опасных отклоненных DCC запросах
    +
    W
    +
    Позволяет видеть, когда на вас выполняют команду /whois (только для + ирцоператоров)
    +
    w
    +
    Может читать сообщения wallop
    +
    x
    +
    Выдаёт пользователю скрытый хост
    +
    z
    +
    Указывает, что вы подключены к серверу через зашифрованное SSL-соединение
    +

    +
    +

    7 – Команды пользователя и оператора

    +
    +

    Замечание: документация, доступная по /helpop, более информативна, используйте /helpop + command (или /helpop ?command если вы оператор) для получения + более подробной информации о команде.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    Команда
    +
    +
    Описание
    +
    +
    Кто
    +
    nick <новый_ник>Изменяет ваш ник. Уведомляет других, что вы изменили ник
    +
    Все
    whois <ник>Отображает информацию о пользователе, включая полное имя, хост, каналы, на + которых находится пользователь и статус оператора
    +
    Все
    who <маска>Who позволяет искать пользователей. Маска включает в себя: ник, #канал, + хостмаску (*.attbi.com)
    +
    Все
    whowas <ник> <максимум_ответов>Показывает информацию, когда ник отсоединился от сети. Поле + <максимум_ответов> необязательно и ограничивает количество найденных + результатов.
    +
    Все
    ison <ник1 ник2 ник3 ...>Позволяет проверить, находится ли пользователь (или несколько пользователей) в + сети. Обычно используется для скриптов.
    +
    Все
    join <канал1,канал2, ...>Позволяет вам заходить на каналы. /join #канал1,#канал2,#канал3 позволяет зайти + на несколько каналов одной командой. Команда /join 0 позволяет покинуть сразу + все каналы.Все
    cycle <канал1, канал2, ...>Перезаходит на указанный(-ые) канал(-ы). Команда эквивалентна 2-м подряд идущим + командам PART и JOIN.Все
    motd <сервер>Показывает motd сервера. Добавляя имя сервера, можно увидеть motd других + серверов.
    +
    Все
    rules <сервер>Показывает ircd.rules сервера. Если дополнительно указано имя сервера, то + позволяет просмотреть правила на указанном сервереВсе
    lusers <сервер> + Показывает текущее и максимальное количество пользователей, как локальных, так + и глобальных. Если дополнительно указано имя сервера, то можно посмотреть + статистику на других серверах.
    +
    Все
    mapПоказывает карту сетиВсе
    quit <причина>Отключает вас от сервера. Если указана причина, она будет показана на всех + каналах при выходе.Все
    ping <пользователь>Посылает запрос PING пользователю. Используется для проверки соединения и лага. + Сервера используют пинги для того, чтобы определить, подключены ли пользователи + или уже отключились.
    +
    Все
    version <ник>Посылает запрос CTCP Version пользователю. Если клиент пользователя + сконфигурирован, то он ответит своей версией.
    +
    Все
    linksПоказывает список всех серверов, прилинкованных к сети.Все
    Admin <сервер>Показывает информацию об администраторе сервера. Если указан сервер, то покажет + информацию об администраторе указанного сервера.
    +
    Все
    userhost <ник>Показывает хост пользователя по нику. Используется для скиптов.
    +
    Все
    topic <канал> <топик>Topic <канал> покажет текущий топик указанного канала. Topic + <канал> <топик> изменит топик на указанном канале.
    +
    Все
    invite <ник> <канал>Приглашает указанного пользователя на указанный канал (необходимо иметь + статус оператора канала).
    +
    ОператорКанала
    kick <канал, канал> <пользователь, пользователь> + <причина>Выбрасывает пользователя(ей) с канала(ов). Причина может быть не указана.
    +
    ОператорКанала
    away <причина>Помечает вас ушедшим. Причина может быть не указана.
    +
    Все
    Watch +-<ник> +-<ник>
    +
    Watch - это новая система уведомлений в UnrealIRCd, которая работает быстрее и + меньше нагружает сеть, чем старая. Сервер посылает вам сообщение, когда любой + ник из вашего листа watch заходит или выходит. Лист watch НЕ ЗАПОМИНАЕТСЯ МЕЖДУ + СЕССИЯМИ, поэтому вы или ваш скрипт должны добавлять ники в лист watch каждый + раз при подключении к серверу.
    +
    All
    helpop ?<топик> или !<топик>
    +
    HelpOp - это новая система помощи по IRC серверу. Вы можете напечатать /HELPOP + ? <help system topic> или /HELPOP ! <вопрос>. "?" в /HELPOP значит + запрос в систему помощи, и если вы не получили ответа, то, указав перед вашим + вопросом '!', запрос пойдёт операторам помощи. Если не указаны ни ? ни !, тогда + запрос сначала пойдёт в систему помощи, и если не будет найден ответ, он будет + переадресован операторам помощи.Все
    list <строка поиска>Если не указана строка поиска, то по умолчанию будет получен весь + неотфильтрованный список каналов. Ниже указаны опции, которые можно + использовать. +
    + >количество - показывает каналы, на которых больше людей, чем + <количество> +
    + <количество - показывает каналы, на которых людей меньше, чем + <количество>.
    + C>количество - показывает каналы, созданные в интервале от + <количество> минут назад до настоящего времени.
    + C<количество - показывает каналы, созданные раньше, чем <количество> + минут тому назад.
    + T>количество - показывает каналы, у которых топики старше, чем + <количество> минут (т.е. не изменялись за последние <количество> + минут.
    + T<количество - показывает каналы, у которых топик новее, чем + <количество> минут.
    + *маска* - список каналов, совпадающих с *маска*
    + !*маска* - список каналов, не совпадающих с *маска*
    +
    Все
    Knock <канал> <сообщение>
    +
    Позволяет постучатся + [knock] на + invite-only канал, куда можно + попасть только по приглашениям. Не будет работать, если на каналах + установлены режимы +K или +V или если вы забанены.
    Все
    setnameПозволяет пользователям поменять свое ‘real + name’ без переподключения
    Все
    vhost <логин> <пароль>Скрывает ваш хост, используя виртуальный хост, предлагаемый сервером.
    +
    Все
    mode <канал/ник> <режим>
    +
    Позволяет установить режимы пользователя и канала. Список режимов смотрите в + разделе Режимы Пользователя и Канала.
    +
    Все
    creditsСписок всех, кто помогал создавать UnrealIRCd
    +
    Все
    licenseПоказывает лицензию GNUВсе
    time <сервер>Показывает дату и время на сервере. Если указано имя сервера, то проверяет дату + и время на нем.
    +
    Все
    botmotd <сервер>
    +
    Отображает + bot.motd. Если указано имя сервера, отобразит bot.motd с указанного + сервера.Все
    identify <пароль>Отправляет ваш пароль системе сервисов для идентификации вашего ника.
    +
    Все
    identify <канал> <пароль>Отправляет ваш пароль системе сервисов для идентификации вас как владельца + канала.
    +
    Все
    dns <опция>Возвращает информацию о кэше DNS IRC сервера. Замечание: сейчас большинство + клиентов имеют встроенную команду DNS, поэтому вы должны будете воспользоваться + командой /raw DNS. Операторы могут указать l в качестве первого параметра + команды, чтобы получить список вхождений в кэш DNS.Все
    userip <ник>
    +
    Возвращает IP адрес пользователя.Все
    oper <пользователь> <пароль>
    +
    Даёт пользователю статус оператора, если он прописан в блоке Oper
    +
    Оператор
    wallops <сообщение>Отправляет сообщение всем пользователям с режимом +wОператор
    globops <сообщение>Отправляет сообщение всем операторамОператор
    chatops <сообщение>Отправляет сообщение всем операторам с режимом +cОператор
    locops <сообщение>Отправляет сообщение всем локальным операторамОператор
    adchat <сообщение>Отправляет сообщение всем администраторамОператор
    nachat <сообщение>Отправляет сообщение всем админстраторам сетиОператор
    kill <ник> <причина>Отключает пользователя от сети, причину можно не указывать.Оператор
    kline [+|-]<пользователь@хост | ник> [<длительность + бана> <причина>]Банит хостмаску со стороны используемого сервера. kline - это не глобальный + бан.
    + Длительность бана это: 1) время в секундах; 2) переменная времени в виде + '1d' (т.е. на 1 день); 3) '0' для постоянного бана. Время и причина + необязательны, если они не указаны, то значение будет взято из + set::default-bantime (по умолчанию: 0/постоянно) и будет указано 'no reason'.
    + Чтобы убрать kline используйте /kline -пользователь@хост
    Оператор
    zline [+|-]<*@ip> [<длительность бана> <причина>]Банит по IP адресу на вашем локальном сервере (не распространяется на всю + сеть). Смотрите синтаксис команды kline. Чтобы убрать, используйте /zline + -*@ip.
    +
    Оператор
    gline [+|-]<пользователь@хост | ник> [<длительность + бана> <причина>]
    +
    Добавляет глобальный бан на любого, кто попадает под маску. Смотрите синтаксис + команды kline. Чтобы убрать, используйте /gline -пользователь@хост.
    +
    Оператор
    shun [+|-]<пользователь@хост | ник> [<длительность + бана> <причина>]
    +
    Запрещает пользователю говорить и выполнять ЛЮБУЮ команду. Shun глобален (как + gline). Смотрите синтаксис команды kline. Чтобы убрать, используйте /shun + -пользователь@хост. +
    +
    Оператор
    gzline [+|-]<ip> <длительность бана> :<причина>
    +
    Добавляет глобальный zline. Смотрите синтаксис команды kline. Чтобы убрать + gzline, используйте /gzline -*@ip.
    +
    Оператор
    rehash <сервер> –<флаги>Осуществляет рехэш (Rehash - перечитать) конфигурационных файлов сервера. Если + указано имя сервера, то позволяет осуществить рехэш конфигурационного файла на + удалённом сервере. Доступны некоторые флаги:
    + -motd - Осуществляет рехэш только всех MOTD и RULES файлов (включая tld {})
    + -opermotd - осуществляет рехэш только файла OPERMOTD
    + -botmotd - осуществляет рехэш только файла BOTMOTD
    + -garbage - запускает сбор мусора
    +
    Оператор
    restart <пароль> <причина>
    +
    Перезапускает процесс IRCD. Необходим пароль, если присутствует блок drpass { + }. По желанию можно указать причину.
    +
    Оператор
    die <пароль>
    +
    Останавливает процесс IRCD. Пароль необходим, если присутствует блок drpass { + }.Оператор
    lag <сервер> +
    +
    Данная команда работает как Sonar или Traceroute для IRC серверов. Если вы + напечатаете /LAG irc.fyremoon.net то вам ответит каждый сервер, через который + проходит соединение, с указанием времени. Используется для нахождения задержек.
    +
    Оператор
    sethost <новый_хост>Позволяет изменить ваш vhost на любой.
    +
    Оператор
    setident <новый_идент>
    +
    Позволяет изменить ваш идент на любой
    +
    Оператор
    chghost <ник> <новый_хост>
    +
    Позволяет изменить хост для подключенного пользователя
    +
    Оператор
    chgident <ник> <новый_идент>
    +
    Позволяет изменить идент для подключенного пользователя
    +
    Оператор
    chgname <ник> <новое_имя>
    +
    Позволяет изменить реальное имя [real name] подключенного пользователя
    +
    Оператор
    squit <сервер>
    +
    Отключает сервер от сети
    +
    Оператор
    connect <сервер> <порт> <сервер>Если указан только один сервер, то ваш текущий сервер попытается подключиться к + указанному. Если указаны 2 сервера, то первый будет подключаться на указанный + порт ко второму.
    +
    Оператор
    dccdeny <маска_файла> <причина>
    +
    Добавляет в DCCDENY маску файла, тем самым блокируя его передачу.Оператор
    undccdeny <маска_файла>
    +
    Удаляет из DCCDENY указанную маску файла.Оператор
    sajoin <ник> <канал>, <канал>
    +
    Принудительно забрасывает пользователя на канал(-ы). Доступно только для + администраторов сети и сервисов.Оператор
    sapart <ник> <канал>, <канал>
    +
    Пользователь принудительно покидает канал(-ы). Доступно только для + администраторов сети и сервисов.
    +
    Оператор
    samode <канал> <режим>
    +
    Позволяет администраторам сети и сервисов изменить режимы канала без статуса + оператора канала.
    +
    Оператор
    rping <маска_сервера>
    +
    Вычисляет в миллисекундах задержку между серверами
    +
    Оператор
    trace <маска_сервера|ник>
    +
    Если будет указан ник, команда выдаст вам его класс и информацию о задержке. + Если указан сервер, команда покажет информацию о class/version/link.
    +
    Оператор
    opermotd +
    +
    Показывает файл OperMotd сервера
    +
    Оператор
    addmotd :<текст>
    +
    Добавит указанный текст в конец Motd
    +
    Оператор
    addomotd :<текст>
    +
    Добавит указанный текст в конец файла OperMotd
    +
    Оператор
    sdesc <Новое описание>
    +
    Позволяет администраторам сервера изменить информацию о своем сервере без его + перезапуска.
    +
    Оператор
    addline <текст>
    +
    Позволяет добавить строки в unrealircd.conf
    +
    Оператор
    mkpasswd <пароль>
    +
    Зашифровывает пароль, чтобы в зашифрованном виде его можно было добавить в + unrealircd.conf
    +
    Оператор
    tsctl offset +/- <время>
    +
    Настраивает встроенные часы в IRCD (НЕ используйте, если вы до конца не + понимаете, ЧТО делает эта команда)
    +
    Оператор
    tsctl time
    +
    Даёт отчёт о TSОператор
    tsctl alltimeДаёт отчёт о TS на ВСЕХ серверахОператор
    tsctl svstime <временное_смещение>
    +
    Устанавливает время TS на всех серверах (НЕ используйте, если вы до конца не + понимаете, ЧТО делает эта команда)
    +
    Оператор
    htm <опция>
    +
    Контролирует настройки режима повышенного трафика (high traffic mode). HTM + отключает некоторые команды пользователя (list, whois, who и другие) в случае + экстремально высокого трафика на сервере. Опции: +
    + -ON - заставляет сервер переключится в HTM +
    + -OFF - заставляет сервер выйти из HTM +
    + -NOISY - сервер будет уведомлять пользователей и администраторов, когда он + входит или выходит из режима HTM
    + -QUIET - сервер не будет уведомлять никого при входе/выходе в/из режима HTM
    + -TO <значение> - указывает, при какой величине входящего трафика + активировать HTM
    +
    Оператор
    stats <опция>
    +
    B - banversion - показывает список забаненых версий клиентов
    + b - badword - показывает список нецензурных слов
    + C - link - показывает список линк-блоков
    + d - denylinkauto - показывает список запрещённых линк-блоков (auto)
    + D - denylinkall - показывает список запрещённых линк-блоков (все)
    + e - exceptthrottle - показывает список исключений троттл-блоков
    + E - exceptban - показывает список исключений банов и tkl
    + f - spamfilter - показывает список спамфильтров
    + F - denydcc - показывает список запрещенных dcc
    + G - gline - показывает список gline и gzline
    + Расширенные флаги: [+/-mrs] [маска] [причина] [установлено]
    + m возвращает gline, попадающие/не попадающие под + указанную маску
    + r возвращает gline, попадающие/не попадающие под + указанную причину
    + s возвращает gline, которые были установлены/не были + установлены клиентами с указанным именем
    + I - allow - возвращает список allow-блоков
    + j - officialchans - показывает список оффициальных каналов сети
    + K - kline - показывает список блоков банов user/ban ip/except
    + l - linkinfo - показывает информацию о соединениях
    + L - linkinfoall - показывает всю информацию о соединениях
    + M - command - показывает, сколько раз использовалась каждая команда
    + n - banrealname - показывает список банов по настоящему имени[realname]
    + O - oper - показывает опер-блоки
    + P - port - показывает информацию о портах
    + q - sqline - показывает список SQLINE
    + Q - bannick - показывает список банов по нику
    + r - chanrestrict - показывает список блоков deny/allow каналов
    + R - usage - показывает информацию об использовании
    + S - set - показывает список блока set
    + s - shun - показывает список shun
    + Расширенные флаги: [+/-mrs] [маска] [причина] [установлено]
    + m Возвращает shun, попадающие/не попадающие под + указанную маску
    + r Возвращает shun, попадающие/не попадающие под + указанную причину
    + s Возвращает shun, которые были установлены/не + установлены клиентами с указанным именем +
    + t - tld - показывает список блоков tld
    + T - traffic - показывает информацию о траффике
    + u - uptime - показывает аптайм сервера и счётчик подключений
    + U - uline - показывает список блока ulines
    + v - denyver - показывает список блоков запрещённых для линковки версий серверов
    + V - vhost - показывает список блоков vhost
    + X - notlink - показывает список серверов, которые в данный момент не подключены
    + Y - class - показывает список блоков class
    + z - zip - показывает информацию о сжатии трафика от серверов, его + использующих (если включена поддержка zip-компрессии)
    + Z - mem - показывает информацию об использовании памяти
    +
    Все
    module
    +
    Список всех загруженных модулей + Все
    close
    +
    Данная команда отсоединяет от сервера все неизвестные соединения. + Оператор
    +

    +
    +

    8 – Советы/рекомендации по безопасности

    +
    +

    Если вас волнуют вопросы безопасности, данный раздел поможет получить + представление о возможных рисках. Вы можете использовать данный раздел, как + список рекомендаций для построения действительно надежной в плане безопасности + IRC-сети.

    +

    Список отсортирован по популярности/уровню риска наиболее часто используемых + атак:

    +
    +

    +

    8.1 Пароли
    +

    Выбирайте сложные пароли для операторов, линк-секций и др.:
    + - используйте смесь прописных и строчных букв и цифр ("Whbviwf5") и/или что-то + длинное ("blaheatsafish", "AlphaBeta555").
    + - НЕ ИСПОЛЬЗУЙТЕ ваши линк/оператор пароли такие же, как от почтовых ящиков, + форумов, паролей на ботов и т.п...
    +
    +

    +

    8.2 Не относящиеся к IRCD уязвимости
    +

    Гораздо больше шансов, что ваш сервер будет хакнут через + другую уязвимость, чем через баг в UnrealIRCd. К примеру, если на сервере + запущены ещё и http, dns, smtp и ftp сервисы, то риск возрастает. Также, если + сервер многопользовательский (т.е. у вас есть шелл), возрастает риск локальных + эксплоитов и плохих уровней доступа (см. далее). Этот риск наиболее опасен, так + что будьте внимательны при выборе поставщика шелла. +
    +

    +

    8.3 Разрешения[permissions] и конфигурационный файл
    +

    + Всегда проверяйте, правильность разрешений для вашей домашней директории и + директории UnrealIRCd, группы/остальные не должны иметь разрешение на чтение. + Иначе любой локальный пользователь может просто посмотреть ваш конфигурационный + файл, а в нём-то ваши пароли... Вкратце: chmod -R go-rwx /path/to/Unreal3.2 + если вы не уверены.
    + Другие вещи, относящиеся к данной проблеме: никогда не кладите ваш UnrealIRCd в + каталог вебсервера или в какую-нибудь другую разделяемую директорию. И для + бэкапов, удостоверьтесь, что вы имеете правильные разрешения (иногда часто + бывает, что всё защищено, а backup.tar.gz может прочитать любой человек).

    - >количество - показывает каналы, на которых больше людей, чем - <количество> + Если вы желаете зашифровать пароли везде, где только возможно, вам необходимо + скомпилировать сервер с поддержкой OpenSSL (вы же заботитесь о своей + безопасности?), тогда можно использовать sha1, ripemd160 или md5 + методы шифрации паролей . Если у вас остались зашифрованные блоки от + Unreal3.2.1 или более ранней версии, я предлагаю вам перезашифровать + (просто перезапустить /mkpasswd), потому что 3.2.1 была с некоторыми + уязвимостями.
    + Замечу, что это просто 'другой уровень защиты', так что если вы оставите старые + пароли, то они могут быть сломаны довольно легко. Если кто-то получит + доступ к вашему файлу конфигурации, можно узнать много интересных + вещей, таких как link::password-connect для атаки на другие сервера. +
    +

    +

    8.4 Проблемы, относящиеся к пользователям
    +

    + Это не специфика UnrealIRCd, но всё же есть вещи, зависимые от пользователей...
    + Всегда выбирайте ваших операторов и администраторов очень внимательно. И всегда + помните, что это - самое слабое звено. Может вы не полностью прочитали + данный документ, может ваш друг, как оператор, сделает что-то глупое. Например + расшарит свой жёсткий диск через netbios/kazaa/morpheus/.., получит + трояна, будет использовать простой пароль и проч. и проч. и проч. Не всё же + находится под вашим контролем.
    + И ещё, всегда очень внимательно выбирайте уровни привилегий для + людей(oper::flags), указывайте только самые необходимые. +
    +

    +

    8.5 SSL/SSH & сниффинг
    +

    + Используйте зашифрованное по SSL соединение между серверами и как + оператор, это защитит вас от перехвата трафика. Перехват трафика возможен, если + атакующий хакнул сервер где-то между вами и вашим сервером, тогда он может + видеть ВЕСЬ сетевой трафик, который проходит через него: смотреть все данные, + захватывать все пароли (логины операторов, сервисов и т.д.). По этому, + всегда используйте ssh вместо telnet. +
    +

    +

    8.6 Отказ в обслуживании (DoS) [или: как защитить мой хаб]
    +

    + Большинство сетей имеют печальный опыт атак флудеров или атак вида "отказ в + обслуживании". Большинство сетей имеют главный хаб-сервер, однако его забывают + защитить от атак.
    + Я вам объясню:
    + 1. Установите имя хаба, но
    + не добавляйте для него запись в dns. Данным образом, + атакующий не сможет преобразовать хост и
    - <количество - показывает каналы, на которых людей меньше, чем - <количество>.
    - C>количество - показывает каналы, созданные в интервале от - <количество> минут назад до настоящего времени.
    - C<количество - показывает каналы, созданные раньше, чем <количество> - минут тому назад.
    - T>количество - показывает каналы, у которых топики старше, чем - <количество> минут (т.е. не изменялись за последние <количество> - минут.
    - T<количество - показывает каналы, у которых топик новее, чем - <количество> минут.
    - *маска* - список каналов, совпадающих с *маска*
    - !*маска* - список каналов, не совпадающих с *маска*
    -
    Все
    Knock <канал> <сообщение>
    -
    Позволяет постучатся - [knock] - на - invite-only канал, куда можно попасть только по - приглашениям. Не будет работать, если на каналах установлены режимы +K или +V - или если вы забанены.
    -
    Все
    setnameПозволяет пользователям поменять свое ‘real - name’ без переподключения
    -
    Все
    vhost <логин> <пароль>Скрывает ваш хост, используя виртуальный хост, предлагаемый сервером.
    -
    Все
    mode <канал/ник> <режим>
    -
    Позволяет установить режимы пользователя и канала. Список режимов смотрите в - разделе Режимы Пользователя и Канала.
    -
    Все
    creditsСписок всех, кто помогал создавать UnrealIRCd
    -
    Все
    licenseПоказывает лицензию GNUВсе
    time <сервер>Показывает дату и время на сервере. Если указано имя сервера, то проверяет дату - и время на нем.
    -
    Все
    botmotd <сервер>
    -
    Отображает - bot.motd. Если указано имя сервера, отобразит - bot.motd с указанного сервера.Все
    identify <пароль>Отправляет ваш пароль системе сервисов для идентификации вашего ника.
    -
    Все
    identify <канал> <пароль>Отправляет ваш пароль системе сервисов для идентификации вас как владельца - канала.
    -
    Все
    dns <опция>Возвращает информацию о кэше DNS IRC сервера. Замечание: сейчас большинство - клиентов имеют встроенную команду DNS, поэтому вы должны будете воспользоваться - командой /raw DNS. Операторы могут указать l в качестве первого параметра - команды, чтобы получить список вхождений в кэш DNS.Все
    userip <ник>
    -
    Возвращает IP адрес пользователя.Все
    oper <пользователь> <пароль>
    -
    Даёт пользователю статус оператора, если он прописан в блоке Oper
    -
    Оператор
    wallops <сообщение>Отправляет сообщение всем пользователям с режимом +wОператор
    globops <сообщение>Отправляет сообщение всем операторамОператор
    chatops <сообщение>Отправляет сообщение всем операторам с режимом +cОператор
    locops <сообщение>Отправляет сообщение всем локальным операторамОператор
    adchat <сообщение>Отправляет сообщение всем администраторамОператор
    nachat <сообщение>Отправляет сообщение всем админстраторам сетиОператор
    kill <ник> <причина>Отключает пользователя от сети, - причину можно не указывать.Оператор
    kline [+|-]<пользователь@хост | ник> [<длительность - бана> <причина>]Банит хостмаску со стороны используемого сервера. kline - это не глобальный - бан.
    - Длительность бана это: 1) время в секундах; 2) переменная времени в виде - '1d' (т.е. на 1 день); 3) '0' для постоянного бана. Время и причина - необязательны, если они не указаны, то значение будет взято из - set::default-bantime (по умолчанию: 0/постоянно) и будет указано 'no reason'.
    - Чтобы убрать kline используйте /kline -пользователь@хост
    Оператор
    zline [+|-]<*@ip> [<длительность бана> <причина>]Банит по IP адресу на вашем локальном сервере (не распространяется на всю - сеть). Смотрите синтаксис команды kline. Чтобы убрать, используйте /zline - -*@ip.
    -
    Оператор
    gline [+|-]<пользователь@хост | ник> [<длительность - бана> <причина>]
    -
    Добавляет глобальный бан на любого, кто попадает под маску. Смотрите синтаксис - команды kline. Чтобы убрать, используйте /gline -пользователь@хост.
    -
    Оператор
    shun [+|-]<пользователь@хост | ник> [<длительность - бана> <причина>]
    -
    Запрещает пользователю говорить и выполнять ЛЮБУЮ команду. Shun глобален (как - gline). Смотрите синтаксис команды kline. Чтобы убрать, используйте /shun - -пользователь@хост. + не сможет его зафлудить. По этому просто соединяйте ваши + сервера на хаб через
    + IP адрес или другим, непубличным хостнеймом.
    + Пример 1: link visibiblename.yournet.com { hostname + 194.15.123.16; [etc] };.
    + Пример 2: link visibiblename.yournet.com { hostname + thehostnamethatworks.yournet.com; [etc] };.
    + Замечание, что в последнем примере вы должны быть уверены,
    + что ваш dns сервер не позволяет передачу зон, но это уже + совсем другая история ;).
    + 2. Другим важным шагом будет скрытие результата команды '/stats c' и другой + stats информации, иначе
    + атакующие могут просто просмотреть ваши блоки соединений. + Обычно, если вы параноик (как и я)
    + вы можете просто сделать: set { oper-only-stats "*"; }; + чтобы ограничить использование /stats полностью.
    + Если вы не хотите этого, просто скройте "CdDlLXz". Более + подробно об этом объяснено в следующей секции.

    -
    Оператор
    gzline [+|-]<ip> <длительность бана> :<причина>
    -
    Добавляет глобальный zline. Смотрите синтаксис команды kline. Чтобы убрать - gzline, используйте /gzline -*@ip.
    -
    Оператор
    rehash <сервер> –<флаги>Осуществляет рехэш (Rehash - перечитать) конфигурационных файлов сервера. Если - указано имя сервера, то позволяет осуществить рехэш конфигурационного файла на - удалённом сервере. Доступны некоторые флаги:
    - -motd - Осуществляет рехэш только всех MOTD и RULES файлов (включая tld {})
    - -opermotd - осуществляет рехэш только файла OPERMOTD
    - -botmotd - осуществляет рехэш только файла BOTMOTD
    - -garbage - запускает сбор мусора
    -
    Оператор
    restart <пароль> <причина>
    -
    Перезапускает процесс IRCD. Необходим пароль, если присутствует блок drpass { - }. По желанию можно указать причину.
    -
    Оператор
    die <пароль>
    -
    Останавливает процесс IRCD. Пароль необходим, если присутствует блок drpass { }.Оператор
    lag <сервер> + Конечно, данные шаги станут менее эффективными, если вы это сделаете позже + (например, через несколько месяцев),
    + чем если бы вы это сделали с самого начала, потому что IP адреса уже смогли + узнать плохие парни.
    + Атакующие могут зафлудить сервера, не являющиеся хабами, однако это им доставит + больше трудностей, чем
    -
    Данная команда работает как Sonar или Traceroute для IRC серверов. Если вы - напечатаете /LAG irc.fyremoon.net то вам ответит каждый сервер, через который - проходит соединение, - с указанием времени. Используется для нахождения задержек.
    -
    Оператор
    sethost <новый_хост>Позволяет изменить ваш vhost на любой.
    -
    Оператор
    setident <новый_идент>
    -
    Позволяет изменить ваш идент на любой
    -
    Оператор
    chghost <ник> <новый_хост>
    -
    Позволяет изменить хост для подключенного пользователя
    -
    Оператор
    chgident <ник> <новый_идент>
    -
    Позволяет изменить идент для подключенного пользователя
    -
    Оператор
    chgname <ник> <новое_имя>
    -
    Позволяет изменить реальное имя [real name] подключенного пользователя
    -
    Оператор
    squit <сервер>
    -
    Отключает сервер от сети
    -
    Оператор
    connect <сервер> <порт> <сервер>Если указан только один сервер, то ваш текущий сервер попытается подключиться к указанному. - Если указаны 2 сервера, то первый будет подключаться на указанный порт ко второму.
    -
    Оператор
    dccdeny <маска_файла> <причина>
    -
    Добавляет в DCCDENY маску файла, тем самым блокируя его передачу.Оператор
    undccdeny <маска_файла>
    -
    Удаляет из DCCDENY указанную маску файла.Оператор
    sajoin <ник> <канал>, <канал>
    -
    Принудительно забрасывает пользователя на канал(-ы). Доступно только для - администраторов сети и сервисов.Оператор
    sapart <ник> <канал>, <канал>
    -
    - Пользователь принудительно покидает канал(-ы). Доступно только для - администраторов сети и сервисов.
    -
    Оператор
    samode <канал> <режим>
    -
    Позволяет администраторам сети и сервисов изменить режимы канала без статуса - оператора канала.
    -
    Оператор
    rping <маска_сервера>
    -
    Вычисляет в миллисекундах задержку между серверами
    -
    Оператор
    trace <маска_сервера|ник>
    -
    Если будет указан ник, команда выдаст вам его класс и информацию о задержке. Если - указан сервер, команда покажет информацию о class/version/link.
    -
    Оператор
    opermotd + просто атаковать одну или 2 точки (хабы), и ваши хабы и сервисы будут + оставаться живыми :).
    + +

    +

    8.7 Раскрытие информации
    +

    + STATS
    + Команда /stats весьма информативна, по этому, вероятно, вы захотите ограничить + к ней доступ. Вопрос, который вы должны задать себе: "Что я хочу, чтобы видели + мои пользователи?". Большинство больших сетей отвечают "ничего", в то время, + как другие позволяют видеть даже '/stats g' и '/stats k'.
    + Я вам предлагаю использовать set { oper-only-stats "*"; }; чтобы + запретить всю информацию от /stats для пользователей, однако, если вы не хотите + этого делать, пройдитесь по списку '/stats' (чтобы просмотреть все опции) и + блокировать всё, кроме того, что вы хотите разрешить (если вы не уверены, то + лучше запретить. Почему они должны видеть то, в чём не уверены вы?).
    + Вот вам несколько примеров:
    + - /stats o: выдаёт ники операторов (с правильным регистром) и их хостмаски.
    + - /stats c: выдаёт информацию о возможных соединениях серверов, которые + используются как "запасные" и др.
    + - /stats g, /stats k: обычно используется для забаненых прокси... так же просто + даёт атакующим список прокси, которые они могут использовать.
    + - /stats E, /stats e: замечательная информация, особенно если атакующий решит + использовать эти адреса
    + - /stats i, /stats y: может помочь атакующему найти хосты, позволяющие много + соединений.
    + - /stats P: позволяет найти ему только порты серверов
    + и проч. и проч.

    -
    Показывает файл OperMotd сервера
    -
    Оператор
    addmotd :<текст>
    -
    Добавит указанный текст в конец Motd
    -
    Оператор
    addomotd :<текст>
    -
    Добавит указанный текст в конец файла OperMotd
    -
    Оператор
    sdesc <Новое описание>
    -
    Позволяет администраторам сервера изменить информацию о своем - сервере без его перезапуска.
    -
    Оператор
    addline <текст>
    -
    Позволяет добавить строки в unrealircd.conf
    -
    Оператор
    mkpasswd <пароль>
    -
    Зашифровывает пароль, чтобы в зашифрованном виде его можно было добавить в unrealircd.conf
    -
    Оператор
    tsctl offset +/- <время>
    -
    Настраивает встроенные часы в IRCD (НЕ используйте, если вы до конца не - понимаете, ЧТО делает эта команда)
    -
    Оператор
    tsctl time
    -
    Даёт отчёт о TSОператор
    tsctl alltimeДаёт отчёт о TS на ВСЕХ серверахОператор
    tsctl svstime <временное_смещение>
    -
    Устанавливает время TS на всех серверах (НЕ используйте, если вы до конца не - понимаете, ЧТО делает эта команда)
    -
    Оператор
    htm <опция>
    -
    Контролирует настройки режима повышенного трафика (high traffic mode). HTM отключает - некоторые команды пользователя (list, whois, who и другие) - в случае экстремально высокого трафика на сервере. Опции: + MAP / LINKS
    + Некоторые люди спрашивают, как отключить использование команд /map и /links. + Наша позиция такова, что лучше этого не делать, это не лучший выход для защиты, + позвольте объяснить... Скрытие ваших серверов будет бесполезно, если + пользователи уже используют их (иначе, как они попали к вам в первый раз?). + Смотрите секцию 8.6, если вы хотите скрыть сервера.
    + Так всё же, что же вы МОЖЕТЕ сделать? Начиная с версии 3.2.1 существует опция, + называемая 'ровная карта' (set::options::flat-map), которая отображает все + сервера как "присоединённые непосредственно" по командам /map и /links, по + этому обычные пользователи не видят, куда прилинкован какой сервер... Это + отличное дополнительное средство защиты от малышей, которые уже не смогут легко + отследить "центральные точки" с помощью /map или /links. По этому, + использование данной вещи рекомендовано. Замечание: это не является полной + защитой. При любом сплите (потере соединения) можно увидеть, между какими + серверами это произошло.

    - -ON - - заставляет сервер переключится в HTM + ОБЫЧНЫЕ ПОЛЬЗОВАТЕЛИ И SNOMASKs
    + Ещё одно преимущество, которое лучше ограничить для нормальных пользователей - + это snomasks, которые называются +s +sk. Если они будут установлены, то + пользователи могут видеть рехэши, kill'ы и другие различные сообщения.
    + Чтобы отключить их, используйте set::restrict-usermodes, что-то вроде: set { + restrict-usermodes "s"; };.

    - -OFF - - заставляет сервер выйти из HTM + Конечно же, вся эта " информация для скрытия" не является "настоящей" + безопасностью, однако позволяет усложнить/увеличить сложность, необходимую для + атаки/взлома.
    + +

    +

    8.8 Защита против эксплоитов
    +

    + Патчи ядра усложняют задачу взлома от различных типов атак. По этому Unreal не + является центральной точкой, которую будут атаковать, гораздо большая + вероятность, что атака будет идти с другой стороны... по различным + причинам.

    - -NOISY - - сервер будет уведомлять пользователей и - администраторов, когда он входит или выходит из режима HTM
    - -QUIET - - сервер не будет уведомлять никого при входе/выходе в/из режима HTM
    - -TO <значение> - - указывает, при какой величине входящего трафика активировать HTM
    -
    Оператор
    stats <опция>
    -
    - B - banversion - показывает список забаненых версий клиентов
    - b - badword - показывает список нецензурных слов
    - C - link - показывает список линк-блоков
    - d - denylinkauto - показывает список запрещённых линк-блоков (auto)
    - D - denylinkall - показывает список запрещённых линк-блоков (все)
    - e - exceptthrottle - показывает список исключений троттл-блоков
    - E - exceptban - показывает список исключений банов и tkl
    - f - spamfilter - показывает список спамфильтров
    - F - denydcc - показывает список запрещенных - dcc
    - G - gline - показывает список gline и gzline
    -   Расширенные флаги: [+/-mrs] [маска] [причина] [установлено]
    -     m возвращает gline, попадающие/не попадающие под - указанную маску
    -     r возвращает gline, попадающие/не попадающие под - указанную причину
    -     s возвращает gline, которые были установлены/не - были установлены клиентами с указанным именем
    - I - allow - возвращает список allow-блоков
    - j - officialchans - показывает список оффициальных каналов сети
    - K - kline - показывает список блоков банов user/ban ip/except
    - l - linkinfo - показывает информацию о соединениях
    - L - linkinfoall - показывает всю информацию о соединениях
    - M - command - показывает, сколько раз использовалась каждая команда
    - n - banrealname - показывает список банов по настоящему имени[realname]
    - O - oper - показывает опер-блоки
    - P - port - показывает информацию о портах
    - q - sqline - показывает список SQLINE
    - Q - bannick - показывает список банов по нику
    - r - chanrestrict - показывает список блоков deny/allow каналов
    - R - usage - показывает информацию об использовании
    - S - set - показывает список блока set
    - s - shun - показывает список shun
    -   Расширенные флаги: [+/-mrs] [маска] [причина] [установлено]
    -     m Возвращает shun, попадающие/не попадающие под - указанную маску
    -     r Возвращает shun, попадающие/не попадающие под - указанную причину
    -     s Возвращает shun, которые были установлены/не - установлены клиентами с указанным именем -
    - t - tld - показывает список блоков tld
    - T - traffic - показывает информацию о траффике
    - u - uptime - показывает аптайм сервера и счётчик подключений
    - U - uline - показывает список блока ulines
    - v - denyver - показывает список блоков запрещённых для линковки версий серверов
    - V - vhost - показывает список блоков vhost
    - X - notlink - показывает список серверов, которые - в данный момент - не подключены
    - Y - class - показывает список блоков class
    - z - zip - показывает информацию о сжатии трафика от серверов, его - использующих (если включена поддержка - zip-компрессии)
    - Z - mem - показывает информацию об использовании памяти
    -
    Все
    module
    -
    - Список всех загруженных модулей - Все
    close
    -
    - Данная команда отсоединяет от сервера все неизвестные соединения. - Оператор
    -

    -
    -

    8 – Советы/рекомендации по безопасности

    -
    -

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

    -

    Список отсортирован по популярности/уровню риска наиболее часто используемых атак:

    -
    -

    -

    8.1 Пароли
    -

    - Выбирайте сложные пароли для операторов, линк-секций и др.:
    - - используйте смесь прописных и строчных букв и цифр ("Whbviwf5") и/или что-то - длинное ("blaheatsafish", "AlphaBeta555").
    - - НЕ ИСПОЛЬЗУЙТЕ ваши линк/оператор пароли такие же, как от почтовых ящиков, - форумов, паролей на ботов и т.п...
    + Первое, что вы должны сделать - это ВСЕГДА ИСПОЛЬЗОВАТЬ ПОСЛЕДНЮЮ ВЕРСИЮ, + поэтому прямо сейчас подпишитесь на + рассылку по уведомлениям от unreal, и вы будете получать уведомления о + релизах (unreal-notify служит только для релизов, т.е. одно письмо в X + месяцев). Приходят уведомления об исправленных уязвимостях высокого риска, + добавлениях обновлений для обеспечения безопасности.
    +
    +

    +

    8.9 Итоги
    +

    + Вы должны хорошо понимать, что никогда не будете защищены на 100%. Вы (и мы) + находим и исправляем каждую уязвимость, однако атакующему достаточно будет + воспользоваться одним "дырявым" сервером, чтобы парализовать работу сети. Всё, + что было описано выше - это помощь, чтобы сократить и уменьшить вероятность + риска. Найдите время для защиты своей сети и обучения ваших операторов. И + помните, что многие люди не беспокоятся о защите до тех пор, пока их не + взломают... и попробуйте это опровергнуть ;). +
    +

    +

    9 – Часто задаваемые вопросы (ЧАВО)

    +

    ЧАВО доступны в сети Интенет по + этому адресу

    +
    +

    +

    Регулярные выражения

    +

    Регулярные выражения часто используются в Unreal (например, в + badwords, spamfilter, и aliases), они являются отличным инструментом для поиска + и замены по образцу. Иногда встречаются сокращения вроде "regexp (регексп)" или + "regex (регекс)". Unreal использует TRE библиотеку регулярных выражений, + которая поддерживает обычный и расширенный синтаксис. Информация, + представленная ниже, поможет Вам понять как работают регексы. Если вы + заинтересованы в более подробной информации, посетите + TRE homepage.

    +
    +

    A.1 Литералы

    +

    Литералы являются самой простой частью регулярных выражений. + Обычно литералы - это символы, из которых состоит текст. Например, образец + "test" состоит из четырех литералов, "t," "e," "s," и "t." В Unreal литералы + чувствительны к регистру, так что предыдущий регекс соответствует "test", в + отличие от "TEST". Любой символ, кроме "метасимволов", рассматривается как + литерал. Вы можете представить любой символ как литерал с помощью наклонной + черты (\). Например, точка (.) является метасимволом. Если вы хотите + использовать литерал ".", просто напишите "\." . Также это применимо в случаях, + когда вы хотите найти символ, который так просто не печатается, например ASCII + символ 3 (цвет). Для создания этого символа можно использовать IRC клиент, а + можно специальную конструкцию регексов \x. Если вы наберете \x3, это + интерпретируется как ASCII символ 3. Номер после \x представлен в + шестнадцатеричном виде и может принимать значения от \x0 до \xFF.

    +
    +

    A.2 Оператор "точка"

    +

    Оператор точка (.) интерпретируется как "любой символ". Одна + "точка" заменяет один любой символ. Например, регекс "a.c" интерпретируется как + "abc", "adc" и т.д. Однако, результат не содержит "abd", потому что "a" и "c" + являются литералами, которые точно должны быть в образце.

    +
    +

    A.3 Операторы повторения

    +

    + Отличие операторов повторения в регексах от привычных всем символов замены в + масках в том, что в регексах "*" и "?" означают повторение предыдущего символа. +

    + Оператор "?" означает повторение предыдущего символа 0 или 1 раз. Например, + регекс "a?c" будет соответствовать образцам "ac" или "c" (т.е. символ "a" может + быть, а может и не быть). Чтобы использовать "?" как в знакомых вам масках, + применим оператор точки: регекс "a.?c" будет соответствовать образцу, в котором + между символами "a" и "c" может быть (а может и нет) любой символ. +

    + Оператор "*" означает повторение предыдущего символа 0 или более раз. Например, + регекс "a*c" будет соответствовать образцам "ac", "aaaaaaac" или "c" (символ + "a" может повторяться 0 или более раз). Как и в операторе "?", "*" можно + использовать вместе с точкой: регекс "a.*c" будет соответствовать повторению + между "a" и "с" любого символа 0 или более раз. +

    + Оператор "+" очень похож на "*". Он означает повторение предыдущего символа 1 + или более раз. +

    + Более сложным оператором повторения являются фигурные скобки. С их помощью вы + можете указать, сколько раз должен повторяться предыдущий символ в образце. + Например, регекс "a{5}" будет соответствовать "aaaaa" (повторение символа "a" 5 + раз), регекс "a{1,3}" - от 1 до 3 раз, регекс "a{7,}" - 7 и более раз. +

    + По умолчанию, алгоритм поиска в операторах повторения "жадный". Чтобы понять, + что это такое, рассмотрим пример: +

    Исходный текст:
    + первая часть, вторая часть
    + Регекс:
    + .*часть

    + В данном примере найденный фрагмент будет "первая часть, вторая часть". + "Жадность" регексов получает максимальный подходящий фрагмент из образца. Чтобы + этого избежать и получить минимальный (в нашем случае "первая часть"), после + оператора "*" надо использовать "?". Этот метод также приемлен ко всем + операторам повторения (даже для самого оператора "?". В этом случае выражение + будет иметь вид "??").

    +
    +

    A.4 Выражения в скобках

    +
    Выражение в скобках являются удобным средством для создания + условий. Так, между литералами, помещенными в квадратные скобки, + подразумевается условие "или". Например, регексп "[abc]" интерпретируется как + "a или b или c", регексп "a[bd]c" - как "abc" или "adc", но не "acc". +

    + Можно использовать квадратные скобки для проверки того, чем является символ, + буквой или цифрой. Можно перебирать все подходящие символы, а можно + использовать символ диапазона "-". Например, регекс "[0123456789]" равносилен + "[0-9]". Если вы хотите задать буквы латинского алфавита, просто используйте + регекс "[a-z]" (по умолчанию Unreal не чувствителен к регистру букв в + регексах). В одних скобках можно размещать несколько диапазонов, например, + регекс "[0-9a-z]" интерпретируется как "все цифры и буквы". Для включения + литерала "-" в регекс, просто напишите его первым или последним в скобках + (например, "[0-9-]" или "[-0-9]"). +

    + Для упрощения выражений в квадратных скобках, существуют установленные "классы + символов". Они содержат основные диапазоны символов, разбитые на группы. Классы + символов пишутся внутри скобок, их имена начинаются и заканчиваются с ":". + Например, регекс "[0-9]" может быть записан в виде "[:isdigit:]". Ниже + представлен список классов символов и их значений: +

      +
    • + alnum + - буквы и цифры +
    • + alpha + - буквы +
    • + blank + - символы-разделители +
    • + cntrl + - управляющие символы +
    • + digit + - десятичные цифры (от 0 до 9) +
    • + graph + - все печатные символы кроме пробела +
    • + lower + - буквы нижнего регистра +
    • + print + - печатные символы и пробел +
    • + punct + - знаки пунктуации +
    • + space + - символы пробела +
    • + upper + - буквы верхнего регистра +
    • + xdigit - шестнадцатеричные цифры
    • +
    + Классы символов ДОЛЖНЫ использоваться в скобках. Например, регекс [:isdigit:-] + неверный. Вы должны использовать "[[:isdigit:]-]" в данном примере. +

    + Ещё одна возможность выражений в квадратных скобках это отрицание. Иногда + необходимо создать условие "всё кроме определенных символов". Например, иногда + легче перечислить символы, которые не должны включаться, чем те, которые + должны. Для создания отрицания служит литерал "^", который пишется первым в + квадратных скобках. Например, регекс "[^a-z]" интерпретируется как "всё кроме + букв". Чтобы добавить сам символ "^" в список, поместите его в конце (например, + регекс "[a-z^]" будет включать все буквы + символ "^"). Также "^" может + использоваться для создания отрицаний классов символов. Например, + "[^[:isdigit:]]" - "не цифры".

    +
    +

    A.5 Метапоследовательности

    +
    Метапоследовательности в регулярном выражении служат для + представления отдельных символов, классов символов или определенного места в + строке. +

    + Символ "^" соответствует началу строки. Например, выражение "test" найдет любое + вхождение данного слова в образце, а выражение "^test" укажет, что образец + должен обязательно начинаться с "test". По аналогии, символ "$" соответствует + концу строки, и может применяться совместно с символом "^". Например, регекс + "^test$" укажет на то, что образец эквивалентен слову "test". +

    + Метапоследовательности представлены в двух видах, положительном и + отрицательном: +

      +
    • + \b + - граница слова +
    • + \B + - "не граница слова" +
    • + \d - цифры (эквивалентно [[:digit:]]) +
    • + \D - "не цифры" (эквивалентно [^[:digit:]]) +
    • + \s - пробел (эквивалентно [[:space:]]) +
    • + \S - "не пробел" (эквивалентно [^[:space:]]) +
    • + \w - слова (эквивалентно [[:alnum:]_]) +
    • + \W - "не слова" (эквивалентно [^[:alnum:]_])
    • +
    +
    +

    A.6 Чередование

    +
    Чередование является способом создания условия "или". Символом + оператора чередования служит вертикальная черта "|". Например, если вы хотите + сказать "a или b", вы можете использовать "a|b". Для обычных символов легче и + удобнее будет использование выражений в квадратных скобках, однако оператор + чередования может применяться в более сложных условиях с использованием + подвыражений. +
    +

    A.7 Подвыражения

    +
    Подвыражение - это последовательность символов, которая + рассматривается как одно целое. Существует два способа создания подвыражений. + Эти два способа отличаются наличием "обратных ссылок", которые будут + рассмотрены ниже. Для объявления подвыражения с использованием обратных ссылок + просто поместите его в скобки (). Для создания подвыражения без обратных + ссылок, замените скобки на "(?:". Например, "([a-z])" и "(?:[a-z])". Все + операторы повторения, например "X или больше предыдущих символов", могут быть + использованы и в виде "X или более предыдущих подвыражений". Например, если у + вас есть регекс "[0-9][a-z][0-9]" для поиска цифр, букв и затем снова цифр, и + вам необходимо повторить это дважды. Обычно, вы бы сделали + "[0-9][a-z][0-9][0-9][a-z][0-9]", а с использованием подвыражений можно + написать просто "([0-9][a-z][0-9]){2}".
    +

    A.8 Обратные ссылки

    +
    Обратные ссылки позволяют вам возвращать часть строки, на которую + ссылалось одно из подвыражений регекса. Вы можете пользовать обратные ссылки с + помощью "\" и последующей цифрой (0-9), например "\1". "\0" - специальная + обратная ссылка, которая обращается ко всему регексу, а не к определённому + подвыражению. Обратные ссылки полезны для поиска строки, содержащей образец + дважды. Например, у вас есть строка nick!user@host. Вы знаете, что есть троян, + nick и username которого содержат "[0-9][a-z]{5}", и они одинаковы. Регекс + "[0-9][a-z]{5}![0-9][a-z]{5}@.+" не подходит, потому что nickname и username в + данном случае могут быть разные. Например, nickname будет "1abcde", а username + "2fghij". Проблема решается с помощью обратных ссылок, используя + "([0-9][a-z]{5})!\1@.+". Этот регекс ищет [0-9][a-z]{5} в нике пользователя, а + потом подставляет найденное значение вместо username с помощью обратной ссылки. +

    + Всего можно использовать до 9-ти обратных ссылок, что является причиной + использования (:?). В этом случае создается подвыражение без обратной ссылки. + Кроме того, что обратные ссылки не сохраняются, это ещё и быстрее работает. + Подвыражения без обратных ссылок используются в тех случаях, когда нет + надобности в создании обратной ссылки и её запоминании.

    +
    +

    A.9 Чувствительность к регистру

    +
    + По умолчанию, Unreal не чувствителен к регистру букв в регексах. Это позволяет, + например, вместе с "www.test.com" блокировать и "WWW.TEST.COM". Конечно, + существует способ сделать регексы чувствительными к регистру букв, например, + для поиска троянов. Вы можете динамически включать чувствительность с помощью + (?-i) и выключать с помощью (?i). Например, регекс "(?-i)[a-z](?i)[a-z]" будет + искать в образце буквы только нижнего регистра, следующие за буквами нижнего + или верхнего (чувствительность выключена). Также необходимо не забывать + выключать чувствительность к регистру, или использовать чувствительность только + для конкретного подвыражения. Например, регекс "(?-i:[a-z])[a-z]" будет + эквивалентен предыдущему, т.к. -i применится только для подвыражения в скобках, + а остальная часть регекса будет не чувствительна к регистру по умолчанию.
    -

    -

    8.2 Не относящиеся к IRCD уязвимости
    -

    - Гораздо больше шансов, что ваш сервер будет хакнут через - другую уязвимость, чем через баг в UnrealIRCd. К примеру, если на сервере - запущены ещё и http, dns, smtp и ftp сервисы, то риск возрастает. Также, если - сервер многопользовательский (т.е. у вас есть шелл), возрастает риск локальных - эксплоитов и плохих уровней доступа (см. далее). Этот риск наиболее опасен, так - что будьте внимательны при выборе поставщика шелла. -
    -

    -

    8.3 Разрешения[permissions] и конфигурационный файл
    -

    - Всегда проверяйте, правильность разрешений для вашей домашней директории и - директории UnrealIRCd, группы/остальные не должны иметь разрешение на чтение. - Иначе любой локальный пользователь может просто посмотреть ваш конфигурационный - файл, а в нём-то ваши пароли... Вкратце: chmod -R go-rwx /path/to/Unreal3.2 - если вы не уверены.
    - Другие вещи, относящиеся к данной проблеме: никогда не кладите ваш UnrealIRCd в - каталог вебсервера или в какую-нибудь другую разделяемую директорию. И для - бэкапов, удостоверьтесь, что вы имеете правильные разрешения (иногда часто - бывает, что всё защищено, а backup.tar.gz может прочитать любой человек).
    -
    - Если вы желаете зашифровать пароли везде, где только возможно, вам необходимо - скомпилировать сервер с поддержкой OpenSSL (вы же заботитесь о своей - безопасности?), тогда можно использовать sha1, ripemd160 или md5 - методы шифрации паролей . Если у вас остались зашифрованные блоки от - Unreal3.2.1 или более ранней версии, я предлагаю вам перезашифровать - (просто перезапустить /mkpasswd), потому что 3.2.1 была с некоторыми - уязвимостями.
    - Замечу, что это просто 'другой уровень защиты', так что если вы оставите старые - пароли, то они могут быть сломаны довольно легко. Если кто-то получит - доступ к вашему файлу конфигурации, можно узнать много интересных - вещей, таких как link::password-connect для атаки на другие сервера. -
    -

    -

    8.4 Проблемы, относящиеся к пользователям
    -

    - Это не специфика UnrealIRCd, но всё же есть вещи, зависимые от пользователей...
    - Всегда выбирайте ваших операторов и администраторов очень внимательно. И всегда - помните, что это - самое слабое звено. Может вы не полностью прочитали - данный документ, может ваш друг, как оператор, сделает что-то глупое. Например - расшарит свой жёсткий диск через netbios/kazaa/morpheus/.., получит - трояна, будет использовать простой пароль и проч. и проч. и проч. Не всё же - находится под вашим контролем.
    - И ещё, всегда очень внимательно выбирайте уровни привилегий для - людей(oper::flags), указывайте только самые необходимые. -
    -

    -

    8.5 SSL/SSH & сниффинг
    -

    - Используйте зашифрованное по SSL соединение между серверами и как - оператор, это защитит вас от перехвата трафика. Перехват трафика возможен, если - атакующий хакнул сервер где-то между вами и вашим сервером, тогда он может - видеть ВЕСЬ сетевой трафик, который проходит через него: смотреть все данные, - захватывать все пароли (логины операторов, сервисов и т.д.). По этому, - всегда используйте ssh вместо telnet. -
    -

    -

    8.6 Отказ в обслуживании (DoS) [или: как защитить мой хаб]
    -

    - Большинство сетей имеют печальный опыт атак флудеров или атак вида "отказ в - обслуживании". Большинство сетей имеют главный хаб-сервер, однако его забывают - защитить от атак.
    - Я вам объясню:
    - 1. Установите имя хаба, но
    -     не добавляйте для него запись в dns. Данным образом, - атакующий не сможет преобразовать хост и -
    -     не сможет его зафлудить. По этому просто соединяйте ваши - сервера на хаб через
    -     IP адрес или другим, непубличным хостнеймом.
    -     Пример 1: link visibiblename.yournet.com { hostname - 194.15.123.16; [etc] };.
    -     Пример 2: link visibiblename.yournet.com { hostname - thehostnamethatworks.yournet.com; [etc] };.
    -     Замечание, что в последнем примере вы должны быть уверены,
    -     что ваш dns сервер не позволяет передачу зон, но это уже - совсем другая история ;).
    - 2. Другим важным шагом будет скрытие результата команды '/stats c' и другой - stats информации, иначе
    -     атакующие могут просто просмотреть ваши блоки соединений. - Обычно, если вы параноик (как и я)
    -     вы можете просто сделать: set { oper-only-stats "*"; }; - чтобы ограничить использование /stats полностью.
    -     Если вы не хотите этого, просто скройте "CdDlLXz". Более - подробно об этом объяснено в следующей секции.
    -
    - Конечно, данные шаги станут менее эффективными, если вы это сделаете позже - (например, через несколько месяцев),
    - чем если бы вы это сделали с самого начала, потому что IP адреса уже смогли - узнать плохие парни.
    - Атакующие могут зафлудить сервера, не являющиеся хабами, однако это им доставит - больше трудностей, чем -
    - просто атаковать одну или 2 точки (хабы), и ваши хабы и сервисы будут - оставаться живыми :).
    -
    -

    -

    8.7 Раскрытие информации
    -

    - STATS
    - Команда /stats весьма информативна, по этому, вероятно, вы захотите ограничить - к ней доступ. Вопрос, который вы должны задать себе: "Что я хочу, чтобы видели - мои пользователи?". Большинство больших сетей отвечают "ничего", в то время, - как другие позволяют видеть даже '/stats g' и '/stats k'.
    - Я вам предлагаю использовать set { oper-only-stats "*"; }; чтобы - запретить всю информацию от /stats для пользователей, однако, если вы не хотите - этого делать, пройдитесь по списку '/stats' (чтобы просмотреть все опции) и - блокировать всё, кроме того, что вы хотите разрешить (если вы не уверены, то - лучше запретить. Почему они должны видеть то, в чём не уверены вы?).
    - Вот вам несколько примеров:
    - - /stats o: выдаёт ники операторов (с правильным регистром) и их хостмаски.
    - - /stats c: выдаёт информацию о возможных соединениях серверов, которые - используются как "запасные" и др.
    - - /stats g, /stats k: обычно используется для забаненых прокси... так же просто - даёт атакующим список прокси, которые они могут использовать.
    - - /stats E, /stats e: замечательная информация, особенно если атакующий решит - использовать эти адреса
    - - /stats i, /stats y: может помочь атакующему найти хосты, позволяющие много - соединений.
    - - /stats P: позволяет найти ему только порты серверов
    - и проч. и проч.
    -
    - MAP / LINKS
    - Некоторые люди спрашивают, как отключить использование команд /map и /links. - Наша позиция такова, что лучше этого не делать, это не лучший выход для защиты, - позвольте объяснить... Скрытие ваших серверов будет бесполезно, если - пользователи уже используют их (иначе, как они попали к вам в первый раз?). - Смотрите секцию 8.6, если вы хотите скрыть сервера.
    - Так всё же, что же вы МОЖЕТЕ сделать? Начиная с версии 3.2.1 существует опция, - называемая 'ровная карта' (set::options::flat-map), которая отображает все - сервера как "присоединённые непосредственно" по командам /map и /links, по - этому обычные пользователи не видят, куда прилинкован какой сервер... Это - отличное дополнительное средство защиты от малышей, которые уже не смогут легко - отследить "центральные точки" с помощью /map или /links. По этому, - использование данной вещи рекомендовано. Замечание: это не является полной - защитой. При любом сплите (потере соединения) можно увидеть, между какими - серверами это произошло.
    -
    - ОБЫЧНЫЕ ПОЛЬЗОВАТЕЛИ И SNOMASKs
    - Ещё одно преимущество, которое лучше ограничить для нормальных пользователей - - это snomasks, которые называются +s +sk. Если они будут установлены, то - пользователи могут видеть рехэши, kill'ы и другие различные сообщения.
    - Чтобы отключить их, используйте set::restrict-usermodes, что-то вроде: set { - restrict-usermodes "s"; };.
    -
    - Конечно же, вся эта " информация для скрытия" не является "настоящей" - безопасностью, однако позволяет усложнить/увеличить сложность, необходимую для - атаки/взлома.
    -
    -

    -

    8.8 Защита против эксплоитов
    -

    - Патчи ядра усложняют задачу взлома от различных типов атак. По этому Unreal не - является центральной точкой, которую будут атаковать, гораздо большая - вероятность, что атака будет идти с другой стороны... по различным - причинам.
    -
    - Первое, что - вы должны сделать - это ВСЕГДА ИСПОЛЬЗОВАТЬ ПОСЛЕДНЮЮ ВЕРСИЮ, поэтому - прямо сейчас подпишитесь на - рассылку по уведомлениям от unreal, и вы будете получать уведомления о - релизах (unreal-notify служит только для релизов, т.е. одно письмо в X - месяцев). Приходят уведомления об исправленных уязвимостях высокого риска, - добавлениях обновлений для обеспечения безопасности.
    -
    -

    -

    8.9 Итоги
    -

    - Вы должны хорошо понимать, что никогда не будете защищены на 100%. Вы (и мы) - находим и исправляем каждую уязвимость, однако атакующему достаточно будет - воспользоваться одним "дырявым" сервером, чтобы парализовать работу - сети. Всё, что было описано выше - это помощь, чтобы сократить и уменьшить - вероятность риска. Найдите время для защиты своей сети и обучения ваших - операторов. И помните, что многие люди не беспокоятся о защите до тех пор, пока - их не взломают... и попробуйте это опровергнуть ;). -
    -

    -

    9 – Часто задаваемые вопросы (ЧАВО)

    -

    ЧАВО доступны в сети Интенет по - этому адресу

    -
    -

    -

    Регулярные выражения

    -

    Регулярные выражения часто используются в Unreal (например, в - badwords, spamfilter, и aliases), они являются отличным инструментом для поиска - и замены по образцу. Иногда встречаются сокращения вроде "regexp (регексп)" или - "regex (регекс)". Unreal использует TRE библиотеку регулярных выражений, - которая поддерживает обычный и расширенный синтаксис. Информация, - представленная ниже, поможет Вам понять как работают регексы. Если вы - заинтересованы в более подробной информации, посетите - TRE homepage.

    -
    -

    A.1 Литералы

    -

    Литералы являются самой простой частью регулярных выражений. - Обычно литералы - это символы, из которых состоит текст. Например, образец - "test" состоит из четырех литералов, "t," "e," "s," и "t." В Unreal литералы - чувствительны к регистру, так что предыдущий регекс соответствует "test", в - отличие от "TEST". Любой символ, кроме "метасимволов", рассматривается как - литерал. Вы можете представить любой символ как литерал с помощью наклонной - черты (\). Например, точка (.) является метасимволом. Если вы хотите - использовать литерал ".", просто напишите "\." . Также это применимо в случаях, - когда вы хотите найти символ, который так просто не печатается, например ASCII - символ 3 (цвет). Для создания этого символа можно использовать IRC клиент, а - можно специальную конструкцию регексов \x. Если вы наберете \x3, это - интерпретируется как ASCII символ 3. Номер после \x представлен в - шестнадцатеричном виде и может принимать значения от \x0 до \xFF.

    -
    -

    A.2 Оператор "точка"

    -

    Оператор точка (.) интерпретируется как "любой символ". Одна - "точка" заменяет один любой символ. Например, регекс "a.c" интерпретируется как - "abc", "adc" и т.д. Однако, результат не содержит "abd", потому что "a" и "c" - являются литералами, которые точно должны быть в образце.

    -
    -

    A.3 Операторы повторения

    -

    - Отличие операторов повторения в регексах от привычных всем символов замены в - масках в том, что в регексах "*" и "?" означают повторение предыдущего символа. -

    - Оператор "?" означает повторение предыдущего символа 0 или 1 раз. Например, - регекс "a?c" будет соответствовать образцам "ac" или "c" (т.е. символ "a" может - быть, а может и не быть). Чтобы использовать "?" как в знакомых вам масках, - применим оператор точки: регекс "a.?c" будет соответствовать образцу, в котором - между символами "a" и "c" может быть (а может и нет) любой символ. -

    - Оператор "*" означает повторение предыдущего символа 0 или более раз. Например, - регекс "a*c" будет соответствовать образцам "ac", "aaaaaaac" или "c" (символ - "a" может повторяться 0 или более раз). Как и в операторе "?", "*" можно - использовать вместе с точкой: регекс "a.*c" будет соответствовать повторению - между "a" и "с" любого символа 0 или более раз. -

    - Оператор "+" очень похож на "*". Он означает повторение предыдущего символа 1 - или более раз. -

    - Более сложным оператором повторения являются фигурные скобки. С их помощью вы - можете указать, сколько раз должен повторяться предыдущий символ в образце. - Например, регекс "a{5}" будет соответствовать "aaaaa" (повторение символа "a" 5 - раз), регекс "a{1,3}" - от 1 до 3 раз, регекс "a{7,}" - 7 и более раз. -

    - По умолчанию, алгоритм поиска в операторах повторения "жадный". Чтобы понять, - что это такое, рассмотрим пример: -

    Исходный текст:
    - первая часть, вторая часть
    - Регекс:
    - .*часть

    - В данном примере найденный фрагмент будет "первая часть, вторая часть". - "Жадность" регексов получает максимальный подходящий фрагмент из образца. Чтобы - этого избежать и получить минимальный (в нашем случае "первая часть"), после - оператора "*" надо использовать "?". Этот метод также приемлен ко всем - операторам повторения (даже для самого оператора "?". В этом случае выражение - будет иметь вид "??").

    -
    -

    A.4 Выражения в скобках

    -
    Выражение в скобках являются удобным средством для создания - условий. Так, между литералами, помещенными в квадратные скобки, - подразумевается условие "или". Например, регексп "[abc]" интерпретируется как - "a или b или c", регексп "a[bd]c" - как "abc" или "adc", но не "acc". -

    - Можно использовать квадратные скобки для проверки того, чем является символ, - буквой или цифрой. Можно перебирать все подходящие символы, а можно - использовать символ диапазона "-". Например, регекс "[0123456789]" равносилен - "[0-9]". Если вы хотите задать буквы латинского алфавита, просто используйте - регекс "[a-z]" (по умолчанию Unreal не чувствителен к регистру букв в - регексах). В одних скобках можно размещать несколько диапазонов, например, - регекс "[0-9a-z]" интерпретируется как "все цифры и буквы". Для включения - литерала "-" в регекс, просто напишите его первым или последним в скобках - (например, "[0-9-]" или "[-0-9]"). -

    - Для упрощения выражений в квадратных скобках, существуют установленные "классы - символов". Они содержат основные диапазоны символов, разбитые на группы. Классы - символов пишутся внутри скобок, их имена начинаются и заканчиваются с ":". - Например, регекс "[0-9]" может быть записан в виде "[:isdigit:]". Ниже - представлен список классов символов и их значений: -

      -
    • - alnum - буквы и цифры
    • -
    • - alpha - буквы
    • -
    • - blank - символы-разделители
    • -
    • - cntrl - управляющие символы
    • -
    • - digit - десятичные цифры (от 0 до 9)
    • -
    • - graph - все печатные символы кроме пробела
    • -
    • - lower - буквы нижнего регистра
    • -
    • - print - печатные символы и пробел
    • -
    • - punct - знаки пунктуации
    • -
    • - space - символы пробела
    • -
    • - upper - буквы верхнего регистра
    • -
    • - xdigit - шестнадцатеричные цифры
    • -
    - Классы символов ДОЛЖНЫ использоваться в скобках. Например, регекс [:isdigit:-] - неверный. Вы должны использовать "[[:isdigit:]-]" в данном примере. -

    - Ещё одна возможность выражений в квадратных скобках это отрицание. Иногда - необходимо создать условие "всё кроме определенных символов". Например, иногда - легче перечислить символы, которые не должны включаться, чем те, которые - должны. Для создания отрицания служит литерал "^", который пишется первым в - квадратных скобках. Например, регекс "[^a-z]" интерпретируется как "всё кроме - букв". Чтобы добавить сам символ "^" в список, поместите его в конце (например, - регекс "[a-z^]" будет включать все буквы + символ "^"). Также "^" может - использоваться для создания отрицаний классов символов. Например, - "[^[:isdigit:]]" - "не цифры".

    -
    -

    A.5 Метапоследовательности

    -
    Метапоследовательности в регулярном выражении служат для - представления отдельных символов, классов символов или определенного места в - строке. -

    - Символ "^" соответствует началу строки. Например, выражение "test" найдет любое - вхождение данного слова в образце, а выражение "^test" укажет, что образец - должен обязательно начинаться с "test". По аналогии, символ "$" соответствует - концу строки, и может применяться совместно с символом "^". Например, регекс - "^test$" укажет на то, что образец эквивалентен слову "test". -

    - Метапоследовательности представлены в двух видах, положительном и - отрицательном: -

      -
    • - \b - - граница слова -
    • - \B - - "не граница слова" -
    • - \d - цифры (эквивалентно [[:digit:]])
    • -
    • - \D - "не цифры" (эквивалентно [^[:digit:]])
    • -
    • - \s - пробел (эквивалентно [[:space:]])
    • -
    • - \S - "не пробел" (эквивалентно [^[:space:]])
    • -
    • - \w - слова (эквивалентно [[:alnum:]_])
    • -
    • - \W - "не слова" (эквивалентно [^[:alnum:]_])
    • -
    -
    -

    A.6 Чередование

    -
    Чередование является способом создания условия "или". Символом - оператора чередования служит вертикальная черта "|". Например, если вы хотите - сказать "a или b", вы можете использовать "a|b". Для обычных символов легче и - удобнее будет использование выражений в квадратных скобках, однако оператор - чередования может применяться в более сложных условиях с использованием - подвыражений. -
    -

    A.7 Подвыражения

    -
    Подвыражение - это последовательность символов, которая - рассматривается как одно целое. Существует два способа создания подвыражений. - Эти два способа отличаются наличием "обратных ссылок", которые будут - рассмотрены ниже. Для объявления подвыражения с использованием обратных ссылок - просто поместите его в скобки (). Для создания подвыражения без обратных - ссылок, замените скобки на "(?:". Например, "([a-z])" и "(?:[a-z])". Все - операторы повторения, например "X или больше предыдущих символов", могут быть - использованы и в виде "X или более предыдущих подвыражений". Например, если у - вас есть регекс "[0-9][a-z][0-9]" для поиска цифр, букв и затем снова цифр, и - вам необходимо повторить это дважды. Обычно, вы бы сделали - "[0-9][a-z][0-9][0-9][a-z][0-9]", а с использованием подвыражений можно - написать просто "([0-9][a-z][0-9]){2}".
    -

    A.8 Обратные ссылки

    -
    Обратные ссылки позволяют вам возвращать часть строки, на которую - ссылалось одно из подвыражений регекса. Вы можете пользовать обратные ссылки с - помощью "\" и последующей цифрой (0-9), например "\1". "\0" - специальная - обратная ссылка, которая обращается ко всему регексу, а не к определённому - подвыражению. Обратные ссылки полезны для поиска строки, содержащей образец - дважды. Например, у вас есть строка nick!user@host. Вы знаете, что есть троян, - nick и username которого содержат "[0-9][a-z]{5}", и они одинаковы. Регекс - "[0-9][a-z]{5}![0-9][a-z]{5}@.+" не подходит, потому что nickname и username в - данном случае могут быть разные. Например, nickname будет "1abcde", а username - "2fghij". Проблема решается с помощью обратных ссылок, используя - "([0-9][a-z]{5})!\1@.+". Этот регекс ищет [0-9][a-z]{5} в нике пользователя, а - потом подставляет найденное значение вместо username с помощью обратной ссылки. -

    - Всего можно использовать до 9-ти обратных ссылок, что является причиной - использования (:?). В этом случае создается подвыражение без обратной ссылки. - Кроме того, что обратные ссылки не сохраняются, это ещё и быстрее работает. - Подвыражения без обратных ссылок используются в тех случаях, когда нет - надобности в создании обратной ссылки и её запоминании.

    -

    A.9 Чувствительность к регистру

    -
    - По умолчанию, Unreal не чувствителен к регистру букв в регексах. Это позволяет, - например, вместе с "www.test.com" блокировать и "WWW.TEST.COM". Конечно, - существует способ сделать регексы чувствительными к регистру букв, например, - для поиска троянов. Вы можете динамически включать чувствительность с помощью - (?-i) и выключать с помощью (?i). Например, регекс "(?-i)[a-z](?i)[a-z]" будет - искать в образце буквы только нижнего регистра, следующие за буквами нижнего - или верхнего (чувствительность выключена). Также необходимо не забывать - выключать чувствительность к регистру, или использовать чувствительность только - для конкретного подвыражения. Например, регекс "(?-i:[a-z])[a-z]" будет - эквивалентен предыдущему, т.к. -i применится только для подвыражения в скобках, - а остальная часть регекса будет не чувствительна к регистру по умолчанию.