LINUX.ORG.RU
ФорумAdmin

postfix Принимает на отправку письма от странных пользователей.

 


0

4

Всем доброго времени. Есть сервер с Ubuntu и Postfix 2.11.0-1ubuntu1.2 Работает уже давно и все вроде было нормально, но сегодня в очереди начали появляться письма который мы не отправляли. В логе это выглядит вот так

Jan 23 13:04:45 ml postfix/smtpd[28312]: 2CAEFC8E624: client=unknown[80.51.181.68], sasl_method=PLAIN, sasl_username=office@mail.com.ua
Jan 23 13:04:46 ml postfix/cleanup[28108]: 2CAEFC8E624: warning: header Subject: ONLINE SHOP - from unknown[80.51.181.68]; from=<office@mail.com> to=<audio71@aol.com> proto=ESMTP helo=<[127.0.0.1]>: Subject
Jan 23 13:04:46 ml postfix/cleanup[28108]: 2CAEFC8E624: message-id=<v1bn4hf-rjzixe-33@mail.com>
Jan 23 13:04:46 ml postfix/qmgr[28013]: 2CAEFC8E624: from=<office@mail.com>, size=1351, nrcpt=5 (queue active)
Jan 23 13:04:49 ml postfix/smtp[28014]: 2CAEFC8E624: to=<audio71@aol.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=4, delays=1.5/0/0.01/2.5, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as F0D4AC8E64E)

Сначала думал что подобрали пароль, но в логах Dovecot который отвечает за авторизацию нет информации и логине. Проверял сервер на Openrelay по всем тестам все Ок релей закрыт.

Вот конфиг Postfix



header_checks = regexp:/etc/postfix/header_checks
mime_header_checks = regexp:/etc/postfix/mime_header_checks
smtpd_banner = $myhostname ESMTP $mail_name
biff = no
append_dot_mydomain = no
readme_directory = no
myhostname = mail..com
mydestination = $myhostname
myorigin = $mydomain
m
ynetworks = 127.0.0.0/8

virtual_mailbox_domains =
 $mydomain
 mail.com

 virtual_mailbox_maps = hash:/etc/postfix/local_mailboxes/valid_users
virtual_alias_maps = hash:/etc/postfix/local_mailboxes/aliases

smtpd_discard_ehlo_keywords = etrn, silent-discard
smtpd_forbidden_commands = CONNECT GET POST
broken_sasl_auth_clients = yes
smtpd_delay_reject = yes
smtpd_helo_required = yes
disable_vrfy_command = yes

default_rbl_reply = $rbl_code Service unavailable; $rbl_class [$rbl_what] blocked using $rbl_domain${rbl_reason?; $rbl_reason}

smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

smtpd_helo_restrictions = permit_mynetworks,
                          permit_sasl_authenticated,
                          reject_non_fqdn_helo_hostname,
                          reject_invalid_helo_hostname,

smtpd_data_restrictions = permit_mynetworks,
                          permit_sasl_authenticated,
                          reject_unauth_pipelining,
                          reject_multi_recipient_bounce,
                          reject_non_fqdn_sender,
                          reject_unknown_sender_domain,
                          reject_unknown_hostname,

smtpd_sender_restrictions = permit_mynetworks,
                            reject_unknown_sender_domain,
                            check_sender_access  hash:/etc/postfix/local_mailboxes/whitelist,
                            reject_unverified_sender,
                            permit_sasl_authenticated,
                            reject_non_fqdn_sender,

smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/local_mailboxes/access_users, hash:/etc/postfix/local_mailboxes/protected_destinations,
                                check_sender_access hash:/etc/postfix/local_mailboxes/restricted_senders,
                                reject_non_fqdn_recipient,
                                reject_unknown_recipient_domain,
                                reject_multi_recipient_bounce,
                                reject_unauth_pipelining,
                                permit_sasl_authenticated,
                                permit_mynetworks,
                                reject_unauth_destination,
                                reject_rbl_client zen.spamhaus.org,
                                reject_rbl_client bl.spamcop.net,
                                reject_invalid_hostname,
                                permit_auth_destination,
                                reject


