-
-
Новая система базируется на использовании блоков. Каждая секция или блок имеет
- специфический формат. К примеру:
-
<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 |
-
-
-
Флаги, устанавливаемые по умолчанию:
-
-
- | local |
- global |
- admin/coadmin |
- services-admin |
- netadmin |
-
-
- | can_rehash |
- can_rehash |
- can_rehash |
- can_rehash |
- can_rehash |
-
-
- | helpop |
- helpop |
- helpop |
- helpop |
- helpop |
-
-
- | can_globops |
- can_globops |
- can_globops |
- can_globops |
- can_globops |
-
-
- | can_wallops |
- can_wallops |
- can_wallops |
- can_wallops |
- can_wallops |
-
-
- | can_localroute |
- can_localroute |
- can_localroute |
- can_localroute |
- can_localroute |
-
-
- | can_localkill |
- can_localkill |
- can_localkill |
- can_localkill |
- can_localkill |
-
-
- | can_kline |
- can_kline |
- can_kline |
- can_kline |
- can_kline |
-
-
- | can_unkline |
- can_unkline |
- can_unkline |
- can_unkline |
- can_unkline |
-
-
- | can_localnotice |
- can_localnotice |
- can_localnotice |
- can_localnotice |
- can_localnotice |
-
-
- | |
- can_globalroute |
- can_globalroute |
- can_globalroute |
- can_globalroute |
-
-
- | |
- can_globalkill |
- can_globalkill |
- can_globalkill |
- can_globalkill |
-
-
- | |
- can_globalnotice |
- can_globalnotice |
- can_globalnotice |
- can_globalnotice |
-
-
- | |
- |
- global |
- global |
- global |
-
-
- | |
- |
- can_dccdeny |
- can_dccdeny |
- can_dccdeny |
-
-
- | |
- |
- |
- can_setq |
- can_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 |
+
+
+
Флаги, устанавливаемые по умолчанию:
+
+
+ | local |
+ global |
+ admin/coadmin |
+ services-admin |
+ netadmin |
+
+
+ | can_rehash |
+ can_rehash |
+ can_rehash |
+ can_rehash |
+ can_rehash |
+
+
+ | helpop |
+ helpop |
+ helpop |
+ helpop |
+ helpop |
+
+
+ | can_globops |
+ can_globops |
+ can_globops |
+ can_globops |
+ can_globops |
+
+
+ | can_wallops |
+ can_wallops |
+ can_wallops |
+ can_wallops |
+ can_wallops |
+
+
+ | can_localroute |
+ can_localroute |
+ can_localroute |
+ can_localroute |
+ can_localroute |
+
+
+ | can_localkill |
+ can_localkill |
+ can_localkill |
+ can_localkill |
+ can_localkill |
+
+
+ | can_kline |
+ can_kline |
+ can_kline |
+ can_kline |
+ can_kline |
+
+
+ | can_unkline |
+ can_unkline |
+ can_unkline |
+ can_unkline |
+ can_unkline |
+
+
+ | can_localnotice |
+ can_localnotice |
+ can_localnotice |
+ can_localnotice |
+ can_localnotice |
+
+
+ | |
+ can_globalroute |
+ can_globalroute |
+ can_globalroute |
+ can_globalroute |
+
+
+ | |
+ can_globalkill |
+ can_globalkill |
+ can_globalkill |
+ can_globalkill |
+
+
+ | |
+ can_globalnotice |
+ can_globalnotice |
+ can_globalnotice |
+ can_globalnotice |
+
+
+ | |
+ |
+ global |
+ global |
+ global |
+
+
+ | |
+ |
+ can_dccdeny |
+ can_dccdeny |
+ can_dccdeny |
+
+
+ | |
+ |
+ |
+ can_setq |
+ can_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 применится только для подвыражения в скобках,
+ а остальная часть регекса будет не чувствительна к регистру по умолчанию.
-
- Гораздо больше шансов, что ваш сервер будет хакнут через
- другую уязвимость, чем через баг в UnrealIRCd. К примеру, если на сервере
- запущены ещё и http, dns, smtp и ftp сервисы, то риск возрастает. Также, если
- сервер многопользовательский (т.е. у вас есть шелл), возрастает риск локальных
- эксплоитов и плохих уровней доступа (см. далее). Этот риск наиболее опасен, так
- что будьте внимательны при выборе поставщика шелла.
-
-
- Всегда проверяйте, правильность разрешений для вашей домашней директории и
- директории 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 для атаки на другие сервера.
-
-
- Это не специфика UnrealIRCd, но всё же есть вещи, зависимые от пользователей...
- Всегда выбирайте ваших операторов и администраторов очень внимательно. И всегда
- помните, что это - самое слабое звено. Может вы не полностью прочитали
- данный документ, может ваш друг, как оператор, сделает что-то глупое. Например
- расшарит свой жёсткий диск через netbios/kazaa/morpheus/.., получит
- трояна, будет использовать простой пароль и проч. и проч. и проч. Не всё же
- находится под вашим контролем.
- И ещё, всегда очень внимательно выбирайте уровни привилегий для
- людей(oper::flags), указывайте только самые необходимые.
-
-
- Используйте зашифрованное по SSL соединение между серверами и как
- оператор, это защитит вас от перехвата трафика. Перехват трафика возможен, если
- атакующий хакнул сервер где-то между вами и вашим сервером, тогда он может
- видеть ВЕСЬ сетевой трафик, который проходит через него: смотреть все данные,
- захватывать все пароли (логины операторов, сервисов и т.д.). По этому,
- всегда используйте ssh вместо telnet.
-
-
- Большинство сетей имеют печальный опыт атак флудеров или атак вида "отказ в
- обслуживании". Большинство сетей имеют главный хаб-сервер, однако его забывают
- защитить от атак.
- Я вам объясню:
- 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 точки (хабы), и ваши хабы и сервисы будут
- оставаться живыми :).
-
-
- Вы должны хорошо понимать, что никогда не будете защищены на 100%. Вы (и мы)
- находим и исправляем каждую уязвимость, однако атакующему достаточно будет
- воспользоваться одним "дырявым" сервером, чтобы парализовать работу
- сети. Всё, что было описано выше - это помощь, чтобы сократить и уменьшить
- вероятность риска. Найдите время для защиты своей сети и обучения ваших
- операторов. И помните, что многие люди не беспокоятся о защите до тех пор, пока
- их не взломают... и попробуйте это опровергнуть ;).
-
- Чередование является способом создания условия "или". Символом
- оператора чередования служит вертикальная черта "|". Например, если вы хотите
- сказать "a или b", вы можете использовать "a|b". Для обычных символов легче и
- удобнее будет использование выражений в квадратных скобках, однако оператор
- чередования может применяться в более сложных условиях с использованием
- подвыражений.
-
- Подвыражение - это последовательность символов, которая
- рассматривается как одно целое. Существует два способа создания подвыражений.
- Эти два способа отличаются наличием "обратных ссылок", которые будут
- рассмотрены ниже. Для объявления подвыражения с использованием обратных ссылок
- просто поместите его в скобки (). Для создания подвыражения без обратных
- ссылок, замените скобки на "(?:". Например, "([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}".
-
- По умолчанию, Unreal не чувствителен к регистру букв в регексах. Это позволяет,
- например, вместе с "www.test.com" блокировать и "WWW.TEST.COM". Конечно,
- существует способ сделать регексы чувствительными к регистру букв, например,
- для поиска троянов. Вы можете динамически включать чувствительность с помощью
- (?-i) и выключать с помощью (?i). Например, регекс "(?-i)[a-z](?i)[a-z]" будет
- искать в образце буквы только нижнего регистра, следующие за буквами нижнего
- или верхнего (чувствительность выключена). Также необходимо не забывать
- выключать чувствительность к регистру, или использовать чувствительность только
- для конкретного подвыражения. Например, регекс "(?-i:[a-z])[a-z]" будет
- эквивалентен предыдущему, т.к. -i применится только для подвыражения в скобках,
- а остальная часть регекса будет не чувствительна к регистру по умолчанию.