LINUX.ORG.RU
ФорумAdmin

попадаю в спам листы

 , ,


2

2

Добрый день! Имеется почтовый сервер Postfix+Dovecot FreeBSDx32 9.1. В последний месяц постоянно попадаю в спам листы. Сегодня угодил в junkemailfilter.com. Обычно попадаю в spamhaus.org и abuseat.org, на данных ресурсах обычно пишут что бы я закрыл 25 порт и возможно в моей сети спамбот. 25 порт я закрыл,ситуация не изменилась,junkemailfilter.com был более информативен, выдал вот что

/ip-log/karma.log.11:black 88.204.206.22 infraenergo.kz QUIT HICOUNT - 5 HeloIP HeloIP NoHeloHost - X=tesla H=infraenergo.kz [88.204.206.22] HELO=[108.38.233.28] SN=[mhmdbevzrnl@pnrlaw.com] T=[joshua_colucci@tdchristian.ca] FR=[abigail@pofeleve.com] S=[How to lose weight fast, safely and naturally]
/ip-log/karma.log.12:virus 88.204.206.22 infraenergo.kz NOTQUIT [S=5 - FakeMX BadHeloNS SenderNoA NoQuit] X=tarbaby H=infraenergo.kz [88.204.206.22] HELO=[trafagom.com] SN=[bsmaw@echeck-up.com] 

Поискал указанные домены в логах Postfix и ни чего не нашел. Помогите разобраться в вышеизложенном логе, куда копать, какой домен поставить на прослушку в iptables что бы вычислить кто из моей сети туда обращается?

Ответ на: комментарий от tyrpyr

Тут возможен некий бардачек, почтарь настраивался лет 5 назад и был первым сервером на *unix

queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
myhostname = mail.infraenergo.kz
mydomain = infraenergo.kz
myorigin = $myhostname
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
###interval http://forum.ixbt.com/topic.cgi?id=76:5434
#maximal_backoff_time = 7200s
#minimal_backoff_time = 180s
#queue_run_delay = 180s
#####
mime_header_checks = regexp:/usr/local/etc/postfix/mime_header_checks
relay_domains =
local_recipient_maps = unix:passwd.byname $alias_maps
unknown_local_recipient_reject_code = 550
mynetworks_style = host
mynetworks = 127.0.0.0/8 192.168.112.0/23 192.168.111.0/24
smtp_data_done_timeout = 1200s
strict_rfc821_envelopes = yes
smtpd_restriction_classes= MyUserSender

MyUserSender=
 check_sender_access hash:/usr/local/etc/postfix/whitelist
 permit_mynetworks
 reject_unauthenticated_sender_login_mismatch
 reject_non_fqdn_sender
 reject_unlisted_sender
# reject_unverified_sender
# permit_sasl_authenticated
# permit_tls_authenticated
 reject

#HELO/EHLO
smtpd_helo_required = yes
smtpd_helo_restrictions=
 permit_mynetworks
 permit_sasl_authenticated
# permit_tls_authenticated
 check_sender_access hash:/usr/local/etc/postfix/whitelist
 check_helo_access pcre:/usr/local/etc/postfix/pcre_check_helo_access
 reject_invalid_helo_hostname
 reject_non_fqdn_helo_hostname
# reject_unknown_helo_hostname

#MAIL FROM
smtpd_sender_restrictions=
 permit_mynetworks
 permit_sasl_authenticated
 check_sender_access hash:/usr/local/etc/postfix/whitelist
 check_sender_access pcre:/usr/local/etc/postfix/sender_access
 reject_non_fqdn_sender
 reject_unknown_sender_domain
 reject_unlisted_sender

#RCPT TO
smtpd_recipient_restrictions=
 permit_mynetworks
 permit_sasl_authenticated
# permit_tls_authenticated
# check_client_access hash:/etc/postfix/rbl_override
 check_sender_access hash:/usr/local/etc/postfix/whitelist
 check_helo_access pcre:/usr/local/etc/postfix/infra_access
 reject_non_fqdn_recipient
 reject_unknown_recipient_domain
 reject_unlisted_recipient
 reject_unverified_recipient
 reject_unauth_destination
 reject_rbl_client zen.spamhaus.org
 reject_rbl_client bl.spamcop.net

#DATA
smtpd_data_restrictions=
 permit_mynetworks
# permit_sasl_authenticated
# permit_tls_authenticated
 check_sender_access hash:/usr/local/etc/postfix/whitelist
 reject_multi_recipient_bounce
 reject_unauth_pipelining