smtpd_restriction_classes = local_only ,insiders_only
local_only = check_recipient_access hash:/etc/postfix/local_mailboxes/local_domains, reject
insiders_only = check_sender_access hash:/etc/postfix/local_mailboxes/local_domains, reject

# ============================================================
# TLS
# ============================================================
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_loglevel = 1
smtpd_use_tls = yes
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 300s
smtp_tls_session_cache_database = btree:$data_directory/smtp_tls_session_cache
smtpd_tls_key_file = /etc/postfix/certs/key.pem
smtpd_tls_cert_file = /etc/postfix/certs/cert.pem
tls_random_source = dev:/dev/urandom

# ============================================================
# LIMITS
# ============================================================
message_size_limit = 251200000
mailbox_size_limit = 25120000000
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 15
smtpd_error_sleep_time = 20
anvil_rate_time_unit = 5m
smtpd_client_connection_count_limit = 100
smtpd_client_connection_rate_limit = 90
smtpd_client_message_rate_limit = 80
smtpd_client_recipient_rate_limit = 50
smtpd_client_event_limit_exceptions = 127.0.0.1/8
smtpd_client_connection_limit_exceptions = 127.0.0.1/8

line_length_limit = 4096

# ============================================================
# QUEUE
# ============================================================
maximal_queue_lifetime = 5d
bounce_queue_lifetime = 2d

# ============================================================
# SASL
# ============================================================
smtpd_sasl_auth_enable = yes
smtpd_sender_login_maps = hash:/etc/postfix/local_mailboxes/aliases
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_sasl_local_domain = MAIL.COM
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

# ============================================================
# VIRTUAL
# ============================================================
virtual_mailbox_base = /var/vmail
virtual_minimum_uid = 1001
virtual_uid_maps = static:1001
virtual_gid_maps = static:1001
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

sender_bcc_maps = hash:/etc/postfix/local_mailboxes/sender_bcc
recipient_bcc_maps = hash:/etc/postfix/local_mailboxes/recipient_bcc


content_filter = smtp-amavis:[127.0.0.1]:10024
policy-spf_time_limit = 3600s

Кто может тыкните где я накосячил? Уже голову сломал куда копать и что это такое?

Сломали вас поляки

anonymous
()

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

anonymous
()

smtpd_sasl_type = dovecot

По умолчанию dovecot не будет писать в лог про авторизацию submission. Типа его postfix спросил, он ответил, что все ок и все. Писать в лог он будет только про imap/pop3. Чтобы он писал , надо auth_debug = yes

Так что да, подобрали пароль.


Dovecot config:
  auth_verbose = yes
  auth_debug = no

# Dovecot log after submission/smtpd AUTH successful
<nothing>

# Dovecot log after submission/smtpd AUTH failure
... auth: Info: passwd-file(joe at example.com,46.z.z.z): Password mismatch


Dovecot config:
  auth_verbose = yes
  auth_debug = yes

# Dovecot log after submission/smtpd AUTH successful
... auth: Debug: client in: AUTH  1  PLAIN  service=smtp  nologin
lip=212.x.x.x  rip=46.z.z.z secured resp=<hidden>
... auth: Debug: passwd-file(joe at example.com,46.z.z.z): lookup:
user=joe at example.com file=/etc/dovecot/virtual_users
... auth: Debug: client passdb out: OK  1  user=joe at example.com

# Dovecot log after submission/smtpd AUTH failure
... auth: Debug: client in: AUTH 2  PLAIN  service=smtp  nologin
lip=212.x.x.x  rip=46.z.z.z secured resp=<hidden>
... auth: Info: plain(?,46.z.z.z): invalid input
... auth: Debug: client passdb out: FAIL  2
constin ★★★★
()
Последнее исправление: constin (всего исправлений: 2)

Jan 23 13:04:45 ml postfix/smtpd[28312]: 2CAEFC8E624: client=unknown[80.51.181.68], sasl_method=PLAIN, sasl_username=office@mail.com.ua

Пользователь авторизовался. Скорее всего юзерская пара мыло-пароль нашлась в одной из утечек, таких ныне полно. Ну или у вас авторизация сломалась :)

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

