On 18/06/2021 21:50, Victor Ustugov wrote:
> Alexander Sheiko wrote on 18.06.2021 23:39:
>> 2021-06-18 23:26 GMT+03:00, Victor Ustugov <vic...@corvax.kiev.ua>:
>>
>>> кстати, заголовок http запросов Host описан в RFC7230 "HTTP/1.1 Message
>>> Syntax and Routing". т. е. он не является частью протокола HTTP/1.0
>>
>> Тоже об этом было подумал - работает.же, хоть и непривычно набирать
>> так в телнете.
>>
>> Виктор, а что ещё можно полезного дёргать по http(s) и парсить, в
>> плане защиты от спама?
> 
> rspamd
> 
> интеграцию можно целиком реализовать средствами ${readsocket{}} и
> ${extract json{}} без всяких local_scan() и dlfunc.
> 
> протокол там не сложный (по сути просто POST запрос со специфическими
> заголовками).
> да и если что, Сева подскажет.
> 

Недавно спрашивали, как находить домены спамеров с пустой заглавной
страницей. Правило написалось такое:

rspamd_config.EMPTY_LANDING = {
  callback = function(task)
    local rspamd_http = require "rspamd_http"
    local mime_from = task:get_from('mime')
    if mime_from then
      local from_dom = mime_from[1].domain

      local function http_callback(err, code, _, headers)
        if not err and headers then
          local cl = headers['content-length']
          if cl and tonumber(cl) and tonumber(cl) == 0 then
            task:insert_result('EMPTY_LANDING', 1.0, from_dom)
          end
        end
      end
      rspamd_http.request{
        headers = {
          ['User-Agent'] = 'Mozilla/5.0 (Android 4.4; Mobile; rv:41.0)
Gecko/41.0 Firefox/41.0',
        },
        url = string.format('http://%s/', from_dom),
        task = task,
        method = 'head',
        max_size = 128,
        timeout = 5,
        opaque_body = true,
        no_ssl_verify = true,
        callback = http_callback
      }
    end
  end,
  score = 7.0,
  description = "Empty landing page for the from domain",
}

HTTPS Rspamd тоже поддерживает нативно. Но я не советую делать запросы
ко всем подряд страницам: там может быть слишком много данных, например,
или можно запросто уронить какого-нибудь дохлого отправителя. Поэтому в
этом правиле используется HEAD запрос.

Давно есть мысль сделать что-то вроде "тяжелого дивизиона" правил,
которые применяются, если письмо находится в "серой" зоне, и никак не
понятно, что с ним делать, а риски определенные есть: например,
определенные вложения, javascript, pdf с javascript, подозрительные
ссылки итд.

_______________________________________________
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users

Ответить