#Copy to
#recipient_bcc_maps = hash:/usr/local/etc/postfix/recipient_bcc
#sender_bcc_maps = hash:/usr/local/etc/postfix/sender_bcc

#header_checks investment
header_checks = pcre:/usr/local/etc/postfix/header_checks

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
smtpd_banner = $myhostname ESMTP $mail_name
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = /usr/local/share/doc/postfix
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = /usr/local/share/doc/postfix

virtual_mailbox_base = /var/spool/mail/

virtual_alias_maps = proxy:mysql:/usr/local/etc/postfix/mysqlLookupMaps/alias.conf

virtual_mailbox_domains = proxy:mysql:/usr/local/etc/postfix/mysqlLookupMaps/domain.conf

virtual_mailbox_maps = proxy:mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf
#virtual_mailbox_limit_maps = proxy:mysql:/usr/local/etc/postfix/mysqlLookupMaps/quota.conf

virtual_minimum_uid             = 65534
virtual_uid_maps                = static:65534
virtual_gid_maps                = static:65534

virtual_transport               = dovecot
dovecot_destination_recipient_limit = 1

smtpd_restriction_classes= MyUserSender
MyUserSender=
 permit_mynetworks
 check_sender_access hash:/usr/local/etc/postfix/whitelist
 reject_unauthenticated_sender_login_mismatch
 reject_non_fqdn_sender
 reject_unlisted_sender
# reject_unverified_sender
# permit_sasl_authenticated
# permit_tls_authenticated
 reject

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

message_size_limit = 52428800
mailbox_size_limit = 209715200

#smtpd_soft_error_limit = 1
#smtpd_error_sleep_time = 15
smtpd_hard_error_limit = 3

# ============================================================
# AMAVIS
# ============================================================
content_filter=smtp-amavis:[127.0.0.1]:10024
#receive_override_options = no_address_mappings

smtpd_tls_auth_only = yes
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /usr/local/etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
transport_maps = hash:/usr/local/etc/postfix/transport

Demolitionman
() автор топика
Ответ на: комментарий от tyrpyr

На данный момент я еще нахожусь в этой спамбазе тынц! не знаю как с нее выйти, есть экспресс делистинг, стоит денег, как я понял бесплатно я от туда выйду в течении 7 дней, если не попаду в др спам базы.

Demolitionman
() автор топика

На верняк закрой 25 порт из локалки наружу , если конечно никто не пользуется каким ни будь Gmail из клиента.

idyurev
()
Ответ на: комментарий от idyurev

порт закрыт. Закрыл в первый же день как в спам базы попал. месяц назад.

Demolitionman
() автор топика
Ответ на: комментарий от dhameoelin

Это я знаю, но у меня в локалке 200 компов. как его вычислить на NAT машине? В качестве шлюза в инет у меня Centos 7 + iptables. Раньше хоть было дело попадал в спамлист, так там писали на какой ip идет рассылка. далее на шлюзе я просто слушай этот ip

tcpdump -i enp2s0 -n -nn -ttt dst host 216.66.15.109[\code]
в логах видел кто конкретно с локалки туда обращался. А сейчас хз как вычислить и что вообще искать.

Demolitionman
() автор топика

25 порт я закрыл

587 тоже закрой, некоторые умеют банить за спам ещё и клиентские сети

sergej ★★★★★
()
Ответ на: комментарий от Demolitionman

Могу лишь предположить ,что нужно вычислить кто ломится наружу по 25 порту.

idyurev
()

Имеется почтовый сервер Postfix+Dovecot FreeBSDx32 9.1.
В последний месяц постоянно попадаю в спам листы.

Это именно почтовый сервер, или же это ещё и шлюз по совместительству ? Если первое, то начать надо с изучения логов Postfix. Если второе, то можно заредиректить 25-ый порт на локальный IP и, опять, изучать логи Postfix. Это если совет с tcpdump не поможет, к примеру, из-за редкого проявления проблемы.

AS ★★★★★
()
Ответ на: комментарий от AS

Это почтовый сервер. Шлюз уже другой комп на Centos. Если я заредектю 25 порт на локальный ip как же почта в таком случае будет ходить? Сдается мне что 25 порт вообще ни при чем, т.к он закрыт для всех кроме почтового сервера. Когда я попадаю в спам лист и смотрю логи на почтаре, то в отправленных письмах ни одного криминального нет. К примеру была такая ситуация, был выходной день, ни кто не работал, в сети были 5-6 компов, и каким то образом угадили в спам базы, я вышел из них, ночью опять попали. В логах Postfix ни чего не нашел, искал по фильтру to=<

