Exim борьба со *SPAM*ом

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Exim борьба со *SPAM*ом

Непрочитанное сообщение Cancer » 2008-08-11 15:06:50

Доброго времени суток!
У меня на мастерхосте почтовый домен с ящиками, и почту с мастерхоста начал пересылать на свой Exim, так вот при включении пересылки мастерхост походу перестал проверять почту на спам и спама стало приходить больше в 2 раза. Так вот как мне можно все это зарезать.?

конфиг Экзима

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


#!/bin/sh
primary_hostname = mail.domain.domain-ak.ru
hide mysql_servers = localhost/exim/exim/exim
domainlist local_domains = ${lookup mysql{SELECT `domain` \
                            FROM `domain` WHERE \
                            `domain`='${domain}' AND \
                            `active`='1'}}
domainlist relay_to_domains = ${lookup mysql{SELECT `domain` \
                            FROM `domain` WHERE \
                            `domain`='${domain}' AND \
                            `active`='1'}}
hostlist   relay_from_hosts = localhost:127.0.0.0/8
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
qualify_domain = zern.domain-ak.ru
qualify_recipient = zern.domain-ak.ru
allow_domain_literals = false
exim_user = mailnull
exim_group = mail
never_users = root
rfc1413_query_timeout = 0s
recipient_unqualified_hosts = +relay_from_hosts
ignore_bounce_errors_after = 45m
timeout_frozen_after = 15d
freeze_tell = postmaster@domain-ak.ru
helo_accept_junk_hosts = 192.168.1.0/16
auto_thaw = 1h
smtp_banner = "$primary_hostname, ESMTP EXIM $version_number"
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 = 10M
helo_allow_chars = _
smtp_enforce_sync = false
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:
  accept  hosts = :

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

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

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

  accept  authenticated = *

  deny    message       = "Your IP in HELO - access denied!"
          hosts         =  * : !+relay_from_hosts : !81-196.domain-ak.ru
          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       = "main 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       = "can not be only number in HELO!"

  deny    condition     = ${if eq{$sender_address}{}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "А какого HELO пустое?! Не по RFC..."

  deny    condition     = ${if match{$sender_address}{\N^\s+$\N}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "А какого HELO пустое (тока пробелы)?! Не по RFC..."

  deny    condition     = ${if eq{$sender_address}{}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "Where sender of this mail?!"

  deny   condition = ${lookup mysql{SELECT `goto` FROM \
        `alias` WHERE \
        `address`='${quote_mysql:$local_part@domain-ak.ru}'}{no}{yes}}
        hosts         = !127.0.0.1 : !localhost : !192.168.100.0/24 : !192.168.1.66 : *
        message       = "No such user!"

  warn
        # ставим дефолтовую задержку в 20 секунд
        set acl_m0 = 30s
  warn
        # ставим задержку в 0 секунд своим хостам и
        # дружественным сетям (соседняя контора :))
        hosts = +relay_from_hosts : 127.0.0.1/8 : 192.168.1.66/24 : 83.222.25.0/24
        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       = "In my mailserver not stored this user"
          verify        = recipient

  accept  domains       = +relay_to_domains
          endpass
          message       = "main server not know how 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 : \
                          dynablock.njabl.org

  accept  hosts         = +relay_from_hosts

  deny    message       = "Homo hominus lupus est"

acl_check_data:

  accept



# чё делаем с почтой
#################################################################################
                                           #Секция роутеров
#################################################################################
begin routers

# Все адреса *@zern.domain-ak.ru отправляем на *@domain-ak.ru все пользователи 
# у нас в @domain-ak.ru, чтобы алиасы не прописывать,
# но нам это ненужно, так как у нас стоит подмена заголовков
#aliases_mysql_nnov:
#  driver = redirect
#  condition = ${if eq{zern.domain-ak.ru}{$domain}{yes}{no}}
#  allow_fail
#  allow_defer
#  data = ${quote:$local_part}@domain-ak.ru



# 1.Смотрим системные Алиасы
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}'}}


# 2.Доставляем почты в dovecot
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

# 3.Отправка почты на "masterhost @domain-ak.ru" для локального домена "@domain-ak.ru" 
# если пользователя несуществует в локальном домене
masterhost_router:
        driver = manualroute
        transport = masterhost_transport
        route_list = domain-ak.ru smtp.masterhost.ru

# 4.Отправка всей не локальной почты т.е на удаленные сервера кроме "@masterhost.ru  
# домен @domain-ak.ru" отправка производиться через "smtp.donpac.ru"
donpac_router:
    driver = manualroute
    transport = donpac_transport
    route_list = * smtp.donpac.ru

# 5.Если лег сервак провайдера donpac.ru то EXIM отправляет напрямую.
# Поиск маршрута к хосту в DNS. Если маршрут не найден в DNS -
# то это `унроутабле аддресс`. Не проверяются локальные
# домены, 0.0.0.0 и 127.0.0.0/8
dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  no_more





# начинаются транспорты - как доставляем почту
#################################################################################
                                        #Секция транспортов
#################################################################################
begin transports

# Доставка на удалённые хосты - по SMTP
remote_smtp:
driver = smtp

# Доставка локальным адресатам - в dovecot
# Надо заметить что тут использовалась ранее прямая доставка
# в директорию, но щас с портами стал-таки устанавливаться deliver
# программа dovecot занимающаяся доставкой мессаг.
# Соответственно юзаем его.
dovecot_delivery:
  driver = pipe
  command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
  message_prefix =
  message_suffix =
  delivery_date_add
  envelope_to_add
  return_path_add
  log_output
  user = mailnull


# Имя программы
address_pipe:
  driver = pipe
  return_output

# Транспорт для автоответов
address_reply:
  driver = autoreply

# Транспорт на smtp.masterhost.ru
masterhost_transport:
        driver = smtp
        hosts = smtp.masterhost.ru

# Транспорт на smtp.donpac.ru
donpac_transport:
    driver = smtp
    hosts = smtp.donpac.ru

# Начинаются повторы недоставленных писем.
begin retry

# Address or Domain  Error   Retries
# -----------------  -----   -------
*                    *       F,2h,15m; G,16h,1h,1.5; F,4d,6h


begin rewrite

#Подмена заголовка @zern.domain-ak.ru на @domain-ak.ru
*@zern.domain-ak.ru     $local_part@domain-ak.ru        Eh

#########################################
# Флаги                                 #
#########################################
# E ----> все поля конверта             #
# F ----> поле "From" в конверте        #
# T ----> поле "To" в конверте          #
# b ----> заголовок "Bcc:"              #
# c ----> заголовок "Cc:"               #
# f ----> заголовок "From:"             #
# h ----> все заголовки                 #
# r ----> заголовок "Reply-To:"         #
# s ----> заголовок "Sender:"           #
# t ----> заголовок "To:"               #
#########################################

#################################################################################
                                        #Секция аутентификаторов
#################################################################################

auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{SELECT `username` FROM \
                     `mailbox` WHERE `username` = \
                     '${quote_mysql:$auth2}' AND `password` = \
                     '${quote_mysql:$auth3}'}{yes}{no}}
  server_prompts = :
  server_set_id = $auth2


auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup mysql{SELECT `username` FROM \
                     `mailbox` WHERE `username` = \
                     '${quote_mysql:$auth1}' AND `password` = \
                     '${quote_mysql:$auth2}'}{yes}{no}}
  server_prompts = Username:: : Password::
  server_set_id = $auth1


auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup mysql{SELECT `password` FROM \
                        `mailbox` WHERE `username` \
                        = '${quote_mysql:$auth1}'}{$value}fail}
  server_set_id = $auth2



Поможите....

Хостинговая компания 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/

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Morty » 2008-08-11 16:29:31

варианты
1.заюзать DSPAM
2. см логи кто и как шлет, полистать советы по настройке МТА, взять себе что-то на вооружение
3. взять логику Лиса , юзания white list (дето было на форуме)
4. злосный вариант, закрыть фаером самые активные подсети
5. ....

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Cancer » 2008-08-11 16:47:54

Morty писал(а):варианты
1.заюзать DSPAM
2. см логи кто и как шлет, полистать советы по настройке МТА, взять себе что-то на вооружение
3. взять логику Лиса , юзания white list (дето было на форуме)
4. злосный вариант, закрыть фаером самые активные подсети
5. ....

4 вариант неподходит сразу т.к у меня вся почта пересылаеться с купленного почтового сервака на masterhost.ru

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Morty » 2008-08-11 16:50:54

в статье exim+exchange есть реализация whitelist, вообще та статья посильнее чем та по которой ты делал
посмотри, может поможет

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Cancer » 2008-08-13 14:49:25

Вопросище еще такой.

Вот зарубил доступ как нужно

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

