Как вычислить спамера на exim?

S
На сайте с 16.08.2016
Offline
34
5546

Добрый день. Нужна помощь с настройкой/оптимизацией exim против спама или просто совет, что прочитать/изучить.

Итак, есть сервер с ispmanager 4 PRO. На нем очень много клиентов и много сайтов. Сайты постоянно ломают и шлют через них спам. Раньше я видел, через очередь exim с каких сайтов рассылают, т.к. в php.ini также включен header. Сейчас же нечисть начала слать спам неведомыми мне способами. Нигде ничего не видно, ни в логах экзима, ни в логе от php mail

Я уже залочил отправку писем через acl на такие емаилы как aol.com|hotmail и прочее спамосборники. Раньше помогало, сейчас уже нет.

Я пошел дальше и начал отслеживать reject.log. В нем была куча попыток авторизаций/релей и прочей мути. Я решил их банить нещадно через ipset. И этого мало. Спама стало чуть меньше и заодно базу собрал в 20к айпишников, но все равно лезет зараза и непонятно, откуда.

В логах льется вот такое

2016-08-19 10:49:38 login authenticator failed for (User) [202.65.138.2]: 535 Incorrect authentication data

2016-08-19 11:04:09 H=(cmomb.com) [171.232.200.76] sender verify fail for <info@ONTOLOGY.br>: Unrouteable address

2016-08-19 11:19:55 H=(1-39-9-100.live.vodafone.in) [1.39.9.100] F=<info@PARADISE.br> rejected RCPT <poljanskij.n@erko.ru>: Sender verify failed

2016-08-19 12:13:52 H=(static.vnpt.vn) [14.174.184.48] F=<info@TACTFUL.fr> rejected RCPT <sergo@erko.ru>: Sender verify failed

Насколько я понял, это попытки авторизации и они почему-то проходят. Чаще всего попытки отправить через почтовые ящики, которые не созданы на сервере.

Есть идея, чтобы сделать фильтр, который не позволяет отправлять в принципе через ящики, которые не созданы на сервере, а еще фильтр, который в принципе не позволяет отправлять через сторонние H=(cmomb.com). Только как написать эти правила в acl - ума не приложу

Помогите, пожалуйста, разобраться С меня на пиво ;)

O
На сайте с 28.07.2009
Offline
131
#1

Извините, если уже думали над этим, но в качестве затравки предлагаю прочитать про graylisting и fail2ban.

занимаюсь автоматизацией торговли (http://olegon.ru)
AGHost
На сайте с 16.11.2011
Offline
115
#2

snakekir, спам рассылается с сервера?

1. Включаете логирование исходящего трафика на 25,587,465 порты -


iptables -I OUTPUT -p tcp --dport 25 -j LOG --log-prefix "mail-out-25:" --log-uid
iptables -I OUTPUT -p tcp --dport 587 -j LOG --log-prefix "mail-out-587:" --log-uid
iptables -I OUTPUT -p tcp --dport 465 -j LOG --log-prefix "mail-out-465:" --log-uid

2. В php.ini настроить директиву mail.log = /путь/php-mail.log

И смотрите в "tail -f /var/log/messages|grep mail-out" там будет UID/GID пользователя который отсылает почту. Плюс логи php-mail.log, в которых видно отправку почту через php. А еще лучше закрыть вышеуказанные порты на отправку, есть трояны, которые отправляют сразу на внешний smtp, тем самым подставляя IP адрес сервера под всякие DNSBL списки.

Для фильтрации входящего спама - SPF/DKIM/DMARC + greylisting,spamassassin + списки DNSBL.

8 лет на рынке услуг хостинга - https://agho.st (https://agho.st)
S
На сайте с 16.08.2016
Offline
34
#3
AGHost:
snakekir, спам рассылается с сервера?

1. Включаете логирование исходящего трафика на 25,587,465 порты -


2. В php.ini настроить директиву mail.log = /путь/php-mail.log

И смотрите в "tail -f /var/log/messages|grep mail-out" там будет UID/GID пользователя который отсылает почту. Плюс логи php-mail.log, в которых видно отправку почту через php. А еще лучше закрыть вышеуказанные порты на отправку, есть трояны, которые отправляют сразу на внешний smtp, тем самым подставляя IP адрес сервера под всякие DNSBL списки.

Для фильтрации входящего спама - SPF/DKIM/DMARC + greylisting,spamassassin + списки DNSBL.

Спасибо большое. Попробую первый пункт. Второй нереален при огромном количестве доменов.

С входящим все в порядке. Слава богу, в панельке это уже реализовано.

Не подскажете, что это за метод отправки такой, что он нигде не логируется? Что означает надпись

2016-08-19 12:13:52 H=(static.vnpt.vn) [14.174.184.48] F=<info@TACTFUL.fr> rejected RCPT <sergo@erko.ru>: Sender verify failed

Может знаете, где можно найти такое решение "Есть идея, чтобы сделать фильтр, который не позволяет отправлять в принципе через ящики, которые не созданы на сервере, а еще фильтр, который в принципе не позволяет отправлять через сторонние H=(cmomb.com). Только как написать эти правила в acl - ума не приложу" ?

AGHost
На сайте с 16.11.2011
Offline
115
#4
snakekir:
Второй нереален при огромном количестве доменов.

Это зря, потому что 99% спама рассылается php скриптами.

snakekir:
2016-08-19 12:13:52 H=(static.vnpt.vn) [14.174.184.48] F=<info@TACTFUL.fr> rejected RCPT <sergo@erko.ru>: Sender verify failed

Это попытка отправить письмо в ящик sergo@erko.ru с адреса info@TACTFUL.fr, который не существует. Поэтому возникает ошибка - Sender verify failed

---------- Добавлено 19.08.2016 в 13:56 ----------

Еще в exim.conf - log_selector = +arguments, так будет видна папка, откуда идет рассылка, в mainlog строка - cwd=...

S
На сайте с 16.08.2016
Offline
34
#5
AGHost:
Это зря, потому что 99% спама рассылается php скриптами.



Это попытка отправить письмо в ящик sergo@erko.ru с адреса info@TACTFUL.fr, который не существует. Поэтому возникает ошибка - Sender verify failed

---------- Добавлено 19.08.2016 в 13:56 ----------

Еще в exim.conf - log_selector = +arguments, так будет видна папка, откуда идет рассылка, в mainlog строка - cwd=...

1) Да, я знаю, НО отсылают, через какую-то уязвимость. Лог php.mail включен общий и там нету ничего подозрительного.