Demolitionman
() автор топика
Ответ на: комментарий от tyrpyr

Хорошая команда, не знал как убрать из логов почтарь)

Demolitionman
() автор топика
Ответ на: комментарий от tyrpyr

В общем поставил на прослушку 587 и 25. Хотя 25 лишнее, он у меня закрыт локалке.

Demolitionman
() автор топика
Ответ на: комментарий от idyurev

эт плохо, совсем плохо))) Но даже в таком случае в логах постфикса была бы странная переписка моих юзеров, но ее нет. отправленные письма с почтаря все нашим контрагентам.

Demolitionman
() автор топика
Ответ на: комментарий от Demolitionman

Откуда то с инета

Если почта у вас не отправляется, вероятно ваш Интернет-провайдер заблокировал 25-й порт, используемый для работы протокола SMTP.

Это ограничение можно обойти, используя порт 587 (БЕЗ ШИФРОВАНИЯ или с использованием TLS-шифрования) или 465 (с использованием SSL-шифрования) обычно не блокируется.

tyrpyr
()
Ответ на: комментарий от tyrpyr

Немного оффтопа, сейчас планирую шлюз защитить антивирусом, но еще не нашел хорошего решения, необходимо проверять входящий трафик на 80 443 25 110 порты. Не подскажите как без прокси проверять входящий трафик налету? по надобности распаковывать архивы и тоже проверять.

Demolitionman
() автор топика
Ответ на: комментарий от Demolitionman

Это почтовый сервер. Шлюз уже другой комп на Centos.

Тогда изучай логи Постфикса. Всё, что шлётся через него, там обязано быть. Если бы кто-то слал изнутри (через зомби-машинку), то светился бы IP шлюза с NAT, а не почтовика. При этом, если отсылка таки через почтовик (NAT там ведь не включен, и он шлюзом и случайно стать не мог ?), то, всё равно, изучай логи Постфикса. Всё обязано быть там.

У тебя abuse@ есть ? В теории, некоторые могут пытаться по реверсу ориентироваться, а не только владельца блока IP искать. В смысле, тот же spamcop вполне шлёт уведомления, если находит, куда.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от tyrpyr

вот так шикарней

tcpdump -i enp2s0 -n -nn -ttt port 25 and not src 192.168.1.1 and not dst 192.168.1.1

Demolitionman
() автор топика
Ответ на: комментарий от Demolitionman

Это я пример с инета привел, что 587 порт тоже надо прикрыть

tyrpyr
()
Ответ на: комментарий от Demolitionman

Есть. Я поэтому 587й порт пустил через запасного провайдера, чтоб ипшник почтового сервера не компрометировать.

sergej ★★★★★
()
Ответ на: комментарий от AS

Есть у меня одна запись в логах

May 13 00:02:17 mail postfix/smtpd[67877]: warning: run-time library vs. compile-time header version mismatch: OpenSSL 1.0.0 may not be compatible with OpenSSL 1.0.1

А появилась она премерно годик два назад, помните в ssl уязвимость нашли, ну так вот, я в срочном порядке ставил openssl другой версии и видимо как то криво посадил. Варнинг потом заметил, все ни как руки до него не доходят.

Demolitionman
() автор топика
Ответ на: комментарий от sergej

Надо бы действительно преобрести 3g модем и повешать все не нужные серверу порты на него. На данный момент поставил на сканирование 25 и 587 порты, если что то через шлюз пойдет, я об этом узнаю.

Demolitionman
() автор топика
Ответ на: комментарий от Demolitionman

Проверь блокировку

# Пропуск сервака 
iptable -A FORWARD -i eth0 -p tcp -m tcp -s 192.168.0.1 --dport 25 -j ACCEPT
# Всем запрет
iptable -A FORWARD -i eth0 -p tcp -m tcp --dport 25 -j DROP

tyrpyr
()

Если 25 порт наружу из локалки закрыт, то ищи заразу на почтовом сервере. При этом, заразе вовсе не обязательно слать что-то через твой postfix, о котором она, судя по этому /ip-log/karma.log, ничего и не знает.

Что видно из karma.log? Зараза представляется удаленному серверу, защищенному junkemailfilter, то plain IP (HELO=[108.38.233.28]), то именем домена, у которого нет ни IP, ни NS, ни MX (HELO=[trafagom.com]). Соответственно, и 465, 587 порты тут не причем. Через них зараза могла бы авторизоваться на стороннем почтовике и слать спам через него, но junkemailfilter.com фиксирует твой почтовик как client IP. infraenergo.kz [88.204.206.22] - это ведь твое?

