Debian Squeeze, Exim 4.72, проверка SPF

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
None
проходил мимо
Сообщения: 6
Зарегистрирован: 2013-05-07 11:32:57

Debian Squeeze, Exim 4.72, проверка SPF

Непрочитанное сообщение None » 2015-09-10 11:08:13

Доброго времени суток.

Имеется сабж, установлен из пакетов (exim4-daemon-heavy)
Все как бы работает, но хотелось бы проверять SPF и DKIM.
По DKIM вроде понятно, по SPF в принципе тоже, но по всяким мануалам, для проверки SPF используется или spfd или тулзы spf-tools-perl
Вот как раз с последними двумя и проблема, их просто нет в установленной системе и apt-get о них ничего не знает, напомню ОС Debian Squeeze.

Может нужно какие-то другие репозитории подключить? не очень в этом шарю, или есть какие-то другие варианты?

Прошу помощи у сообщества.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

le9i0nx
проходил мимо
Сообщения: 5
Зарегистрирован: 2015-09-16 9:47:17

Debian Squeeze, Exim 4.72, проверка SPF

Непрочитанное сообщение le9i0nx » 2015-09-16 16:25:27

вариант для не ленивых
через встройную функциональность
моё имхо такой вариант быстрее т.к. не происходит смена контекста процесса exim на внешний скрипт

лучше собирать на чистой виртуалке чтоб в проде не было сборщика пакетов

Код: Выделить всё

