Дыра в безопасности SMTP-аутентификации Postfix [дубликат]

У меня Postfix запущен на CentOS 6. Все работает нормально, за исключением дыры в безопасности в smtp.

Я продолжаю получать спам по электронной почте, отправленный с моего адреса на мой адрес. Я проверил это через telnet, и сервер позволяет мне отправлять письма самому себе без аутентификации. Если я пытаюсь отправить на внешний адрес электронной почты, то требуется аутентификация.

Как я могу заткнуть эту дыру?

EDIT:

@Jenny D Это не дубликат вопроса. Я хочу запретить моему почтовому серверу отправлять электронные письма самому себе без аутентификации.

postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
home_mailbox = mail/
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = localhost.$mydomain, localhost
mydomain = mydomain.com
myhostname = mail.mydomain.com
mynetworks = 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
proxy_read_maps = $local_recipient_maps $mydestination       $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps  $virtual_mailbox_domains $relay_recipient_maps $relay_domains  $canonical_maps $sender_canonical_maps $recipient_canonical_maps  $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_use_tls = yes
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, permit
smtpd_recipient_restrictions = permit_sasl_authenticated,       permit_mynetworks, check_relay_domains,  reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_auth_only = no
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
unknown_local_recipient_reject_code = 550
virtual_alias_domains = 
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-     virtual_forwardings.cf,         mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_gid_maps = static:5000
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_transport = dovecot
virtual_uid_maps = static:5000

grep -n smtp /etc/postfix/master.cf

11:smtp      inet  n       -       n       -       -       smtpd
13:587      inet  n       -       n       -       -       smtpd
15:#submission inet n       -       n       -       -       smtpd
16:#  -o smtpd_tls_security_level=encrypt
17:smtps     inet  n       -       n       -       -       smtpd
18:   -o smtpd_sasl_auth_enable=yes
19:   -o smtpd_reject_unlisted_sender=yes
20:   -o smtpd_recipient_restrictions=permit_sasl_authenticated
22:#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
24:#smtps     inet  n       -       n       -       -       smtpd
25:#  -o smtpd_tls_wrappermode=yes
26:#  -o smtpd_sasl_auth_enable=yes
27:#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
43:smtp      unix  -       -       n       -       -       smtp
45:relay     unix  -       -       n       -       -       smtp
46: -o smtp_fallback_relay=
47:#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
102:#bsmtp     unix  -       n       n       -       -       pipe
103:#  flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient

Headers

Return-Path: <nadiam1pa@mydomain.com>
Delivered-To: myaddress@mydomain.com
Received: from [103.38.130.142] (unknown [103.38.130.142])
by 807493.myserver.com (Postfix) with ESMTP id 6A8894809B6
for <myaddress@mydomain.com>; Mon, 28 Mar 2016 14:22:52 +0100 (BST)
From: "netadmin" <nadiam1pa@mydomain.com>
To: "myaddress@mydomain.com" <myaddress@mydomain.com>
Subject: Document (1).pdf
Date: Mon, 28 Mar 2016 18:52:55 +0530
Message-ID: <087e40a2476d5abe1036e9eda4563@mydomain.com>
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0042_01D0A1F9.171F24B0"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AdCh6FNHn/LWax1JSTSc7XL2c2t2TQ==
Content-Language: en-US

This is a multipart message in MIME format.

Спасибо за помощь

EDIT 2:

Я добавил reject в конец smtp_sender_restrictions - это решило мою проблему, однако это также сломало входящую почту?

Чтобы проиллюстрировать проблему более четко - я хочу, чтобы следующее сообщение было отклонено, но оно не отклоняется:

Connected to mail.mydomain.com.
Escape character is '^]'.
220 807493.vps-10.com ESMTP Postfix
ehlo testing.com
250-807493.vps-10.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN
250-AUTH=PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:myaddress@mydomain.com
250 2.1.0 Ok
rcpt to:myaddress@mydomain.com
250 2.1.5 Ok

Если я изменю на:

smtpd_sender_restrictions = reject_unknown_sender_domain,    
 permit_mynetworks, permit_sasl_authenticated, reject

Тогда я получу желаемый результат:

Connected to mail.mydomain.com.
Escape character is '^]'.
220 807493.vps-10.com ESMTP Postfix
ehlo testing.com
250-807493.vps-10.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN
250-AUTH=PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:myaddress@mydomain.com
250 2.1.0 Ok
rcpt to:myaddress@mydomain.com
554 5.7.1 <myaddress@mydomain.com>: Sender address rejected: Access denied

Однако входящие письма с внешних адресов теперь отскакивают и принимаются!

Извините, но мне очень трудно это понять.

-2
задан 1 April 2016 в 17:38
2 ответа

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

0
ответ дан 5 December 2019 в 21:41

Postfix, похоже, использует permission_auth_destination в одном из своих списков ограничений доступа .

Я не мог определить точную причину проблемы. Не могли бы вы добавить в вопрос:

  1. Вывод postconf -n ?
  2. Вывод grep -n smtp /etc/postfix/master.cf[1142959 provided?[12111 providedHeaders, извлеченные из спама?

EDIT:

Я вижу, что параметр smtpd_recipient_restrictions содержит reject_unauth_destination и никаких других дополнительных ограничений. Кроме того, ни defer , ни reject ограничения не применяются, поэтому неявное разрешение преобладает.

Позвольте мне написать, как ведет себя ваш демон Postfix, когда он получает Команда RCPT TO в транзакции SMTP. Учтите, что удаленный клиент запустил его и намеревается отправить фальшивое сообщение от / до (скрыто) => Пользователь не прошел аутентификацию, поэтому это ограничение игнорируется.

  • permission_mynetworks => Пользователь не принадлежит к во внутренней сети, поэтому это ограничение игнорируется.
  • check_relay_domains => Postfix, кажется, устарел это ограничение, поэтому его также можно игнорировать.
  • reject_unauth_destination => Postfix определяет, что это конечный пункт назначения сообщения, поэтому ограничение игнорируется.
  • Имеется неявное разрешение , поэтому Postfix наконец принимает и доставляет сообщение.
  • Вы можете добавить отклонить или отложите ограничение в конце smtpd_recipient_restrictions , если вы собираетесь получать сообщения только от аутентифицированных пользователей. Однако, если вы собираетесь получать сообщения от доменов, которые вам не принадлежат (например, общедоступного почтового сервера), вы должны использовать другие альтернативы, например, явное отклонение или отложенное отклонит эти сообщения. Примените разрешение, указанное @Jenny D, то есть установите ограничение check_sender_access или настройте платформу политики отправителя .

    Кроме того, вы можете применить дополнительные методы защиты от спама:

    0
    ответ дан 5 December 2019 в 21:41

    Теги

    Похожие вопросы