2016-07-25 9 views
-2

У нас есть интернет-сервер MX, через который все пользователи аутентифицируют свое исходящее соединение для отправки электронной почты через порт 587. Этот MX-сервер направляет входящую почту для нашего домена внутренний постфиксный smtp-сервер, который затем доставляет почту на локальные серверы imap.postfix проверить поле From From совпадает с аутентифицированным именем пользователя или другими действительными псевдонимами в LDAP

Внутренние пользователи postfix smtp-сервера LDAP alias_maps = ldap: /etc/postfix/ldap-aliases.cf, для поиска, на котором находится imap-сервер, на котором находится почтовый ящик пользователей.

Существует вариант постфикса ... reject_sender_login_mismatch , которые могут быть отображены ... smtpd_sender_login_maps = LDAP: /etc/postfix/smtpd_sender_login.cf

Однако - я получаю следующее сообщение об ошибке

Jul 4 11:23:26 smtp-1.domain1.com postfix/smtpd [31530]: предупреждение: запрет `reject_authenticated_sender_login_mismatch 'игнорируется: нет поддержки SASL

Ни один пользователь не аутентифицируется на внутреннем постфиксном SMTP-сервере - все, что он делает маршрутные письма с сервера MX. Я считаю, что причина, по которой я вижу предупреждение «без поддержки SASL», заключается в том, что постфикс не обрабатывает аутентификацию, так как он обслуживается сервером MX.

postconf -n

alias_database = hash:/etc/aliases 
alias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliases 
command_directory = /usr/sbin 
config_directory = /etc/postfix 
daemon_directory = /usr/libexec/postfix 
data_directory = /var/lib/postfix 
debug_peer_level = 2 
html_directory = no 
inet_interfaces = all 
inet_protocols = ipv4 
mail_owner = postfix 
mailq_path = /usr/bin/mailq.postfix 
manpage_directory = /usr/share/man 
message_size_limit = 51200000 
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mx3.$mydomain, mx1.$mydomain, mx2.$mydomain 
mydomain = domain1.com 
myhostname = smtp-1.domain1.com 
mynetworks = xxx.xxx.192.0/21, xxx.62.52.0/22, 10.0.0.0/8, xxx.16.0.0/12, xxx.168.0.0/16 
myorigin = $mydomain 
newaliases_path = /usr/bin/newaliases.postfix 
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 
smtpd_sender_login_maps = ldap:/etc/postfix/ldap-senders.cf 
smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch 
unknown_local_recipient_reject_code = 550 

Однако, с другой конфигурацией "smtpd_sender_restrictions = reject_unverified_sender"

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

NOQUEUE: reject: RCPT from mx.domain1.com [xxx.xxx.192.130]: 450 4.1.7: адрес отправителя отклонен: непроверенный адрес: неизвестный пользователь: «hejem»; от = к = прото = ESMTP HELO =

-bash-4.1$ postconf -n 
alias_database = hash:/etc/aliases 
alias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliases 
command_directory = /usr/sbin 
config_directory = /etc/postfix 
daemon_directory = /usr/libexec/postfix 
data_directory = /var/lib/postfix 
debug_peer_level = 2 
html_directory = no 
inet_interfaces = all 
inet_protocols = ipv4 
mail_owner = postfix 
mailq_path = /usr/bin/mailq.postfix 
manpage_directory = /usr/share/man 
message_size_limit = 51200000 
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,  mx3.$mydomain, mx1.$mydomain, mx2.$mydomain 
mydomain = domain1.com 
myhostname = smtp-1.domain1.com 
mynetworks = xxx.xxx.xxx.0/21, xxx.xxx.xxx.0/22, xxx.0.0.0/xxx, xxx.xxx.0.0/12, xxx.xxx.0.0/16 
myorigin = $mydomain 
newaliases_path = /usr/bin/newaliases.postfix 
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 
smtpd_sender_restrictions = reject_unverified_sender" 

То, что я хочу достичь, это мой внутренний локальный постфикса проверить «конверт из поля», чтобы убедиться, что он не был подделан, зная имя пользователя, отправившего пользователя и глядя вверх это присвоены псевдонимы «От» в LDAP, если они не совпадают, т. е. они спуфируют, а затем отклоняют почту.

Любой совет, как реализовать эту проверку в постфиксном?

Благодаря

ответ

0

Во-первых, это не считается хорошей практикой для активации reject_unverified_sender в постфиксных услуг. Если вы хотите предотвратить отправку писем с несуществующих адресов в вашем домене, вы должны предпочесть reject_unlisted_sender.

Вы не можете быть уверены в подделке существующих почтовых адресов, не активируя механизм аутентификации (SASL) в службе postfix. Таким образом, для предотвращения подмены существующих адресов:

  • Убедитесь, что smtpd_sender_login_maps настроена правильно.
  • Активировать аутентификацию SASL при постфиксном
  • Настроить reject_authenticated_sender_login_mismatch или reject_sender_login_mismatch в зависимости от ваших предпочтений.

Дальнейшее чтение (из документации SASL постфикса)

Конверт адрес отправителя авторизации

По умолчанию клиент SMTP может указать любой адрес отправителя конверта в команде MAIL FROM. Это связано с тем, что SMTP-сервер Postfix знает только имя и IP-адрес удаленного SMTP-клиента, но не пользователь, который управляет удаленным SMTP-клиентом.

Это изменяет момент, когда клиент SMTP использует аутентификацию SASL. Теперь SMTP-сервер Postfix знает, кто отправитель. Учитывая таблица конверт адресов отправителя и логинов SASL, сервер Postfix SMTP может решить, если проверка подлинности клиента SASL разрешается использовать конкретный адрес отправителя конверта:

/etc/postfix/main.cf: smtpd_sender_login_maps = хэш :/etc/postfix/controlled_envelope_senders

smtpd_recipient_restrictions = 
    ... 
    reject_sender_login_mismatch 
    permit_sasl_authenticated 

 Смежные вопросы

  • Нет связанных вопросов^_^