O postfix não verifica o endereço “De:” com o sender_login_maps

3

Estou tentando configurar um postfix, no qual os usuários (virtuais) só podem enviar com "De:" - endereços próprios. Então eu coloquei reject_authenticated_sender_login_mismatch em smtpd_sender_restrictions .

Usando

query = SELECT goto FROM alias WHERE address='%s' and active=1;

no meu sender_login_maps.cf , posso enviar e-mails com qualquer endereço de remetente que eu quiser, até mesmo algo como madeup@not_my_domain.com .

No entanto,

postmap -q "madeup@not_my_domain.com" mysql:/etc/postfix/sql/sender_login_maps.cf 

não retorna nada como esperado.

Agora, se eu alterar a consulta para

SELECT goto FROM alias WHERE address='notinthedatabaseforsure' and active=1; 

Não consigo enviar mensagens. Por enquanto, tudo bem. Mas o log diz

postfix/smtps/smtpd[11683]: NOQUEUE: reject: RCPT from...: 553 5.7.1 <[email protected]>: 
  Sender address rejected: not owned by user [email protected]; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[192.168.2.103]>

mesmo se eu tentar enviar de madeup@not_my_domain.com . [email protected] é o nome de login, [email protected] do destinatário.

Em uma configuração adequada, eu esperaria algo como

postfix/smtps/smtpd[11683]: NOQUEUE: reject: RCPT from ...: 553 5.7.1 <madeup@not_my_domain.com>: 
  Sender address rejected: not owned by user [email protected]; from=<madeup@not_my_domain.com> to=<[email protected]> proto=ESMTP helo=<[192.168.2.103]>

Parece que o postfix usa o nome de login para pesquisar o nome de login, independentemente do endereço do remetente, o que explica por que posso enviar com qualquer endereço de remetente usando a consulta que mencionei primeiro.

Atualização: Eu verifiquei meus logs SQL e, de fato, o servidor MySQL nunca vê madeup@not_my_domain.com . Só obtém consultas para o endereço de login e o endereço do destinatário [email protected] .

Aqui está a parte smtps do master.cf e meu main.cf:

smtps inet n - - - - smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o tls_preempt_cipherlist=yes
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_relay_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_mynetworks,permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o cleanup_service_name=submission-header-cleanup
mynetworks = 127.0.0.0/8
inet_interfaces = all
mydomain = domain.com
myhostname = mail.domain.com
myorigin = $mydomain
mydestination =
relayhost =


smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_recipient

smtpd_recipient_restrictions =
 permit_mynetworks,
 permit_sasl_authenticated,
 reject_non_fqdn_hostname,
 reject_non_fqdn_sender,
 reject_non_fqdn_recipient,
 reject_unauth_destination,
 reject_unauth_pipelining,
 reject_invalid_hostname

smtpd_sender_restrictions =
 reject_non_fqdn_sender,
 reject_unknown_sender_domain,
 reject_unauth_pipelining,
 reject_authenticated_sender_login_mismatch,
 permit_sasl_authenticated

smtpd_helo_required = yes
smtpd_helo_restrictions =   permit_mynetworks
                            reject_invalid_helo_hostname
                            reject_non_fqdn_helo_hostname
                            reject_unknown_helo_hostname

smtpd_data_restrictions = reject_unauth_pipelining

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

postscreen_access_list =        permit_mynetworks
                                cidr:/etc/postfix/postscreen_access
postscreen_blacklist_action = drop
postscreen_greet_action = drop

postscreen_dnsbl_threshold = 2
postscreen_dnsbl_sites = dnsbl.sorbs.net*1, bl.spamcop.net*1, ix.dnsbl.manitu.net*2, zen.spamhaus.org*2
postscreen_dnsbl_action = drop

virtual_alias_maps = mysql:/etc/postfix/sql/aliases.cf
virtual_mailbox_maps = mysql:/etc/postfix/sql/accounts.cf
virtual_mailbox_domains = mysql:/etc/postfix/sql/domains.cf
relay_domains = mysql:/etc/postfix/sql/relay_domains.cf
smtpd_sender_login_maps = mysql:/etc/postfix/sql/sender_login_maps.cf


virtual_uid_maps = static:3000
virtual_gid_maps = static:3000
virtual_mailbox_base = /home/vmail

# Disable NIS lookup warning
alias_maps=hash:/etc/aliases

append_dot_mydomain = no
recipient_delimiter = +
    
por xwst 01.12.2016 / 11:52

1 resposta

-1

Se um usuário com um nome de login [email protected] puder enviar apenas como [email protected] , use reject_sender_login_mismatch antes de permit_sasl_authenticated

smtpd_sender_restrictions = 
    # ... skip ...
    reject_sender_login_mismatch
    permit_sasl_authenticated

Esta opção inclui funcionalidade de reject_authenticated_sender_login_mismatch e reject_unauthenticated_sender_login_mismatch .

Além disso, verifique se a sua consulta SQL para um usuário retorna seu email (login AKA) para o qual o postfix executará testes. Se apenas devolver 1 ou outro valor "verdadeiro", poderá não funcionar como esperado.

    
por 15.12.2016 / 03:50

Tags