rubic
()
Ответ на: комментарий от rubic

Лучше всего наверняк попробовать зателнетится из локалки на какой нить внешний почтовик telnet mx.yandex.ru 25 . А то вдруг в правилах запарился и 25 порт все таки не прикрыт.

idyurev
()
Ответ на: комментарий от Demolitionman

Есть у меня одна запись в логах

Нет, это просто про то, что постфикс собирался изначально с другой версией библиотеки. Хорошо это, или плохо - вопрос отдельный. Если ничего не падает, то по барабану, скорее всего. Логи смотреть надо на предмет того кто шлёт и куда шлёт. Искать надо непонятные адреса, ошибки доставки и т.п. По каждому из таких писем разбираться, откуда оно взялось на сервере.

AS ★★★★★
()

Смотрите tcpdump на точке выхода с ip почтовика, если у вас почтарь висит на одном ip вместе с кучей вин юзеров (даже если они ограничены в правах, все равно заразу найдут) то вы ссзб.

anc ★★★★★
()
Ответ на: комментарий от AS

Нет, это просто про то, что постфикс собирался изначально с другой версией библиотеки.

Т.е что бы убрать warning нужно просто пересобрать postfix?

Demolitionman
() автор топика
Ответ на: комментарий от anc

если у вас почтарь висит на одном ip вместе с кучей вин юзеров

Это как понять? у почтаря свой ip у юзеров у каждого свои. ссзб тоже не понял)

Demolitionman
() автор топика
Ответ на: комментарий от Demolitionman

Это как понять? у почтаря свой ip у юзеров у каждого свои.

В смысле в инет они ходят через NAT с одного IP. Я тоже советую tcpdump'ом слушать 25-ый порт на самом шлюзе, а не на почтовике.

Еще гипотетические варианты:

1. На почтовике троянец который делает почтовую рассылку, которая не отображается в логах постфикса.

2. Такой же троянец может быть на шлюзе.

3. На шлюзе/почтовике случаем не висит какой-нить сайт на каком-нить вордпрессе/друпале через дыры в которых происходит спам рассылка ?

ссзб тоже не понял)

Сам себе злобный буратино.

crlam0
()
Ответ на: комментарий от crlam0

На шлюзе/почтовике случаем не висит какой-нить сайт на каком-нить вордпрессе/друпале

Сайт висит на почтаре, там же и web сервер apache/ Сайт писал наш прогер, я в этом не бум бум, как выяснить на чем он? (вордпрессе/друпале)

Еще один момент, на прошлой неделе закрыл ssh к своему шлюзу на внешку, и на данный момент в спамбазы не попал. прошло уже 6 дней. Может быть мой ssh взломали?

На почтовике троянец который делает почтовую рассылку, которая не отображается в логах постфикса.

Как примерно будет выглядеть такая цепочка рассылки спама?

Demolitionman
() автор топика
Ответ на: комментарий от Demolitionman

Сайт висит на почтаре, там же и web сервер apache/ Сайт писал наш прогер, я в этом не бум бум, как выяснить на чем он? (вордпрессе/друпале)

Если не бум-бум то что даст знание того, какая CMS установлена ? :) Советую на всякий в /etc/php5/php.ini (или как там в CentOS) включить лог почты: mail.log = /var/log/mail-php.log, и уже по логу посмотреть идет ли спам через PHP скрипты.

Это не 100% вариант, у троянца на PHP может быть своя реализация SMTP, но это весьма сомнительно: обычно они используют стандартный mail().

Еще один момент, на прошлой неделе закрыл ssh к своему шлюзу на внешку, и на данный момент в спамбазы не попал. прошло уже 6 дней. Может быть мой ssh взломали?

Вот это уже интереснее. Сам демон ssh вряд ли :) Для начала стоит посмотреть под какими логинами коннектились до того, как был закрыт ssh. Может один из логинов взломан, и из под него собственно запускали софт для спама.

Как примерно будет выглядеть такая цепочка рассылки спама?

Троянец выкачивает с инета спам базу, дальше по ней делает рассылку используя свою реализацию SMTP, а не через postfix.

crlam0
()
Ответ на: комментарий от crlam0

В смысле в инет они ходят через NAT с одного IP.

Это действительно так, у нас дорогой интернет для юр лиц. по этому сидим на одном ip.

Demolitionman
() автор топика
Ответ на: комментарий от Demolitionman

Т.е что бы убрать warning нужно просто пересобрать postfix?

Видимо да. Я не знаю, но текст предупреждения говорит именно об этом.

AS ★★★★★
()
Ответ на: комментарий от Demolitionman

Сайт висит на почтаре, там же и web сервер apache/ Сайт
писал наш прогер, я в этом не бум бум, как выяснить на чем он?

О! Вот это может быть причина. Но в логах Постфикса всё должно быть. Блин, в который раз надо повторить, что надо перечитать логи Постфикса на предмет поиска отправки непонятных сообщений ?

AS ★★★★★
()
Ответ на: комментарий от Demolitionman

Может быть мой ssh взломали?

Лог ssh. В /var/log/messages, вероятнее всего. Но вряд ли, я бы на CMS на веб-сервере грешил в первую очередь. Наверняка же Worpfess/Jumala/e.t.c. стоит, да ? Вряд ли сайт с нуля написан весь ?

AS ★★★★★
()
Ответ на: комментарий от crlam0

Для начала стоит посмотреть под какими логинами коннектились до того, как был закрыт ssh.

Думаю причина найдена, вот самые первые строки файла доступа к ssh. Дальше даже смотреть не стал

May  1 03:33:40 gw sshd[4651]: Accepted password for ftp from 96.43.128.226 port 63816 ssh2
May  1 03:33:40 gw sshd[4651]: pam_unix(sshd:session): session opened for user ftp by (uid=0)
May  1 03:34:54 gw sshd[4653]: error: connect_to 213.186.33.40 port 80: failed.
May  1 03:34:54 gw sshd[4653]: channel_by_id: 0: bad id: channel free
May  1 03:34:54 gw sshd[4653]: Disconnecting: Received oclose for nonexistent channel 0.
May  1 03:34:54 gw sshd[4651]: pam_unix(sshd:session): session closed for user ftp

Вот такие вот дела друзья) Спасибо за помощь! Советую остальным прежде чем открывать ssh наружу, убедиться что на доступе не стоят юзеры с дефолтными паролями что то вроде ftp ftp.

И желательно, даже если у вас мегасекьюрный пароль поищите в гугле статьи о защите ssh, там их валом.

В моем случае была совершена оплошность, ssh у меня всегда закрыт на внешку, я им ни когда не пользуюсь,кроме как из локальной сети, а тут в спешке уходил в отпуск, забыл про все секьюрности и открыл ssh.

Demolitionman
() автор топика
Ответ на: комментарий от Demolitionman

Раз Joomla то:

Советую на всякий в /etc/php5/php.ini (или как там в CentOS) включить лог почты: mail.log = /var/log/mail-php.log, и уже по логу посмотреть идет ли спам через PHP скрипты.

Просто на всякий случай, а то ваш программер поставит на нее какой-нить дырявый плагин, а ты будешь опять со спам листов удалять свой IP.

crlam0
()
Ответ на: комментарий от crlam0

включить лог почты: mail.log

Включил, как теперь проверить его работу? Файл естесно создал, апач ребутнул, пока что в логе чисто

Demolitionman
() автор топика
Ответ на: комментарий от Demolitionman

Создай в корне сайта testmail.php с содержанием:

<?php

mail('user@domain.com', 'Test message', 'Test message');

И открой http://site.ru/testmail.php в браузере, потом посмотри лог. Не забудь только потом этот testmail.php удалить.

crlam0
()
Ответ на: комментарий от Demolitionman

Включил,

Ещё полезно в php.ini добавлять mail.add_x_header = On. Не помню, в какой версии PHP появилось, но уже давно достаточно.

AS ★★★★★
()
Ответ на: комментарий от crlam0

Создай в корне сайта testmail.php с содержанием

От такая строка в логе появилась

mail() on [/usr/local/www/postfixadmin/testmail.php:3]: To: user@domain.com -- Headers:

Demolitionman
() автор топика
Ответ на: комментарий от Demolitionman

Все правильно: ты из тестового скрипта попробовал отправить письмо To: user@domain.com. Теперь в этом логе будут указываться все отправленные письма из PHP скриптов через mail(). Соответственно если спам пойдет через Джумлу - в этом логе сразу это будет видно.

Теперь желательно, как верно посоветовал AS, добавить в php.ini mail.add_x_header = On: без заголовков недостаточно информативно.

crlam0
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.