т.к. в стандартной поставке собран без нужных опций приходится собирать самому
apt-get build-dep exim4 
apt-get install libspf2-dev libspf2-2
apt-get source exim4 
cd exim4-....
apt-get install fakeroot
fakeroot debian/rules unpack-configs
cp EDITME.exim4-heavy EDITME.exim4-custom
edit EDITME.exim4-custom
# uncomment next lines:
# EXPERIMENTAL_SPF=yes
# LDFLAGS += -lspf2
fakeroot debian/rules pack-configs
#на ошибки можно забить главное чтоб генерировался файл  debian/EDITME.exim4-custom.diff
fakeroot debian/rules extradaemonpackages=exim4-daemon-custom binary
#идём пить чай и ждём
ls ../*deb
соберётся пакет exim4-daemon-custom_....deb
ставиш руками ну и решаеш зависимости

Код: Выделить всё

acl_smtp_mail = acl_check_mail
...
acl_check_mail:
...
  # Проверка SPF
  #---------------------------------------------------------

  # Накидываем очки за попытку отправить почту с сервера,
  # не указанного в SPF
  warn !authenticated = *
       hosts = !+relay_from_hosts
       spf = fail : softfail
       set acl_c_spamscore = ${eval:$acl_c_spamscore + 50}
       set acl_c_spamlog = $acl_c_spamlog SPF fail;
       add_header = X-Warning: SPF fail

  # За отсутствие записи SPF накидываем достаточное-
  # для попадания в серый список количество очков
  warn !authenticated = *
       hosts = !+relay_from_hosts
       spf = none
       set acl_c_spamscore = ${eval:$acl_c_spamscore + 25}
       set acl_c_spamlog = $acl_c_spamlog SPF none;
       add_header = X-Warning: SPF none

  # Накидываем немного очков за некорректно оформленную SPF запись-
  # или при возникновении ошибки при ее получении
  warn !authenticated = *
       hosts = !+relay_from_hosts
       spf = permerror : temperror : neutral
       set acl_c_spamscore = ${eval:$acl_c_spamscore + 25}
       set acl_c_spamlog = $acl_c_spamlog SPF syntax error or not received;
       add_header = X-Warning: SPF not valid
...

None
проходил мимо
Сообщения: 6
Зарегистрирован: 2013-05-07 11:32:57

Debian Squeeze, Exim 4.72, проверка SPF

Непрочитанное сообщение None » 2015-09-16 16:46:02

le9i0nx, спасибо
не стал пересобирать пакет, подключил другие репозитории, поставил spf perl tools, spf заработало, но не все так однозначно как казалось...
есть абсолютно нормальные почтовики организаций у которых нет ни spf записи ни DKIM, а есть у которых и spf=pass и dkim=pass и все настроено не подкопаешься а спам как из ведра, поставил очки только по spf = fail : softfail

вот как с такими бороться?

Код: Выделить всё

2015-09-16 15:33:56 H=vm13727.hv8.ru [89.108.88.125] I=[]:25 Warning: Received-SPF: pass client-ip=89.108.88.125; envelope-from=buh@zettoletto.ru; helo=vm13727.hv8.ru
2015-09-16 15:33:57 1ZcBuO-0005eU-L6 DKIM: d=zettoletto.ru s=mail c=relaxed/relaxed a=rsa-sha256 [verification succeeded]
2015-09-16 15:33:57 1ZcBuO-0005eU-L6 <= buh@zettoletto.ru H=vm13727.hv8.ru [89.108.88.125] I=[]:25 P=esmtp S=153287 id=E6E355060DD9EB68B4B1F840F4EEA716@zettoletto.ru from <buh@zettoletto.ru> for mail@domain.com
2015-09-16 15:33:57 1ZcBuO-0005eU-L6 => <mail@domain.com> R=dovecot_user T=dovecot_delivery
2015-09-16 15:33:57 1ZcBuO-0005eU-L6 Completed

le9i0nx
проходил мимо
Сообщения: 5
Зарегистрирован: 2015-09-16 9:47:17

Debian Squeeze, Exim 4.72, проверка SPF

Непрочитанное сообщение le9i0nx » 2015-09-17 7:41:56

о знакомые ребята
у меня с ними тоже беда
кое как спасают всеми не любимые ребята
и то нескалько часов проходит прежде чем происходит блокировка (у меня на 120)

Код: Выделить всё

acl_smtp_mail = acl_check_mail
...
acl_check_mail:
...
  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = zen.spamhaus.org
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = xbl.spamhaus.org
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = relay.mail-abuse.org
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = bl.spamcop.net
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = relays.ordb.org
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = smtp.dnsbl.sorbs.net
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = recent.dnsbl.sorbs.net
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = recent.spam.dnsbl.sorbs.net
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = dns.rfc-ignorant.org
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = b.barracudacentral.org
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = dnsbl.inps.de
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = ips.backscatterer.org
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = psbl.surriel.com
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = sbl.spamhaus.org
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = dnsbl-1.uceprotect.net
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = dnsbl-3.uceprotect.net
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;

  warn !authenticated = *
       hosts          = !+relay_from_hosts
       dnslists       = db.wpbl.info
       add_header     = X-Warning: $sender_host_address is in a black list at $dnslist_domain
       set acl_c_spamscore = ${eval:$acl_c_spamscore+40}
       set acl_c_spamlog = $acl_c_spamlog Blacklist $dnslist_domain;
Отправлено спустя 13 минут 51 секунду:
2. спам ловушки ещё спасают
ящики нахожу так

Код: Выделить всё

zcat  -f /var/log/smtp/exim/mail.2015.08.* | grep "Unrouteable address" | grep "@you_domain.ru" | grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"  | sort | uniq -c | sort -n

Код: Выделить всё

EXTRA_PREFIX = /etc/exim4/
...
acl_smtp_rcpt = acl_check_rcpt
...
acl_check_rcpt:
...
  # Добавляем очков за отправку письма на адрес-ловушку
  # P.S. В качестве адресов ловушек используются давно забытые заброшенные
  # адреса или специально созданные. То есть это обычный почтовый ящик.
  warn condition = ${lookup {$local_part@$domain}lsearch{EXTRA_PREFIX/list/spamtraps}{yes}{no}}
       domains     = +local_domains
       set acl_c_spamscore = ${eval:$acl_c_spamscore+120}
       set acl_c_spamlog = $acl_c_spamlog Spamtrap from $sender_address to $local_part@$domain;

сам файл
EXTRA_PREFIX/list/spamtraps

Код: Выделить всё

spamtrap@you_domain.ru
anna@you_domain.ru
только акуратней чтоб не порезать почту с гула и яндекса

None
проходил мимо
Сообщения: 6
Зарегистрирован: 2013-05-07 11:32:57

Debian Squeeze, Exim 4.72, проверка SPF

Непрочитанное сообщение None » 2015-09-18 9:30:11

спасибо, буду крутить