mirror of https://github.com/rspamd/rspamd.git
Rapid spam filtering system
https://rspamd.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
17 years ago | |
|---|---|---|
| compat | 18 years ago | |
| perl | 17 years ago | |
| plugins | 17 years ago | |
| test | 17 years ago | |
| utils | 17 years ago | |
| Makefile.in | 17 years ago | |
| README.koi8.txt | 17 years ago | |
| cfg_file.h | 17 years ago | |
| cfg_file.l | 17 years ago | |
| cfg_file.y | 17 years ago | |
| cfg_utils.c | 17 years ago | |
| config.h.in | 17 years ago | |
| configure | 17 years ago | |
| filter.c | 17 years ago | |
| filter.h | 17 years ago | |
| fstring.c | 17 years ago | |
| fstring.h | 17 years ago | |
| main.c | 17 years ago | |
| main.h | 17 years ago | |
| mem_pool.c | 17 years ago | |
| mem_pool.h | 17 years ago | |
| memcached-test.c | 18 years ago | |
| memcached.c | 17 years ago | |
| memcached.h | 17 years ago | |
| perl.c | 17 years ago | |
| perl.h | 17 years ago | |
| protocol.c | 17 years ago | |
| protocol.h | 17 years ago | |
| upstream.c | 18 years ago | |
| upstream.h | 17 years ago | |
| url.c | 17 years ago | |
| url.h | 17 years ago | |
| util.c | 17 years ago | |
| util.h | 18 years ago | |
| worker.c | 17 years ago | |
README.koi8.txt
API Rspamd.
===========
TODO.
Логика работы фильтров rspamd.
==============================
1) Все фильтры регистрируются в конфиг файле в описании цепочек фильтров:
header_filters=regexp,my_func
где имя фильтра - это либо название c модуля, либо название перл функции
Типы фильтров:
* header_filters - фильтр заголовков
* mime_filters - фильтр для каждой mime части
* message_filters - фильтр всего сообщения целиком
* url_filters - фильтры URL ссылок
Свои результаты фильтры регистрируют при помощи добавления результата в метрику.
2) Метрика - это символьное значение, в котором регистрируют свои результаты фильтры
Существует метрика по умолчанию - "default", в которой регистрируют результаты фильтры,
для которых явно не определена метрика
Для каждой метрики существует специальная функция консолидации, которая рассчитывает коэффициенты
результатов согласно внутренней логике соответствия символов и коэффициентов. По умолчанию такой
функцией является простая сумма, которая настраивается особым образом в конфигурационном файле:
# Блок factors
factors {
# Например, "SURBL_DNS"=5.0
"SYMBOL_NAME" = coefficient;
};
Также для метрики можно зарегистрировать особую функцию, прописав в описании метрики
metric {
name = "test_metric";
function = "some_function";
required_score = 20.0;
};
Пока поддерживаются только перловые функции.
3) Результат - это пара значений: SYMBOL:FLAG, при этом, SYMBOL - это
строчка, характеризующая результат, а FLAG - сработал данный фильтр или нет
(1 или 0). Результат добавляется в метрику, после чего передается функции консолидации.
4) Итог - на выходе мы имеем обработанное сообщение, список метрик и их символов и результаты
проверки.
Протокол.
=========
Формат ответа:
SPAMD/1.1 0 EX_OK
\ / \/
Версия Код
ошибки
Spam: False ; 2 / 5
Это формат совместимости с sa-spamd (без метрик)
Новый формат ответа:
RSPAMD/1.0 0 EX_OK
Metric: Name ; Spam_Result ; Spam_Mark / Spam_Mark_Required
Metric: Name2 ; Spam_Result2 ; Spam_Mark2 / Spam_Mark_Required2
Заголовков типа metric может быть несколько.
Формат вывода символов:
SYMBOL1, SYMBOL2, SYMBOL3 -- формат совместимости с sa-spamd
Metric: SYMBOL1, SYMBOL2, SYMBOL3 -- формат rspamd
Формат ответа зависит от формата запроса:
PROCESS SPAMC/1.2
\ / \ /
Команда Версия
SPAMC - протокол совместимости с sa-spamd
RSPAMC - новый протокол rspamd
В любом из режимов работы поддерживаются следующие заголовки:
Content-Length - длина сообщения
Helo - HELO, полученный от клиента
From - MAIL FROM
IP - IP клиента
Recipient-Number - число реципиентов
Rcpt - реципиент
Эти значения могут использоваться в фильтрах rspamd.