Como configuro o Postfix para aceitar SMTP para usuários locais com “@” (no sinal) nos logins?

1
  • Eu tenho um servidor Ubuntu 14.04 em mydomain.com com um monte de usuários com @domain no login, como [email protected] .
  • Cada uma delas tem uma conta "pseudo" us.er-mydomain.com com as mesmas entradas uid, passwd e shadow .
  • Cada um deles tem uma entrada em /etc/postfix/virtual : [email protected] us.er-mydomain.com .

(Esses usuários são migrados do Virtualmin no CentOS) .

Meu servidor rejeita e-mails com um erro:

Dec  6 10:27:31 mydomain postfix/smtpd[8176]: NOQUEUE: reject: RCPT from lalala.asdfasdf.com[220.232.206.13]: 554 5.7.1 <[email protected]>:
 Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[email protected]>

embora tenha uma conta [email protected].

Eu não tenho myhostname ou mydomain set. Se eu configurá-los para o meu domínio de servidor, o postmap começa a rejeitar mensagens com unknown user: "us.er" message.

Qual é a melhor maneira de corrigir o recebimento de SMTP? Há algo muito errado com essa configuração?

Imap e pop3 funcionam mais ou menos. Despejos de configuração estão abaixo.

nome do host

some-isp-vps

hostname -f

mydomain.com 

postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
allow_percent_hack = no
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailbox_size_limit = 0
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
message_size_limit = 30485760
milter_default_action = accept
milter_protocol = 2
mydestination = $myhostname, localhost.$mydomain, localhost, vp1.mydomain.com
mynetworks = 192.241.228.147,127.0.0.1
newaliases_path = /usr/bin/newaliases
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
sender_bcc_maps = hash:/etc/postfix/bcc
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = may
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,permit_auth_destination,reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks,permit_sasl_authenticated,permit_auth_destination,reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = no
smtpd_tls_cert_file = /etc/ssl/certs/ssl.cert
smtpd_tls_key_file = /etc/ssl/certs/ssl.key
smtpd_tls_loglevel = 1
smtpd_tls_mandatory_ciphers = high
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
tls_random_source = dev:/dev/urandom
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual

postconf -M

smtp       inet  n       -       n       -       -       smtpd -o smtpd_sasl_auth_enable=yes
smtps      inet  n       -       n       -       -       smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
pickup     fifo  n       -       n       60      1       pickup
cleanup    unix  n       -       n       -       0       cleanup
qmgr       fifo  n       -       n       300     1       qmgr
tlsmgr     unix  -       -       n       1000?   1       tlsmgr
rewrite    unix  -       -       n       -       -       trivial-rewrite
bounce     unix  -       -       n       -       0       bounce
defer      unix  -       -       n       -       0       bounce
trace      unix  -       -       n       -       0       bounce
verify     unix  -       -       n       -       1       verify
flush      unix  n       -       n       1000?   0       flush
proxymap   unix  -       -       n       -       -       proxymap
proxywrite unix  -       -       n       -       1       proxymap
smtp       unix  -       -       n       -       -       smtp
relay      unix  -       -       n       -       -       smtp -o smtp_fallback_relay=
showq      unix  n       -       n       -       -       showq
error      unix  -       -       n       -       -       error
retry      unix  -       -       n       -       -       error
discard    unix  -       -       n       -       -       discard
local      unix  -       n       n       -       -       local
virtual    unix  -       n       n       -       -       virtual
lmtp       unix  -       -       n       -       -       lmtp
anvil      unix  -       -       n       -       1       anvil
scache     unix  -       -       n       -       1       scache
submission inet  n       -       n       -       -       smtpd -o smtpd_sasl_auth_enable=yes
    
por Victor Sergienko 06.12.2014 / 16:44

2 respostas

3

O postfix recusou o relay para mydomain.com porque não está listado como domínio local ou virtual. A primeira etapa é definir a classe de domínio (postfix.org/ADDRESS_CLASS_README.html). myhostname é o nome da máquina. mydestination é uma lista com domínios hospedados e usuários listados no passwd.

    
por 12.12.2014 / 00:07
2

Seu processo postfix smtpd está reclamando com:

<[email protected]>: Relay access denied

porque:

  1. mydomain.com não está configurado / reconhecido como um destino final local;

e

  1. o postfix não está configurado para retransmitir mensagens para um domínio meudominio.com ;

Sendo incapaz de entregar localmente (como no ponto 1) e remotamente (como no ponto 2), ele apresenta o erro "Relay access denied" que você está enfrentando.

Com base na sua configuração, seu problema é o ponto 1: você quer que seu postfix seja o destino final para o domínio mydomain.com , mas o postfix ... ainda não sabe disso. Você tem duas maneiras de resolver isso:

  • A) mydestination directiva: "... A lista de domínios que são entregues através do transporte de entrega de correio $ local_transport ... ". Infelizmente, sua configuração configurou com:

    mydestination = $ myhostname, localhost. $ mydomain, localhost, vp1.mydomain.com

sem incluir $ mydomain sozinho;

  • B) virtual_mailbox_domains directiva: "... O postfix é o destino final para o especificado lista de domínios, o correio é entregue através do transporte $ virtual_transport entrega de correio .... ". (BTW: sua configuração contém uma diretiva virtual_alias_maps que certamente está relacionada à hospedagem de domínio virtual, mas provavelmente você não configurou corretamente o arquivo referenciado / etc / postfix / virtual)

Uma observação muito importante: você deve escolher cuidadosamente se incluir seu domínio hospedado em " mydestination " ou " virtual_mailbox_domain

"... Cada um deles tem uma conta" pseudo "us.er-mydomain.com com as mesmas entradas uid, passwd e shadow ...."

para que você faça referência claramente a / etc / passwd e / etc / shadow. Por isso, são contas REAIS !

Em geral, se você escolher a rota "mydestination", você será forçado a ter contas REAL associadas a cada uma das caixas de correio hospedadas. Isso não pode ser um problema sério, caso você esteja hospedando apenas o seu próprio domínio.

Pelo contrário, pode rapidamente se tornar um pesadelo quando você está hospedando VÁRIOS domínios. Neste caso, você provavelmente está oferecendo aos seus usuários apenas o serviço de e-mail e ... definir uma conta unix real para cada um deles é definitivamente demais.

É por isso que, desde o Postfix 2.0, os virtual_mailbox_domains foram adicionados.

No final: você já resolveu seu problema, adicionando seu domínio à lista de domínios virtuais. Tudo bem. Mas esta configuração não precisa de contas unix reais a serem definidas.

Um exemplo muito claro que sugiro que você verifique é isto: Exemplo de MAILBOX virtual do Postfix: domínios separados, contas não-UNIX

    
por 07.12.2014 / 11:44