# Рубаем всех, кроме нашего внешнего пересыльщика masterhost.ru и localhost
  deny   condition     = ${if match{$sender_helo_name}{masterhost.ru}{no}{yes}}
         hosts         = !127.0.0.1 : !local
         message       = "Access deny!"
А теперь нужно сделать проверку для темы письма ,если будет содержаться слово durak то оно его непустит, но вот только не получается.

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

deny    condition     = ${if match{$message_subject}{durak}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "It is  ***SPAM** ^)!"
поможите что тут неправильно?
Последний раз редактировалось Cancer 2008-08-13 14:56:47, всего редактировалось 1 раз.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35352
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Alex Keda » 2008-08-13 14:56:01

а что в логах?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Cancer » 2008-08-13 15:08:24

lissyara писал(а):а что в логах?

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

Aug 13 16:04:33 mail exim[51899]: H=(ug-out-1314.google.com) [66.249.92.169] I=[192.168.1.9]:25 F=<user@gmail.com> temporarily rejected RCPT <user@zern.domain-ak.ru>: failed
Aug 13 16:04:33 mail exim[51899]: H=(ug-out-1314.google.com) [66.249.92.169] I=[192.168.1.9]:25 F=<user@gmail.com> temporarily rejected RCPT <user@zern.domain-ak.ru>: failed

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Cancer » 2008-08-13 15:33:39

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

deny    condition     = ${if match{$header_subject}{durak}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "It is ***SPAM***!"

тоже неканает :(

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Cancer » 2008-08-13 15:50:07

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

Aug 13 16:04:33 mail exim[51899]: H=(ug-out-1314.google.com) [66.249.92.169] I=[192.168.1.9]:25 F=<user@gmail.com> temporarily rejected RCPT <user@zern.domain-ak.ru>: failed to expand ACL string "${if match{$message_subject}{gavno}{yes}{no}}": unknown variable name "message_subject"
Aug 13 16:13:01 mail exim[52164]: H=(ug-out-1314.google.com) [66.249.92.171] I=[192.168.1.9]:25 F=<user@gmail.com> temporarily rejected RCPT <user@zern.domain-ak.ru>: failed to expand ACL string "${if match{$message_h_Subject}{gavno}{yes}{no}}": unknown variable name "message_h_Subject"
Aug 13 16:13:01 mail exim[52164]: H=(ug-out-1314.google.com) [66.249.92.171] I=[192.168.1.9]:25 F=<user@gmail.com> temporarily rejected RCPT <user@zern.domain-ak.ru>: failed to expand ACL string "${if match{$message_h_Subject}{gavno}{yes}{no}}": unknown variable name "message_h_Subject"
Aug 13 16:19:03 mail exim[52376]: H=(ug-out-1314.google.com) [66.249.92.172] I=[192.168.1.9]:25 F=<user@gmail.com> temporarily rejected RCPT <user@zern.domain-ak.ru>: failed to expand ACL string "${if match{$header_subject}{gavno}{yes}{no}}": missing } at end of string - could be header name not terminated by colon
Aug 13 16:19:03 mail exim[52376]: H=(ug-out-1314.google.com) [66.249.92.172] I=[192.168.1.9]:25 F=<user@gmail.com> temporarily rejected RCPT <user@zern.domain-ak.ru>: failed to expand ACL string "${if match{$header_subject}{gavno}{yes}{no}}": missing } at end of string - could be header name not terminated by colon

Я так понял таких параметров нет.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение dikens3 » 2008-08-13 16:19:00

В какой секции обрабатываешь? acl_smtp_rcpt? А когда тело сообщения появляется?

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

          hosts         = !127.0.0.1 : !localhost : *
Правильно так:
          !hosts         = 127.0.0.1 : localhost
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Cancer » 2008-08-13 22:05:55

dikens3 писал(а):В какой секции обрабатываешь? acl_smtp_rcpt? А когда тело сообщения появляется?

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

          hosts         = !127.0.0.1 : !localhost : *
Правильно так:
          !hosts         = 127.0.0.1 : localhost

понял уже дома :)
так что завтра сделаю нормально проверю.

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Cancer » 2008-08-14 7:22:49