Сам первое о чем подумал это подобрали пароль, поэтому сразу как заметил это дело пароль поменял. Увы картину это не изменило. И самое главное, включил на Коте полный дебаг что бы писал в лог и успешные авторизации и ничего. Письма в очереди появляются в логах Postfix есть те строки что приводил выше, а в логе Dovecot тишина, как будто и не пытались авторизоваться. И еще одна странность у меня имена ящиков не являются логинами, а если верить логу Postfix авторизация прошла по логину совпадающему с именем ящика. Уже все конфиги перекопал, а понять что за фигня немогу.

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

тыыкс

покажи master.cf

Убери SSL2/3 , они дырявые, оставь только starttls ( но и клиенты должны быть настроены на starttls)



# Disable SSLv3
#
smtpd_tls_protocols = !SSLv2 !SSLv3
smtp_tls_protocols = !SSLv2 !SSLv3
lmtp_tls_protocols = !SSLv2 !SSLv3
smtpd_tls_mandatory_protocols = !SSLv2 !SSLv3
smtp_tls_mandatory_protocols = !SSLv2 !SSLv3
lmtp_tls_mandatory_protocols = !SSLv2 !SSLv3

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

master.cf сейчас вот такой.

# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd
submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_wrappermode=no
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       -       -       -       smtpd
   -o smtpd_tls_wrappermode=yes
   -o smtpd_sasl_auth_enable=yes
   -o smtpd_client_restrictions=permit_sasl_authenticated,reject
   -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
pickup    unix  n       -       -       60      1       pickup
        -o content_filter=
        -o receive_override_options=no_header_body_checks
cleanup   unix  n       -       -       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
relay     unix  -       -       -       -       -       smtp
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix  -       n       n       -       2       pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}
# ====================================================================
# DOVECOT
# ====================================================================
dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}
# Added using postfix-add-policy script:
policy-spf unix    -       n       n       -       0     spawn
      user=nobody argv=/usr/bin/policyd-spf
smtp-amavis     unix    -       -       -       -       2       smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes
        -o disable_dns_lookups=yes
        -o max_use=90
127.0.0.1:10025 inet    n       -       -       -       -       smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_delay_reject=no
        -o smtpd_client_restrictions=permit_mynetworks,reject
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o smtpd_data_restrictions=reject_unauth_pipelining
        -o smtpd_end_of_data_restrictions=
        -o mynetworks=127.0.0.0/8
        -o smtpd_error_sleep_time=0
        -o smtpd_soft_error_limit=1001
        -o smtpd_hard_error_limit=1000
        -o smtpd_client_connection_count_limit=0
        -o smtpd_client_connection_rate_limit=0
        -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

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

зачем рестрикшены прописаны и в main и в мастер? (к делу не относится)

smtps     inet  n       -       -       -       -       smtpd
   -o smtpd_tls_wrappermode=yes

если думать дальше в сторону убирания дырявых ssl , то -o smtpd_tls_wrappermode=yes тоже надо убирать.

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

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

