6 червня 2013 р.

Поштовий сервер Postfix, перевірка заголовків на сервері що у "каскаді"

Кафедральний поштовий сервер (Postfix) університету стоїть у релеї від головного поштового сервера, тобто отримує пошту тільки по локальній мережі від головного поштового сервера.
І частенько політика перевірки сервера що надсилає пошту абонентам, пропускає спам.
Ось для блокування деяких листів від серверів що не не мають доменного імені на IP адресу - створено перевірку заголовків. Головна проблема у тому, що необхідно перевірити заголовок (header) що складається з декількох рядків (multiline).

Приклад заголовків:
Received: from mx.someuniversity.edu (mail.someuniversity.edu [10.0.0.10])
        by mail.eco.someuniversity.edu (Postfix) with ESMTP id 7B4212E242
        for <email@eco.someuniversity.edu>; Wed,  5 Jun 2013 23:41:19 +0300 (EEST)
Received: from 2.133.121.19 (unknown [2.133.121.19])
        by mx.someuniversity.edu (Postfix) with SMTP id 6348F8396D
        for <email@eco.someuniversity.edu>; Wed,  5 Jun 2013 23:38:24 +0300 (EEST)
Received: from unknown (HELO localhost) (tdetkovo1@zos-v.ru@211.175.80.95)
        by 2.133.121.19.megaline.telecom.kz with ESMTPA; Wed, 5 Jun 2013 ... +0400
X-Originating-IP: 211.175.80.95
From: tdetkovo1@zos-v.ru
Конфігурація Postfix.
main.cf:
header_checks = regexp:$config_directory/acl/header_checks.regexp
./acl/header_checks.regexp:
/^Received: from .* \(unknown .*[[:space:]]+by mx.someuniversity.edu/ WARN be SPAM
Після такої конфігурації у логах буде повідомлення WARNING при приході подібних листів від IP =  unknown.

Для тестування можна зберігти  шаблон тест заголовків до файлу наприклад "text.txt" і виконати перевірку на привила:
postmap -hq - regexp:./acl/header_checks.regexp < text.txt
Якщо правило спрацює то отримаємо тільки фільтрований рядок з заголовком.

Пілся тестування можемо прийняти рішення що побити з подібними листами згідно правилами.
Наприклад,
перенаправити до спам ящика: REDIRECT spamholder@eco.someuniversity.edu
або відкинути REJECT SPAM detected by eco.someuniversity.edu

Немає коментарів:


Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready