LINUX.ORG.RU
решено ФорумAdmin

Дырявые сайты, идёт рассылка спама

 , ,


1

2

Postfix+Dovecot

В очереди по 30к писем стоят, постоянно заносят в блеклисты. Отправка писем идёт с адресов:

random_name@domain.com
Можно ли как-то сделать в postfix так, чтобы отправлять письма можно было только с уже имеющихся почтовых акков, а рандомногенерируемые запретить?

Вот эта строчка вроде как не позволяет не авторизованным пользователям отправлять почту, но вроде она не работает (или я её неправильно понял?)

smtpd_sasl_security_options = noanonymous

Конфиг:

# cat /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file = /etc/postfix/sslsmtpd.crt
smtpd_tls_key_file = /etc/postfix/sslsmtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

myhostname = domain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $myhostname
mydestination = $myhostname, localhost.$mydomain, localhost
bounce_queue_lifetime = 0
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mydomain = localdomain
mailbox_command = /usr/bin/maildrop
local_recipient_maps = unix:passwd.byname $alias_maps
virtual_alias_domains = /etc/mail/local-host-names
virtual_alias_maps = hash:/etc/mail/virtusertable
smtp_generic_maps = hash:/etc/mail/generic
sender_dependent_default_transport_maps = regexp:/etc/mail/domainips
default_transport = smtp:
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
#####
smtpd_sasl_security_options = noanonymous
#####
smtpd_tls_auth_only = no

smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_received_header = yes
smtpd_tls_loglevel = 1

# Запретить исходящую почту с наших доменов, но с несуществующих у нас адресов???
smtpd_reject_unlisted_sender = yes

smtpd_sender_restrictions = permit_sasl_authenticated, check_sender_access hash:/etc/mail/access
smtpd_client_restrictions = permit_sasl_authenticated, check_client_access hash:/etc/mail/access
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_sender_access hash:/etc/mail/access, check_client_access hash:/etc/mail/access, check_recipient_access hash:/etc/mail/access, reject_unauth_destination, reject_unlisted_recipient, reject_unverified_recipient, check_policy_service inet:127.0.0.1:10023
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:/var/run/clamav/clamav-milter.ctl, inet:localhost:12345
non_smtpd_milters = inet:localhost:12345

★★★★★

Вот эта строчка вроде как не позволяет не авторизованным пользователям отправлять почту, но вроде она не работает (или я её неправильно понял?)
smtpd_sasl_security_options = noanonymous

Я перепутал, вроде вот эта строчка:

smtpd_reject_unlisted_sender = yes

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

А ты не пробовал посмотреть письма в спуле? Это бывает полезно. Нужно понять откуда они берутся.

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

Иначе, кто-то узнал имя/пароль для авторизации на почтовике и использует тебя как релей. в таком случае достаточно сменить пароль.

vel ★★★★★ ()

О знакомый ник и знакомая тема. Все таки не стал читать офф документацию по почтовкам?

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

Ты заголовки писем смотрел? Идентификационные данные обычно видны в первом заголовке «From:» ( если это не локальный взлом ).

Имя домена твое или какое-то левое?

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

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

Где я могу почитать об этом? И слово «спул» мне не знакомо, извиняюсь за тупость.

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

Ты заголовки писем смотрел?

Не знаю как их смотреть.

Имя домена твое или какое-то левое?

Не моё, чужое.

Amet13 ★★★★★ ()

Заметил, что если добавить в php.ini в: disable_functions = mail то эти рандомные письма не генерируются и не отправляются.

Может в эту сторону копать?

Вру, ничего оно не помогает.

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

Вот пример:

# cat /var/spool/postfix/defer/F/F1C8D16DD8B7

<johnfmartinphd@msn.com>: host mx1.hotmail.com[65.54.188.126] said: 421 RP-001 (BAY004-MC4F17) Unfortunately, some messages from 111.222.333.333 weren't sent. Please try again. We have limits for how many messages can be sent per hour and per day. You can also refer to http://mail.live.com/mail/troubleshooting.aspx#errors. (in reply to MAIL FROM command)
recipient=johnfmartinphd@msn.com
offset=955
status=4.0.0
action=delayed
diag_type=smtp
diag_text=421 RP-001 (BAY004-MC4F17) Unfortunately, some messages from 111.222.333.333 weren't sent. Please try again. We have limits for how many messages can be sent per hour and per day. You can also refer to http://mail.live.com/mail/troubleshooting.aspx#errors.
mta_type=dns
mta_mname=mx1.hotmail.com
reason=host mx1.hotmail.com[65.54.188.126] said: 421 RP-001 (BAY004-MC4F17) Unfortunately, some messages from 111.222.333.333 weren't sent. Please try again. We have limits for how many messages can be sent per hour and per day. You can also refer to http://mail.live.com/mail/troubleshooting.aspx#errors. (in reply to MAIL FROM command)
Не вижу, за что тут можно зацепиться.

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

Где я могу почитать о лечении этого? В официальных доках такие ситуации не описаны (по крайней мере я так читал).

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

Не вижу, за что тут можно зацепиться.

За queue id ( F1C8D16DD8B7 ). Грепай в почтовых логах, смотри откуда появилось.

А пока ОСТАНОВИ POSTFIX БЛДЖД

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

Временно ли удалось решить проблему?

Читаю лог поломанного сайта:

tail -f /var/log/apache2/ololo.ru.log
"POST /js/chtototam.php HTTP/1.1" 404 55665 "-" "-" 
cat .../ololo.ru/js/chtototam.php
кракозябры
Чищу chtototam.php, айпишник рассыльника добавляю в бан.

Повторяю несколько раз, для других сайтов.

Проверяю очередь, в очереди ничего нет.

Я всё правильно сделал?

Amet13 ★★★★★ ()
Ответ на: Временно ли удалось решить проблему? от Amet13

Это временная мера.

Теперь нужно понять через что был выполнен первоначальный взлом.

За пхп-шными проектами нужен глаз да глаз.

Через что есть доступ на запись к php-файлам сервера? Если продолбали пароль, то менять. Хуже если использовали уязвимость в php или php-шном коде.

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

Ломают периодически joomla и wordpress, патчи по возможности программист накладывает, но как правило это бывает уже после того, как идёт что-то не так.

Amet13 ★★★★★ ()

в php.ini в секции [mail function] добавь:

mail.log = /var/log/phpmaillog

Найди скрипт, рассылающий письма, вычисляешь сломанный VirtualHost, прописываешь ему

php_admin_value sendmail_path /dev/null
И информируй владельца сайта, что если он не почистит и не обновит движок ты за себя не отвечаешь

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

Незачто...Я сам от таких приключений замучился в свое время

r0ck3r ★★★★★ ()
Ответ на: Временно ли удалось решить проблему? от Amet13

Re: Временно ли удалось решить проблему?

Неплохо.

1. веб-сервер ( http, nginx, что там ещё ), как и application server ( tomcat, oc4j, oas, weblogic и т.д. ), категорически недопустимо запускать от root. Убедись, что они запущены от отдельного пользователя.

2. На каталог со скриптами и страницами сайта у этого отдельного пользователя не должно быть прав на запись.

Запись только в те каталоги, куда необходимо ( cache, upload и т.д. ). И в этих доступных на запис каталогах должно быть запрещено выполнение скриптов.

3. Посмотри в сторону mod_security

http://habrahabr.ru/post/228103/ тут кстати даётся ссылка на vulnerability scanner

http://habrahabr.ru/post/228339/

router ★★★★★ ()
Ответ на: Re: Временно ли удалось решить проблему? от router

1. веб-сервер ( http, nginx, что там ещё ), как и application server ( tomcat, oc4j, oas, weblogic и т.д. ), категорически недопустимо запускать от root. Убедись, что они запущены от отдельного пользователя.

Есть такое, отдельным юзером запускаются.

2. На каталог со скриптами и страницами сайта у этого отдельного пользователя не должно быть прав на запись.

Понял. С этим разберемся.

3. Посмотри в сторону mod_security

Почитаю.

Спасибо.

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

[offtopic] Привет:) читал первые 3 слова и вздрогнул) [/offtopic]

Да кстати амигос, ты где потерялся? =) Все еще гранит науки грызешь?

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

не, сессию закрыл, долгов нет. черкну на мыло.

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

Потому-что делать что-то не читав документации и абсолютно не понимая как у тебя что работает - признак незрелого ума.

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

Потому-что делать что-то не читав документации

В документации разве написано, как обнаружить источник спама и какие меры по его предотвращению применить?

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

2. На каталог со скриптами и страницами сайта у этого отдельного пользователя не должно быть прав на запись.

Понял. С этим разберемся.

Не слушай этот бред, лучше заюзай mpm-itk (если апач).

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

Сначала не понял, почему бред. Потом ещё раз перечитал весь свой комментарий.

Да, в контексте сервера java приложений это бред, согласен.

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

Я про разных пользователей для вхостов. Подход «все вхосты работают от одного пользователя» + «закрывать какие-то каталоги на запись» устарел.

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

Но на смену ему пришла концепция - «один сервис - одна виртуалка»

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

В документации по Postfix рассказано как недопускать спам. Это как минимум не позволять срать от несуществующих пользователей со своего домена без авторизации.

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

Такое тоже есть:

smtpd_sasl_security_options = noanonymous

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

Это не единственная директива, которую нужно прописать. Кури доки внимательнее.

Pinkbyte ★★★★★ ()
21 февраля 2015 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.