Feb 01 19:07:29 auth: Debug: auth client connected (pid=0)
Feb 01 19:07:30 auth: Debug: client in: AUTH    1       PLAIN   service=smtp    nologin lip=10.0.0.1  rip=57.55.247.12      secured resp=HjFjkd23KF
DhjfmHJKd390SklfdhjDJKfW== (previous base64 data may contain sensitive data)
Feb 01 19:07:30 auth: Debug: static(user@mail.com.ua,57.55.247.12): lookup
Feb 01 19:07:30 auth: Debug: static(user@mail.com.ua,57.55.247.12): PLAIN(01234556788997) != ''
Feb 01 19:07:30 auth: Debug: client passdb out: OK      1       user=user@mail.com.ua
Feb 01 19:07:30 imap(user@turboatom.com.ua): Debug: acl vfile: file /etc/dovecot/global-acls/Sent not found
Feb 01 19:07:30 imap(user@turboatom.com.ua): Debug: acl vfile: reading file /yash/user/.Sent/dovecot-acl
Feb 01 19:07:31 imap-login: Debug: SSL alert: close notify [57.55.247.12]
Feb 01 19:07:31 imap-login: Debug: SSL alert: close notify [57.55.247.12]
Дальше идет загрузка сертификатов просмотр папок и так далее вообщем обычная работа. А это коннект спамера.
Feb 02 10:22:28 auth: Debug: auth client connected (pid=0)
Feb 02 10:22:29 auth: Debug: client in: AUTH    1       PLAIN   service=smtp    nologin lip=10.0.0.1  rip=193.203.44.180      secured
Feb 02 10:22:29 auth: Debug: client passdb out: CONT    1
Feb 02 10:22:29 auth: Debug: client in: CONT    1       FHjg93KJKDJkle8990FFdfgdss34DfdDfd== (previous base64 data may contain sensitive data)
Feb 02 10:22:29 auth: Debug: static(office@mail.com.ua,193.203.44.180): lookup
Feb 02 10:22:29 auth: Debug: client passdb out: OK      1       user=office@mail.com.ua
Feb 02 10:22:38 lda: Debug: Loading modules from directory: /usr/lib/dovecot/modules
Feb 02 10:22:38 lda: Debug: Module loaded: /usr/lib/dovecot/modules/lib01_acl_plugin.so
Feb 02 10:22:38 lda: Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so
Feb 02 10:22:38 lda: Debug: Module loaded: /usr/lib/dovecot/modules/lib20_autocreate_plugin.so
Feb 02 10:22:38 lda: Debug: Module loaded: /usr/lib/dovecot/modules/lib90_sieve_plugin.so
Очень отличается вторая строка лога, она как будто прервана ее конец сдвинут к четвертой строке и это не сбой лога, так строка выглядит каждый раз. Вообще отсутствует строка передачи пароля и сразу идет строка о том что пароль правильный.

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

Пройдемся еще раз по конф:

myorigin = $mydomain
m
ynetworks = 127.0.0.0/8
Опечатка?
smtpd_restriction_classes = local_only ,insiders_only
local_only = check_recipient_access hash:/etc/postfix/local_mailboxes/local_domains, reject
insiders_only = check_sender_access hash:/etc/postfix/local_mailboxes/local_domains, reject
Может в этих файлах чего наразрешал?

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

Для проверки везде в рестрикшенах поставь на первую позицию:

permit_sasl_authenticated,

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

Опечатка?

Да, там все в одну строку

Может в этих файлах чего наразрешал?

Там только одна строка, мой домен mail.com.ua ok

Для проверки везде в рестрикшенах поставь на первую позицию:

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

wer_wolf
() автор топика
Ответ на: комментарий от wer_wolf
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/local_mailboxes/access_users, hash:/etc/postfix/local_mailboxes/protected_destinations,
                                check_sender_access hash:/etc/postfix/local_mailboxes/restricted_senders

Зачем в этой секции:

check_sender_access ?

Может там тоже

мойдомен OK?

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

Зачем в этой секции:
check_sender_access ?

Там список ящиков который имеют право отправлять почту только в пределах моего домена. Файл типа такого

user@mail.com.ua local_only
user2@mail.com.ua local_only
user3@mail.com.ua local_only

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

Пробовал и с левым, и без пароля, после пары попыток улетаю в бан по IP (fail2ban трудится)

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

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

У меня закоментированно в master.cf:

#smtps inet n - - - - smtpd

Поэтому 465 порт не существует. Работает только

smtp inet n - - - - smtpd

Но рестрикшены к нему тоже закоментированы. Все в main.cf

Причем это настройки шли вместе с сборкой iredmail Попробуйте так. Может прокатит.

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

Поэтому 465 порт не существует. Работает только

smtp inet n - - - - smtpd

А Ваши удаленные пользователи почтовым клиентом для отправки почты на 25 коннектятся?

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

У меня провайдер вообще ничего не ограничивает. Вот и подумал что 25 будет только для почты между серверами, а клиенты на 465 с шифрованием будет висеть.

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

а клиенты на 465 с шифрованием будет висеть

Аналогично startls на 25 м

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

Провайдер не своевольничает 25 не закрывает.

Ваш-то нет, а вот в точке отправления может и блокировать исходящие на 25-й порт. У меня так же как и у вас на 25-ом все висит, только еще iptables-ом на другие порты dnat прописан :)

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

олько еще iptables-ом на другие порты dnat прописан

Надо на заметку взять. Хотя моб операторы не блокируют 25 порт. А основные (нужные) узеры имеют белые IP. Их провайдЁр одно время пытался лишить этого. Но, лет 5 уже перестал.

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