Вот мне от root пришло сообщение, кто знает что оно значит?

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

ug 13 06:15:56 mail sshd[36784]: reverse mapping checking getaddrinfo for plan-red-189-205-19-98.mtyxl [189.205.19.98] failed - POSSIBLE BREAK-IN ATTEMPT!
Aug 13 06:15:56 mail sshd[36784]: Invalid user staff from 189.205.19.98
Aug 13 06:15:58 mail sshd[36786]: reverse mapping checking getaddrinfo for plan-red-189-205-19-98.mtyxl [189.205.19.98] failed - POSSIBLE BREAK-IN ATTEMPT!
Aug 13 06:15:58 mail sshd[36786]: Invalid user sales from 189.205.19.98
Aug 13 06:16:00 mail sshd[36788]: reverse mapping checking getaddrinfo for plan-red-189-205-19-98.mtyxl [189.205.19.98] failed - POSSIBLE BREAK-IN ATTEMPT!
Aug 13 06:22:24 mail sshd[37275]: Invalid user nfsnobody from 189.205.19.98
Aug 13 06:22:26 mail sshd[37277]: reverse mapping checking getaddrinfo for plan-red-189-205-19-98.mtyxl [189.205.19.98] failed - POSSIBLE BREAK-IN ATTEMPT!
Aug 13 06:22:26 mail sshd[37277]: Invalid user rpcuser from 189.205.19.98
Aug 13 06:22:28 mail sshd[37279]: reverse mapping checking getaddrinfo for plan-red-189-205-19-98.mtyxl [189.205.19.98] failed - POSSIBLE BREAK-IN ATTEMPT!
Aug 13 06:22:28 mail sshd[37279]: Invalid user rpc from 189.205.19.98
Aug 13 06:22:31 mail sshd[37281]: reverse mapping checking getaddrinfo for plan-red-189-205-19-98.mtyxl [189.205.19.98] failed - POSSIBLE BREAK-IN ATTEMPT!
Aug 13 06:22:31 mail sshd[37281]: Invalid user gopher from 189.205.19.98
Aug 13 14:19:53 mail sshd[49475]: Invalid user staff from 80.53.97.250
Aug 13 14:19:55 mail sshd[49477]: Invalid user sales from 80.53.97.250
Aug 13 14:19:57 mail sshd[49479]: Invalid user recruit from 80.53.97.250
Aug 13 14:19:59 mail sshd[49481]: Invalid user alias from 80.53.97.250
Aug 13 14:20:02 mail sshd[49483]: Invalid user office from 80.53.97.250
Aug 13 14:20:04 mail sshd[49488]: Invalid user samba from 80.53.97.250
Aug 13 14:20:06 mail sshd[49490]: Invalid user tomcat from 80.53.97.250
Aug 13 14:20:08 mail sshd[49492]: Invalid user webadmin from 80.53.97.250
Aug 13 14:20:11 mail sshd[49494]: Invalid user spam from 80.53.97.250
Aug 13 14:20:13 mail sshd[49496]: Invalid user virus from 80.53.97.250
Aug 13 14:20:17 mail sshd[49500]: Invalid user oracle from 80.53.97.250
Aug 13 14:20:19 mail sshd[49502]: Invalid user michael from 80.53.97.250
Aug 13 14:20:22 mail sshd[49517]: Invalid user ftp from 80.53.97.250
Aug 13 14:20:24 mail sshd[49519]: Invalid user test from 80.53.97.250
Aug 13 14:20:26 mail sshd[49521]: Invalid user webmaster from 80.53.97.250
Aug 13 14:20:28 mail sshd[49523]: Invalid user postmaster from 80.53.97.250
Aug 13 14:20:32 mail sshd[49527]: Invalid user postgres from 80.53.97.250
Aug 13 14:20:34 mail sshd[49529]: Invalid user paul from 80.53.97.250
Aug 13 14:20:39 mail sshd[49533]: Invalid user guest from 80.53.97.250
Aug 13 14:20:43 mail sshd[49537]: Invalid user linux from 80.53.97.250
Aug 13 14:20:45 mail sshd[49539]: Invalid user user from 80.53.97.250
Aug 13 14:20:47 mail sshd[49541]: Invalid user david from 80.53.97.250
Aug 13 14:20:49 mail sshd[49543]: Invalid user web from 80.53.97.250
Aug 13 14:20:51 mail sshd[49545]: Invalid user apache from 80.53.97.250
Aug 13 14:20:53 mail sshd[49547]: Invalid user pgsql from 80.53.97.250
Aug 13 14:20:58 mail sshd[49551]: Invalid user info from 80.53.97.250
Aug 13 14:21:00 mail sshd[49553]: Invalid user tony from 80.53.97.250
Aug 13 14:21:02 mail sshd[49555]: Invalid user core from 80.53.97.250
Aug 13 14:21:04 mail sshd[49557]: Invalid user newsletter from 80.53.97.250
Aug 13 14:21:07 mail sshd[49559]: Invalid user named from 80.53.97.250
Aug 13 14:21:09 mail sshd[49561]: Invalid user visitor from 80.53.97.250
Aug 13 14:21:11 mail sshd[49563]: Invalid user ftpuser from 80.53.97.250
Aug 13 14:21:13 mail sshd[49565]: Invalid user username from 80.53.97.250
Aug 13 14:21:15 mail sshd[49567]: Invalid user administrator from 80.53.97.250



lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение lerryc » 2008-08-14 8:36:01

Cancer писал(а):Вот мне от root пришло сообщение, кто знает что оно значит?
что твоя популярность вышла за границы локалхост....
пришла пора применять изделие № 2 для личной гигиены
машина думать не может, машина должна ехать

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Cancer » 2008-08-14 9:08:45

lerryc писал(а):
Cancer писал(а):Вот мне от root пришло сообщение, кто знает что оно значит?
что твоя популярность вышла за границы локалхост....
пришла пора применять изделие № 2 для личной гигиены

так это значит то что мое спокойствие нарушили и готовить нужно pf??? :):):):):) или презерватив?

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение lerryc » 2008-08-14 9:39:14

Cancer писал(а):
так это значит то что мое спокойствие нарушили и готовить нужно pf??? :):):):):) или презерватив?
пора держать наготове - типа того ;)
если не используешь sshd в личных целях - убери его из автозапуска,
если используешь - перенеси на другой порт или разреши доступ sshd только с определенных (собственных/трастовых) IP
машина думать не может, машина должна ехать

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение dikens3 » 2008-08-14 11:12:43

1. Перевесить на другой порт.
2. Настроить аутентификацию по ключу.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Cancer » 2008-08-16 22:37:33

dikens3 писал(а):1. Перевесить на другой порт.
2. Настроить аутентификацию по ключу.

не ну нафиг, я просто рубанул пока ssh, так как он мне пока ненужен. спасибо всем за сказанное.

gavryuha
проходил мимо

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение gavryuha » 2008-09-01 20:13:19

Прошу прощеня за тупой вопрос, как работают DNS BLACKLISTы?
Имеем EXIM, вот кусочек конфига , набранный по частям с разных мест, в основном с этого сайта из статьи exim+dovecot :)

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

acl_check_rcpt:

  # Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
  # testing for an empty sending host field.

  accept  hosts = :

  #############################################################################
  # The following section of the ACL is concerned with local parts that contain
  # @ or % or ! or / or | or dots in unusual places.
  #
  # The characters other than dots are rarely found in genuine local parts, but
  # are often tried by people looking to circumvent relaying restrictions.
  # Therefore, although they are valid in local parts, these rules lock them
  # out, as a precaution.
  #
  # Empty components (two dots in a row) are not valid in RFC 2822, but Exim
  # allows them because they have been encountered. (Consider local parts
  # constructed as "firstinitial.secondinitial.familyname" when applied to
  # someone like me, who has no second initial.) However, a local part starting
  # with a dot or containing /../ can cause trouble if it is used as part of a
  # file name (e.g. for a mailing list). This is also true for local parts that
  # contain slashes. A pipe symbol can also be troublesome if the local part is
  # incorporated unthinkingly into a shell command line.
  #
  # Two different rules are used. The first one is stricter, and is applied to
  # messages that are addressed to one of the local domains handled by this
  # host. The line "domains = +local_domains" restricts it to domains that are
  # defined by the "domainlist local_domains" setting above. The rule  blocks
  # local parts that begin with a dot or contain @ % ! / or |. If you have
  # local accounts that include these characters, you will have to modify this
  # rule.

  deny    message       = Restricted characters in address
          domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]

  # The second rule applies to all other domains, and is less strict. The line
  # "domains = !+local_domains" restricts it to domains that are NOT defined by
  # the "domainlist local_domains" setting above. The exclamation mark is a
  # negating operator. This rule allows your own users to send outgoing
  # messages to sites that use slashes and vertical bars in their local parts.
  # It blocks local parts that begin with a dot, slash, or vertical bar, but
  # allows these characters within the local part. However, the sequence /../
  # is barred. The use of @ % and ! is blocked, as before. The motivation here
  # is to prevent your users (or your users' viruses) from mounting certain
  # kinds of attack on remote sites.

  deny    message       = Restricted characters in address
          domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
  #############################################################################

  # Accept mail to postmaster in any local domain, regardless of the source,
  # and without verifying the sender.

  accept  local_parts   = postmaster
          domains       = +local_domains

  # Deny unless the sender address can be verified.

  require verify        = sender

  # Запрещщаем тех, кто не обменивается приветственными
  # сообщениями (HELO/EHLO)
  deny    message       = "HELO/EHLO require by SMTP RFC"
          condition     = ${if eq{$sender_helo_name}{}{yes}{no}}


  # Accept if the message comes from one of the hosts for which we are an
  # outgoing relay. It is assumed that such hosts are most likely to be MUAs,
  # so we set control=submission to make Exim treat the message as a
  # submission. It will fix up various errors in the message, for example, the
  # lack of a Date: header line. If you are actually relaying out out from
  # MTAs, you may want to disable this. If you are handling both relaying from
  # MTAs and submissions from MUAs you should probably split them into two
  # lists, and handle them differently.

  # Recipient verification is omitted here, because in many cases the clients
  # are dumb MUAs that don't cope well with SMTP error responses. If you are
  # actually relaying out from MTAs, you should probably add recipient
  # verification here.

  # Note that, by putting this test before any DNS black list checks, you will
  # always accept from these hosts, even if they end up on a black list. The
  # assumption is that they are your friends, and if they get onto a black
  # list, it is a mistake.

  accept  hosts         = +relay_from_hosts
          control       = submission

  # Accept if the message arrived over an authenticated connection, from
  # any host. Again, these messages are usually from MUAs, so recipient
  # verification is omitted, and submission mode is set. And again, we do this
  # check before any black list tests.

  accept  authenticated = *
          control       = submission/sender_retain

  #############################################################################
  # There are no default checks on DNS black lists because the domains that
  # contain these lists are changing all the time. However, here are two
  # examples of how you can get Exim to perform a DNS black list lookup at this
  # point. The first one denies, whereas the second just warns.
  #
  # deny    message       = rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
  #         dnslists      = black.list.example
  #
  # warn    message       = X-Warning: $sender_host_address is in a black list at $dnslist_domain
  #         log_message   = found in $dnslist_domain
  #         dnslists      = black.list.example
  #############################################################################

# Рубаем нах, тех, кто подставляет свой IP в HELO
  deny    message       = "Your IP in HELO - access denied!"
          hosts         =  * : !+relay_from_hosts 
          condition     = ${if eq{$sender_helo_name} {$sender_host_address}{true}{false}}

# Рубаем нах, тех, кто подставляет свой IP в HELO
  deny    message       = "Your IP in HELO - access denied!"
          hosts         =  * : !+relay_from_hosts 
          condition     = ${if eq{$sender_helo_name} {\[$sender_host_address\]}{true}{false}}

# Рубаем тех, кто в HELO пихает мой IP (2500 мудаков за месяц!)
  deny    condition     = ${if eq{$sender_helo_name} {$interface_address}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "main IP in your HELO! Access denied!"

# Рубаем тех, кто в HELO пихает только цифры
# (не бывает хостов ТОЛЬКО из цифр)
  deny    condition     = ${if match{$sender_helo_name} {\N^\d+$\N}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "can not be only number in HELO!"

# Прибиваем, если в HELO нет . (точек)
  deny    message       = You need dot in HELO/EHLO - access denied.
          !senders      = :
          condition     = ${if !match{$sender_helo_name}{\N\w\.\w\N}{yes}{no}}

# Рубаем хосты типа *adsl*; *dialup*; *pool*;....
# Нормальные люди с таких не пишут. Если будут
# проблемы - уберёте проблемный пункт 
  deny    message       = "your hostname is bad (adsl, poll, ppp & etc)."
          condition     = ${if match{$sender_host_name} {adsl|dialup|pool|peer|dhcp} {yes}{no}}


  # Задержка. (это такой метод борьбы со спамом,
  # основанный на принципе его рассылки) На этом рубается
  # почти весь спам. Единственно - метод неприменим на 
  # реально загруженных MTA - т.к. в результате ему
  # приходится держать много открытых соединений.
  # но на офисе в сотню-две человек - шикарный метод.
  #
  # более сложный вариант, смотрите в статье по exim и 
  # курьер имап. Т.к. там метод боле умный (просто правил
  # больше :), то можно и на более загруженные сервера ставить)
  warn
        # ставим дефолтовую задержку в 20 секунд
        set acl_m0 = 30s
  warn
        # ставим задержку в 0 секунд своим хостам и 
        # дружественным сетям 
        hosts = +relay_from_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


  #############################################################################
  # This check is commented out because it is recognized that not every
  # sysadmin will want to do it. If you enable it, the check performs
  # Client SMTP Authorization (csa) checks on the sending host. These checks
  # do DNS lookups for SRV records. The CSA proposal is currently (May 2005)
  # an Internet draft. You can, of course, add additional conditions to this
  # ACL statement to restrict the CSA checks to certain hosts only.
  #
  # require verify = csa
  #############################################################################

  # Accept if the address is in a local domain, but only if the recipient can
  # be verified. Otherwise deny. The "endpass" line is the border between
  # passing on to the next ACL statement (if tests above it fail) or denying
  # access (if tests below it fail).

  accept  domains       = +local_domains
          endpass
          verify        = recipient

  # Рубаем тех, кто в блэк-листах. Серваки перебираются
  # сверху вниз, если не хост не найден на первом, то
  # запрашивается второй, и т.д. Если не найден ни в одном
  # из списка - то почта пропускается.
  deny    message       = "you in blacklist - $dnslist_domain \n $dnslist_text"
          dnslists      = opm.blitzed.org : \
                          cbl.abuseat.org : \
                          bl.csma.biz : \
                          dynablock.njabl.org : \
                          dnsbl-2.uceprotect.net : \
                          sbl-xbl.spamhaus.org : \
                          bl.spamcannibal.org


  # Accept if the address is in a domain for which we are an incoming relay,
  # but again, only if the recipient can be verified.

  accept  domains       = +relay_to_domains
          endpass
          verify        = recipient

  # Reaching the end of the ACL causes a "deny", but we might as well give
  # an explicit message.

  deny    message       = relay not permitted





# This ACL is used after the contents of a message have been received. This
# is the ACL in which you can test a message's headers or body, and in
# particular, this is where you can invoke external virus or spam scanners.
# Some suggested ways of configuring these tests are shown below, commented
# out. Without any tests, this ACL accepts all messages. If you want to use
# such tests, you must ensure that Exim is compiled with the content-scanning
# extension (WITH_CONTENT_SCAN=yes in Local/Makefile).

acl_check_data:

  # Deny if the message contains a virus. Before enabling this check, you
  # must install a virus scanner and set the av_scanner option above.
  #
  # deny    malware   = *
  #         message   = This message contains a virus ($malware_name).

  # Add headers to a message if it is judged to be spam. Before enabling this,
  # you must install SpamAssassin. You may also need to set the spamd_address
  # option above.
  #
  # warn    spam      = nobody
  #         message   = X-Spam_score: $spam_score\n\
  #                     X-Spam_score_int: $spam_score_int\n\
  #                     X-Spam_bar: $spam_bar\n\
  #                     X-Spam_report: $spam_report

  # Accept the message.

  accept

Всё работает, кроме того, что не фильтруется почта по BLACK LIST
Вопрос возник потому, что не понимаю принцип их работы. Например, любой запрос , даже mail.ru.cbl.abuseat.com отзывается IP-адресом 127.0.0.2, значит по логике имя хоста mail.ru - это спам. Любой IP подставить: XXX.XXX.XXX.XXX.cbl.abuseat.com тоже даёт 127.0.0.2.
Получается cbl.abuseat.com глючит?
Но даже если так, тогда должна бы резаться вся почта. А EXIM не блокирует ничего.
Вопрос №2 - для проверки делается запрос вида XXX.cbl.abuseat.com , так? Вместо XXX автоматом подставляется доменное имя, HELO, или IP отправителя, или и то и другое и третье?

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

Sep  1 21:08:01 1670 exim[26584]: Delay 30s for rejection.vary.volia.net [77.121.182.101] with HELO=rejection.vary.volia.net. Mail from rferrell@ccisd.net to support@my.domain.
Sep  1 21:08:18 1670 dovecot: imap-login: Login: user=<support@my.domain>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
Sep  1 21:08:18 1670 dovecot: IMAP(support@my.domain): Disconnected: Logged out
Sep  1 21:08:31 1670 exim[26584]: 1KaCtD-0006um-A8 <= rferrell@ccisd.net H=rejection.vary.volia.net [77.121.182.101] I=[91.189.113.4]:25 P=esmtp S=912 id=05605209.20080901170755@my.domain from <rferrell@ccisd.net> for support@my.domain
Sep  1 21:08:31 1670 deliver(support@my.domain): msgid=<05605209.20080901170755@my.domain>: saved mail to INBOX
Sep  1 21:08:31 1670 exim[28277]: 1KaCtD-0006um-A8 => support <support@my.domain> R=dovecot_user T=dovecot_delivery
Sep  1 21:08:31 1670 exim[28277]: 1KaCtD-0006um-A8 Completed
хотя 77.121.182.101 есть в спам базах CBL! http://2ip.ru/spam/?ip=77.121.182.101

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение dikens3 » 2008-09-01 20:31:04

опрос возник потому, что не понимаю принцип их работы. Например, любой запрос , даже mail.ru.cbl.abuseat.com отзывается IP-адресом 127.0.0.2, значит по логике имя хоста mail.ru - это спам
По какой логике?
Если мне склероз не изменяет, то ответ может быть разный (зависит от RBL).
127.0.0.2-127.0.0.x

Обычно даётся описание на соответствующем RBL, что означает то или иное значение.
К примеру:

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

127.0.0.2 - Хост чист.
127.0.0.3 - Хост в списке спаммерских IP-Адресов.
127.0.0.4 - Адрес отправителя (E-Mail) заблокирован.
127.0.0.5 - HELO хоста в списке блокировок.
и т.д. Тут я всё сам напридумывал
http://www.spamhaus.org/faq/answers.las ... 0Usage#200
как работают DNS BLACKLISTы?
У тебя многие уже давно закрылись и работать не собираются.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Гость
проходил мимо

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение Гость » 2008-09-01 20:48:18

А, ну значит всё нормально работает! Я думал если хоть какой-то IP получается после преобразования по блэк-листу, то уже означается спам-хост.
Тогда возник вопрос #3, где набрать нормальных работающих баз! Прошу ногами не пинать, я немного не в терминологии)

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Exim борьба со *SPAM*ом

Непрочитанное сообщение zingel » 2008-09-01 21:36:31

вероятно, если я Вас правильно понял, то Вам стоит обратить своё внимание на сайты, которые занимаются SBL
Z301171463546 - можно пожертвовать мне денег