The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Мой сервер на MTA Exim - начал рассылать спам!"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта)
Изначальное сообщение [ Отслеживать ]

"Мой сервер на MTA Exim - начал рассылать спам!"  +/
Сообщение от Ano email on 17-Ноя-13, 11:35 
Добрый день!

Почтовый сервер на Exim стал рассылать спам с поддельными заголовками.
В почтовых логах красуется хост с именем "local".

От этого хоста за 4 дня ушло 7500 писем на разные почтовые сервера в которых даже есть gmail.com, aol.com и т.д.

Мой IP занесли в черные списки.
Почта от клиентов этого домена перестала ходить на многие сервера.

Конфиг exim.conf:
################ Начало файла ###################
primary_hostname = mail.company.ru
hide mysql_servers = localhost/mail/sqlmail/M4pnh12

domainlist local_domains = ${lookup mysql{SELECT `domain` \
FROM `domain` WHERE \
`domain`='${quote_mysql:$domain}' AND \
`active`='1'}}

domainlist relay_to_domains = ${lookup mysql{SELECT `domain` \
FROM `domain` WHERE \
`domain`='${quote_mysql:$domain}' AND \
`active`='1'}}

hostlist   relay_from_hosts = localhost:127.0.0.0/8:192.168.1.0/24 #add the hosts from which you allow relaying here

acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data

av_scanner = clamd:/var/run/clamav/clamd.socket

####
#spamd_address = 127.0.0.1 783

##### tls
#tls_on_connect_ports = 465
#tls_advertise_hosts = *
#tls_certificate = /usr/local/etc/ssl/certs/mail.pem
#tls_privatekey = /usr/local/etc/ssl/certs/mail.key
#####
daemon_smtp_ports = 25 : 465


####
qualify_domain = company.ru
qualify_recipient = company.ru
allow_domain_literals = false
exim_user = exim
exim_group = exim
never_users = root
rfc1413_query_timeout = 0s

sender_unqualified_hosts = +relay_from_hosts
recipient_unqualified_hosts = +relay_from_hosts


ignore_bounce_errors_after = 45m
timeout_frozen_after = 15d
helo_accept_junk_hosts =
auto_thaw = 1h
smtp_banner = "$primary_hostname, ESMTP Postfix"
smtp_accept_max = 50
smtp_accept_max_per_connection = 25
smtp_connect_backlog = 30
smtp_accept_max_per_host = 20
split_spool_directory = true
remote_max_parallel = 15
return_size_limit = 70k
message_size_limit = 64M
helo_allow_chars = _
smtp_enforce_sync = true

log_selector = \
+all_parents \
+connection_reject \
+incoming_interface \
+lost_incoming_connection \
+received_sender \
+received_recipients \
+smtp_confirmation \
+smtp_syntax_error \
+smtp_protocol_error \
-queue_run

syslog_timestamp = no

begin acl

acl_check_rcpt:

deny condition = ${if eq{$host_lookup_failed}{1}}
#deny condition = ${lookup{$sender_host_name}nwildlsearch{black.list}{yes}}

accept  hosts = :
deny    message       = "incorrect symbol in address"
domains       = +local_domains
local_parts   = ^[.] : ^.*[@%!/|]

deny    message       = "incorrect symbol in address"
domains       = !+local_domains
local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

accept  local_parts   = postmaster
domains       = +local_domains

deny    message       = "HELO/EHLO required by SMTP RFC"
condition     = ${if eq{$sender_helo_name}{}{yes}{no}}

accept  authenticated = *
deny    !authenticated = *
        sender_domains = +local_domains : +relay_to_domains
        message = Warning! Authentication required!

deny    message       = "Your IP in HELO - access denied!"
hosts         =  * : !+relay_from_hosts : !81-196.niitk.kz
condition     = ${if eq{$sender_helo_name}\
{$sender_host_address}{true}{false}}

deny    condition     = ${if eq{$sender_helo_name}\
{$interface_address}{yes}{no}}
hosts         = !127.0.0.1 : !localhost : *
message       = "My IP in your HELO! Access denied!"

deny    condition     = ${if match{$sender_helo_name}\
{\N^\d+$\N}{yes}{no}}
hosts         = !127.0.0.1 : !localhost : *
message       = "Incorrect HELO string"

# filter spammers from dynamic ips
deny    message       = "your hostname is bad (adsl, poll, ppp & etc)."
condition     = ${if match{$sender_host_name} \
{adsl|dialup|pool|peer|dhcp} \
{yes}{no}}

warn
set acl_m0 = 30s
warn
hosts = +relay_from_hosts:         #disable waits for 'friendly' hosts
set acl_m0 = 0s
warn
logwrite = Delay $acl_m0 for $sender_host_name \
[$sender_host_address] with HELO=$sender_helo_name. Mail \
from $sender_address to $local_part@$domain.
delay = $acl_m0

accept  domains       = +local_domains
endpass
message       = "No such user"
verify        = recipient

accept  domains       = +relay_to_domains
endpass
message       = "i don't know how to relay to this address"
verify        = recipient

deny    message       = "you in blacklist - $dnslist_domain \n $dnslist_text"
          dnslists      = opm.blitzed.org : \
                          cbl.abuseat.org : \
                          bl.csma.biz :\
                          dialups.mail-abuse.org :\
                          bl.spamcop.net :\
                          zen.spamhaus.org
                          
accept  hosts         = +relay_from_hosts

deny    message       = "Homo hominus lupus est"

acl_check_data:

# check for viruses
deny malware = *
message = "Your message contains viruses: $malware_name"

# if needed - add spam filtering here

# permit everything else
accept

begin routers

dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more

system_aliases:
driver      = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}'}}

dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT `goto` FROM \
`alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}'}{yes}{no}}
transport = dovecot_delivery

begin transports

remote_smtp:
driver = smtp
#interface = 4.3.2.1 #your public ip address, if it's the main server ip - you could skip this parameter. if it's an alias- it must be specified in clear

dovecot_delivery:
driver = pipe
command = /usr/libexec/dovecot/deliver -d $local_part@$domain
message_prefix =
message_suffix =
delivery_date_add
envelope_to_add
return_path_add
log_output
user = exim

address_pipe:
driver = pipe
return_output

address_reply:
driver = autoreply

begin retry

*                    *       F,2h,15m; G,16h,1h,1.5; F,4d,6h

begin rewrite

begin authenticators

auth_plain:
driver = plaintext
public_name = LOGIN
server_prompts = Username:: : Password::
server_condition = "${if crypteq{$2}{${lookup mysql{SELECT `password` FROM `mailbox` WHERE `username` = '${quote_mysql:$1}'}}}{yes}{no}}"
server_set_id = $1

auth_login:
driver = plaintext
public_name = PLAIN
server_condition = "${if crypteq{$3}{${lookup mysql{SELECT `password` FROM `mailbox` WHERE `username` = '${quote_mysql:$2}'}}}{yes}{no}}"
server_prompts = :
server_set_id = $2

auth_cram_md5:
driver = dovecot
public_name = CRAM-MD5
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
################## Конец Файла ########################

Стало интересно, как мой почтовик стал рассылать спам при опции:
accept  authenticated = *

Кто не прошел авторизацию, тот не может посылать письма.

Также стоит это:
hostlist   relay_from_hosts = localhost:127.0.0.0/8:192.168.1.0/24

Здесь нету сети 0.0.0.0/0 - которая говорит что мой сервер открытый релей.

Как вообще произошло такое, если самые основные опции в конфиге уже имеются.

Поможет ли мне опция?:
auth_advertise_hosts = *

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Мой сервер на MTA Exim - начал рассылать спам!"  +/
Сообщение от mcshel (ok) on 17-Ноя-13, 11:45 
Проверьте сервер на openrelay, можно использовать любой бесплатный сервис. Просто наберите в google openrelay test

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Мой сервер на MTA Exim - начал рассылать спам!"  +/
Сообщение от Ano email on 17-Ноя-13, 11:58 
> Проверьте сервер на openrelay, можно использовать любой бесплатный сервис. Просто наберите
> в google openrelay test
> Проанализируйте логи, откуда идет почта. Возможно у вас сами пользователи рассылают или
> произошел взлом и т.д.

Проверка на Openreay делал - закрыт релей.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Мой сервер на MTA Exim - начал рассылать спам!"  +/
Сообщение от PavelR (ok) on 17-Ноя-13, 11:59 
>> Проверьте сервер на openrelay, можно использовать любой бесплатный сервис. Просто наберите
>> в google openrelay test
>> Проанализируйте логи, откуда идет почта. Возможно у вас сами пользователи рассылают или
>> произошел взлом и т.д.
> Проверка на Openreay делал - закрыт релей.

отлично.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Мой сервер на MTA Exim - начал рассылать спам!"  +/
Сообщение от Ano email on 17-Ноя-13, 11:59 
> Проверка на Openreay делал - закрыт релей.

Сейчас в очереди 68467 писем, хочу посмотреть что там :)
# exim -bpc
68467

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Мой сервер на MTA Exim - начал рассылать спам!"  +/
Сообщение от Ano email on 17-Ноя-13, 12:09 
Посмотрел заголовок сообщения:
#### НАЧАЛО ЗАГОЛОВКА ####
1VffGh-00080K-3A-H
exim 93 93
<tahsin.yilmaz@ors.com.tr>
1384129335 0
-helo_name User
-host_address 108.59.244.136.35990
-host_auth auth_plain
-interface_address 217.15.54.54.25
-received_protocol esmtpa
-body_linecount 65
-max_received_linelength 68
-auth_id admin@company.ru
YY astute25@in.com
YY astropolis_111@hotmail.com
YN astronut@bellsouth.net
NN astronuata2501@tiscali.it
YY astrow20@gmil.com
#### КОНЕЦ ЗАГОЛОВКА ####

Видно что спам пер с учетки admin@compnay.ru

Само тело сообщения уже не так интересно - это спам.
#### НАЧАЛО ТЕЛА СООБЩЕНИЯ ####
1VffGh-00080K-3A-D
I am Mrs. Connie Stevens I am a US citizen
and i am 34 years Old. I reside here in 108 Crockett Court. Apt 303,
New Braunfels Texas, United States and i am thinking of
relocating since I am now rich.I am one of those that took
...
#### КОНЕЦ ТЕЛА СООБЩЕНИЯ ####

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Мой сервер на MTA Exim - начал рассылать спам!"  +/
Сообщение от Дядя_Федор on 17-Ноя-13, 12:19 
> Видно что спам пер с учетки admin@compnay.ru

Ну, пароль, вероятно, ломанули. Эка невидаль. :) Срочно меняйте пароль, перекрывайте доступ по 25 порту сетке (сеткам) откуда идут соединения и чистите очередь.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Мой сервер на MTA Exim - начал рассылать спам!"  +/
Сообщение от Аноним (??) on 17-Ноя-13, 14:35 
>  Ну, пароль, вероятно, ломанули. Эка невидаль. :)

Сто пудов подобрали или сбрутили пароль.
Кстати, заодно неплохо бы суточный лимит отправки сообщений установить для своих пользователей, вряд-ли кто-то из них будет более сотни сообщений в день отсылать, а если в очередной раз спамерюги подберут пароль то они не смогут такое огромное количество сообщений пропихнуть.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Мой сервер на MTA Exim - начал рассылать спам!"  +/
Сообщение от Ano email on 17-Ноя-13, 15:27 
>>  Ну, пароль, вероятно, ломанули. Эка невидаль. :)
> Сто пудов подобрали или сбрутили пароль.
> Кстати, заодно неплохо бы суточный лимит отправки сообщений установить для своих пользователей,
> вряд-ли кто-то из них будет более сотни сообщений в день отсылать,
> а если в очередной раз спамерюги подберут пароль то они не
> смогут такое огромное количество сообщений пропихнуть.

Ага, надо вот такую штуку поставить:

acl_not_smtp = acl_not_smtp

begin acl
acl_not_smtp:
        deny message = Sender rate overlimit - $sender_rate / $sender_rate_period
        ratelimit = 50 / 1h / strict
        accept

Ну кто же знал, что подберут пароль....

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Мой сервер на MTA Exim - начал рассылать спам!"  +/
Сообщение от Нуб on 13-Фев-14, 15:56 
>[оверквотинг удален]
> Ага, надо вот такую штуку поставить:
> acl_not_smtp = acl_not_smtp
> begin acl
> acl_not_smtp:
>         deny message = Sender
> rate overlimit - $sender_rate / $sender_rate_period
>         ratelimit = 50 /
> 1h / strict
>         accept
> Ну кто же знал, что подберут пароль....

а куда это конкретно вставлять? у меня таже проблема

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Мой сервер на MTA Exim - начал рассылать спам!"  +/
Сообщение от Ano email on 14-Фев-14, 16:11 
>[оверквотинг удален]
>> acl_not_smtp = acl_not_smtp
>> begin acl
>> acl_not_smtp:
>>         deny message = Sender
>> rate overlimit - $sender_rate / $sender_rate_period
>>         ratelimit = 50 /
>> 1h / strict
>>         accept
>> Ну кто же знал, что подберут пароль....
> а куда это конкретно вставлять? у меня таже проблема

Я не стал эти правила ставить, перешел на Postfix. Там установил Fail2ban, потом iptables настроил чтобы не разрешал многое число коннектов от одного IP адреса. Еще вот хочу Denyhost попробовать. Для нас блондинок хватает и Postfix'a, пока еще до Exim'a не доросли...
Благо при переходе с Exim на Postfix в базе хранились MD5 пароли. Все осталось как было Dovecot, RoundCube, PostfixAdmin и MySQL. Заменился только MTA...

А те правила думаю здесь надо прописывать:
begin acl
acl_not_smtp:
        deny message = Sender rate overlimit - $sender_rate / $sender_rate_period
        ratelimit = 30 / 1h / strict
        accept
***

acl_check_rcpt:
***

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру