Alex 'AdUser' Z
9 years ago
3 changed files with 84 additions and 2 deletions
@ -0,0 +1,81 @@ |
|||||||
|
--- |
||||||
|
title: Почтовый шлюз: задание со звёздочкой (Базовая настройка rspamd) |
||||||
|
tags: mail, spam, rspamd, репост |
||||||
|
--- |
||||||
|
|
||||||
|
Первое о чём хочу сказать - софт достаточно "молодой", года полтора, поэтому в каждой версии ломается нещадно, даже в микро-версиях (например 1.0.3 -> 1.0.4). |
||||||
|
Второе - правила по-умолчанию тоже достаточно "сырые". Могут быть и false-positive, и неадекватные score. |
||||||
|
Пример - дефолтные 15 баллов могут набрать только совсем лопоухие. |
||||||
|
|
||||||
|
В отличие от spamassassin'а здесь не придают такого значения регекспам, анализ *текста* достаточно слабый. |
||||||
|
Например нет простейшего обнаружения смешанных букв в словах. |
||||||
|
Хотя посмотреть на расширение прикреплённого файла - это пожалуйста. |
||||||
|
|
||||||
|
Также в проекте практически отсутствует актуальная документация. Хотите разобраться - готовьтесь смотреть исходники. |
||||||
|
|
||||||
|
Это очень большая тема, на самом деле, поэтому я приведу лишь те моменты, без настройки которых оно совсем уж днище. |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
Калибруем score |
||||||
|
--------------- |
||||||
|
|
||||||
|
В качестве формата конфига используется нечто nginx-подобное[^fn1]. Сам конфиг достаточно развесист, его править не рекомендуется, задолбаетесь потом мержить. |
||||||
|
Свои настройки рекомендую держать в отдельном файле и подключать через ".include" |
||||||
|
|
||||||
|
Из ``metrics.conf``: |
||||||
|
|
||||||
|
metric { |
||||||
|
name = "default"; |
||||||
|
actions { |
||||||
|
reject = 10; |
||||||
|
add_header = 6; |
||||||
|
greylist = 4; |
||||||
|
# ^^ вот это место рекомендую поправить в основном файле, |
||||||
|
# остальное - в отдельном: |
||||||
|
.include "$CONFDIR/metrics-custom.conf" |
||||||
|
|
||||||
|
``metrics-custom.conf``: |
||||||
|
|
||||||
|
group { |
||||||
|
name = "custom"; |
||||||
|
# переопределяем score |
||||||
|
symbol { weight = -4.0; name = "KNOWN_DOMAIN"; } |
||||||
|
symbol { weight = 15.0; name = "SPAM_LINK"; } |
||||||
|
# и .д. |
||||||
|
} |
||||||
|
|
||||||
|
С 1.2.0 наконец-то осознали необходимость переопределения конфигов, и ввели ``local.d``/``override.d``, |
||||||
|
куда можно скидывать свои файлики с настройками, ОДНАКО, оно [не работает без напильника](https://github.com/vstakhov/rspamd/issues/563). |
||||||
|
Это как пример того, что творят с конфигами при каждом апгрейде. |
||||||
|
В следующей версии могут, например, втихую выкинуть ``override.d`` и все сложенные туда конфиги превратятся в тыкву. |
||||||
|
|
||||||
|
Fuzzy-storage |
||||||
|
------------- |
||||||
|
|
||||||
|
Нужно оно для следующей цели: допустим идёт спам "картинкой" с рекламой очередного говносеминара. |
||||||
|
Рассылка идёт из разных доменов, и разными способами: через спижженые аккаунты на mail.ru/yandex, |
||||||
|
взломаные вордпрессы на шаред-хостингах, сервисы типа outbound-protection.outlook.com и т.д. |
||||||
|
Текста нет, только картинка, но одна и та же. АГА. |
||||||
|
|
||||||
|
Значит можно взять эту картинку, посчитать от неё хэш и в дальнейшем отстреливать всю рассылку, откуда бы она ни шла. |
||||||
|
Вобщем, это аналог [dcc](https://en.wikipedia.org/wiki/Distributed_Checksum_Clearinghouse), |
||||||
|
но: 1) только для файлов, 2) с возможностью поднять полностью свой сервис. |
||||||
|
|
||||||
|
Разумеется, оно должно быть предварительно включено в конфиге: |
||||||
|
|
||||||
|
worker { |
||||||
|
bind_socket = "127.0.0.1:11335"; |
||||||
|
type = "fuzzy"; |
||||||
|
hash_file = "${DBDIR}/fuzzy.db" |
||||||
|
expire = 90d; |
||||||
|
allow_update = "127.0.0.1"; |
||||||
|
} |
||||||
|
|
||||||
|
filters = "chartable,dkim,spf,surbl,regexp,fuzzy_check"; # <-- добавлен последний пункт |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
[К оглавлению](/articles/2016/04/10/hardcore-mail-relay-1/), |
||||||
|
|
||||||
|
[^fn1]: Очередной велосипед. Это при том, что libconfig уже изобрели, и в проекте используется lua. |
Loading…
Reference in new issue