2) +arguments - к сожалению, это уже давно все добавлено.

Я вот что заметил. Приходят жалобы из abuse центра. Так вот они указывают вот что

Unsolicited bounce from: IP_СЕРВЕРА

IP_СЕРВЕРА appears to be sending unsolicited bounces, please see:

https://www.spamcop.net/fom-serve/cache/329.html

[ Offending message ]

Return-path: <>

Envelope-to: info@GIGAWATT.nl

Delivery-date: Fri, 19 Aug 2016 13:09:57 +0200

Received: from mail.gigawatt.nl [84.244.151.141]

by hermes with IMAP (fetchmail-6.3.26)

for <harald@localhost> (single-drop); Fri, 19 Aug 2016 13:07:00 +0200 (CEST)

Received: from ([IP_СЕРВЕРА] helo=orlov.ru)

by hosting12.csv-networks.nl with esmtps (TLSv1:DHE-RSA-AES256-SHA:256)

(Exim 4.85)

id 1bahgT-0006uj-Ok

for info@GIGAWATT.nl; Fri, 19 Aug 2016 13:09:57 +0200

Received: from exim by orlov.ru with local (Exim 4.72)

id 1bahfS-0006Bv-HQ

for info@GIGAWATT.nl; Fri, 19 Aug 2016 15:08:54 +0400

Date: Fri, 19 Aug 2016 15:08:54 +0400

Message-Id: <E1bahfS-0006Bv-HQ@orlov.ru>

X-Failed-Recipients: zakaz@russkie-valenki.ru

Auto-Submitted: auto-replied

From: Mail Delivery System <Mailer-Daemon@orlov.ru>

To: info@GIGAWATT.nl

Subject: Mail delivery failed: returning message to sender

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its

recipients. This is a permanent error. The following address(es) failed:

zakaz@russkie-valenki.ru

SMTP error from remote mail server after RCPT TO:<zakaz@russkie-valenki.ru>:

host emx.mail.ru [217.69.139.180]: 550 5.1.1 Bad destination mailbox address:

invalid mailbox. Local mailbox zakaz@russkie-valenki.ru is unavailable:

user not found

Как я понимаю, каким-то образом, мой баунс высылается не мне, а на zakaz@russkie-valenki.ru, который вообще не наш домен

UPD

Кажется, оно - https://www.spamcop.net/fom-serve/cache/329.html

K
На сайте с 17.02.2006
Offline
106
#6

Вам нужно сделать скрипт, который по netstat будет смотреть 25 порт у апача и тут же смотреть по номеру процесса через fullstatus apache, что за скрипт и сайт использовал этот порт.

Т.е. на Ваш сервер льют скрипт почтового клиента и через него почту шлют через свой почтовик, поэтому и получается, что почту exim не отсылал, но Ваш сервер спамер.

Хостим сайты. Есть VDS с IP.
[umka]
На сайте с 25.05.2008
Offline
456
#7

Закройте исходящие соединения на порты 25, 587, 465 для всех, кроме exim-а.

Лог в помощь!
Andreyka
На сайте с 19.02.2005
Offline
822
#8

У человека обычный спам-рикошет, а вы ему столько ненужного насоветовали

Значит так.

Во-первых bounce_return_message = false и bounce_return_body = false, чтоб не включать спам при баунсе.

Во-вторых почитать таки ACL (http://www.exim.org/exim-html-current/doc/html/spec_html/ch-access_control_lists.html) и сделать что-то типа

check_recipient:

accept domains = +local_domains

endpass

message = unknown user

verify = recipient

accept hosts = :

deny senders = :

message = A valid sender header is required for bounces

Не стоит плодить сущности без необходимости

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий