Não é possível receber correio com a configuração do postfix dovecot +

3

Primeira vez configurando meu próprio servidor de e-mail em uma máquina executando o Ubuntu mais recente

Depois de olhar em volta, decidi por usuários dovecot + postfix e Virtual com caixas de correio em / var / mail / vmail /% d /% n

Na maioria das vezes, eu segui a série de tutoriais Retornar e-mail encontrada aqui

Percebi que quando eu tento me conectar via IMAP a [email protected], a estrutura de diretórios correta é criada, de forma que /var/mail/vmail/meudominio.com.br/me existe e possui os arquivos necessários.

No entanto, quando eu recebo mensagens nesse servidor através do SMTP, parece haver um ponto em toda a cadeia de comandos do Postfix ao Dovecot onde a parte do domínio% d se torna vazia e, portanto, tenta acessar e criar erradamente os diretórios e falha com este erro:

Jan 25 17:47:35 lda(me): Debug: Effective uid=1000, gid=1000, home=/home/me
Jan 25 17:47:35 lda(me): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/var/mail/vmail//me/mail:LAYOUT=fs
Jan 25 17:47:35 lda(me): Debug: fs: root=/var/mail/vmail//me/mail, index=, indexpvt=, control=, inbox=/var/mail/vmail//me/mail, alt=
Jan 25 17:47:35 lda(me): Debug: Namespace : /var/mail/vmail//me/mail doesn't exist yet, using default permissions
Jan 25 17:47:35 lda(me): Debug: Namespace : Using permissions from /var/mail/vmail//me/mail: mode=0700 gid=default
Jan 25 17:47:35 lda(me): Error: User initialization failed: Namespace '': mkdir(/var/mail/vmail//me/mail) failed: Permission denied (euid=1000(me) egid=1000(me) missing +w perm: /var/mail/vmail/, we're not in group 5000(vmail), dir owned by 5000:5000 mode=0775)
Jan 25 17:47:35 lda(me): Fatal: Invalid user settings. Refer to server log for more information.

/ var / mail / vmail é de propriedade do vmail: vmail (5000) e mesmo que não seja necessário, eu temporariamente adicionei o usuário ao grupo de vmail.

Eu não sei como proceder para depurar isso, eu tenho ativado modos verbosos para tudo o que eu encontrei do postfix para o dovecot, mas dos logs que eu recebo eu não consigo identificar a fonte exata do problema. / p>

Aqui está a parte relevante do meu postfix master.cf

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver
  -f ${sender} -d ${recipient}

Qualquer tipo de ajuda ou sugestão é muito apreciada

Atualização 1

Acontece que houve um mailbox_command que não foi configurado corretamente no postfix, então eu mudei de

#mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -m "${EXTENSION}"

para

mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -f "${SENDER}" -d "${RECIPIENT}"

E agora eu não recebo o erro de permissão negada, mas ainda não consigo receber e-mails

configurações de localização de e-mail são:

mail_home = /var/mail/vmail/%d/%n
mail_location = maildir:/var/mail/vmail/%d/%n/mail:LAYOUT=fs

O conteúdo dos usuários de caixa de correio virtual é:

[email protected]       mydomain.com/me

E sim, eu fiz o postmap desse arquivo depois de cada modificação

Eu notei alguns outros avisos / erros:

Jan 25 20:43:29 linux2-dkhalife postfix/smtpd[8277]: warning: SASL: Connect to private/dovecot-auth failed: Connection refused
Jan 25 20:43:29 linux2-dkhalife postfix/smtpd[8277]: fatal: no SASL authentication mechanisms
Jan 25 20:42:26 linux2-dkhalife postfix/smtpd[8274]: warning: connect to Milter service unix:/var/spool/postfix/spamassassin/spamd.sock: No such file or directory
Jan 25 20:42:26 linux2-dkhalife postfix/smtpd[8274]: warning: connect to Milter service unix:/var/run/clamav/clamav-milter.ctl: No such file or directory
Jan 25 20:42:26 linux2-dkhalife postfix/smtpd[8274]: warning: connect to Milter service unix:/var/run/opendkim/opendkim.sock: No such file or directory

Atualização 2

doveconf -n produz a versão 2.2.18 e o seguinte:

auth_mechanisms = plain login
mail_debug = yes
mail_home = /var/mail/vmail/%d/%n
mail_location = maildir:/var/mail/vmail/%d/%n/mail:LAYOUT=fs
mail_privileged_group = vmail
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = username_format=%u scheme=ssha512 /etc/dovecot/passwd.db
  driver = passwd-file
}
plugin {
  sieve = ~/.dovecot.sieve
  sieve_after = /var/mail/vmail/sieve-after
  sieve_before = /var/mail/vmail/sieve-before
  sieve_dir = ~/sieve
}
protocols = imap pop3 sieve
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
}
ssl_cert = </etc/ssl/private/mail_mydomain_com.pem
ssl_cipher_list = ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AES:RSA+3DES:!ADH:!AECDH:!MD5:!DSS
ssl_client_ca_dir = /etc/ssl/certs
ssl_key = </etc/ssl/private/mail_mydomain_com.key
userdb {
  args = uid=5000 gid=5000 home=/var/mail/vmail/%d/%n
  driver = static
}
protocol imap {
  imap_client_workarounds = delay-newmail tb-extra-mailbox-sep
  mail_max_userip_connections = 10
}
protocol pop3 {
  mail_max_userip_connections = 10
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol lda {
  deliver_log_format = msgid=%m: %$
  mail_plugins = sieve
  postmaster_address = [email protected]
  quota_full_tempfail = yes
  rejection_reason = Your message to <%t> was automatically rejected:%n%r
}

postconf -n produz a versão 2.11.3 e o seguinte:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
canonical_maps = hash:/etc/postfix/canonical
config_directory = /etc/postfix
default_destination_concurrency_limit = 5
disable_vrfy_command = yes
dovecot_destination_recipient_limit = 1
home_mailbox = Maildir/
inet_interfaces = all
inet_protocols = all
local_recipient_maps =
mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -f "${SENDER}" -d "${RECIPIENT}"
mailbox_size_limit = 0
message_size_limit = 104857600
milter_connect_macros = j {daemon_name} v {if_name} _
milter_default_action = accept
mydestination = mydomain.com, myotherdomain.ca, localhost
mydomain = mydomain.com
myhostname = mail.mydomain.com
mynetworks = 127.0.0.0/8 10.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
non_smtpd_milters = $smtpd_milters
readme_directory = no
recipient_delimiter = +
relay_destination_concurrency_limit = 1
relayhost =
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, permit
smtpd_milters = unix:/var/spool/postfix/spamassassin/spamd.sock unix:/var/run/clamav/clamav-milter.ctl unix:/var/run/opendkim/opendkim.sock
smtpd_recipient_restrictions = reject_unknown_client_hostname, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_sender
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = /var/spool/postfix/private/dovecot-auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_login_maps = $virtual_mailbox_maps
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_sender_login_mismatch
smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_ask_ccert = yes
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/private/mail_mydomain_com.pem
smtpd_tls_ciphers = high
smtpd_tls_key_file = /etc/ssl/private/mail_mydomain_com.key
smtpd_tls_loglevel = 0
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
unknown_address_reject_code = 550
unknown_client_reject_code = 550
unknown_hostname_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_base = /var/mail/vmail
virtual_mailbox_domains = hash:/etc/postfix/virtual-mailbox-domains
virtual_mailbox_maps = hash:/etc/postfix/virtual-mailbox-users
virtual_transport = dovecot
    
por Dany Khalife 25.01.2016 / 19:16

2 respostas

4

Primeiro, seu smtpd_sasl_path está errado e foi especificado incorretamente. No dovecot.conf você o define como /var/spool/postfix/private/auth so no Postfix que deve ser smtpd_sasl_path = private/auth (não .../dovecot-auth ). Observe como este é um caminho relativo, relativo ao diretório chroot do Postfix. Reinicie o Postfix e os erros do SASL devem ser eliminados.

Em segundo lugar, parece que você está misturando hospedagem de e-mail virtual e hospedagem de e-mail "canônico". Seus domínios virtuais não devem ser definidos em mydestination , caso contrário, você terá problemas como "retornos de mensagens para mim mesmo". Decida que tipo de configuração de hospedagem de mensagens você deseja e configure o Postfix e o Dovecot de acordo. Não tente misturar e combinar diretivas de configuração na esperança de que alguma combinação resulte aleatoriamente em um resultado viável.

Estas duas questões são provavelmente a raiz do seu problema. A mensagem de erro de Dovecot sugere isso:

Jan 25 17:47:35 lda(dany): Error: User initialization failed: Namespace '':
  mkdir(/var/mail/vmail//dany/mail) failed:
  Permission denied (euid=1000(dany) egid=1000(dany) missing +w perm:
  /var/mail/vmail/, we're not in group 5000(vmail), dir owned by 5000:5000 mode=0775)

Isso ocorre porque o Postfix tenta entregar o e-mail usando mailbox_command (LDA deliver do Dovecot) como o usuário que recebe a mensagem (dany), mas esse usuário não está escrevendo para /var/mail/vmail , pois é um virtual usuário.

Suponho que você queira uma hospedagem de e-mail virtual adequada, como discutido, por exemplo, no link .

  • Sua configuração Dovecot mail_location deve ser apenas mail_location = maildir:~/mail:LAYOUT=fs (e pergunte a si mesmo se você realmente deseja LAYOUT=fs em vez do layout padrão do Maildir ++). Também não defina mail_home globalmente e no userdb. Basta soltar a diretiva mail_home completamente, não é necessário para a sua configuração.

  • Conseqüentemente, você não precisa de mailbox_command no Postfix, pois está usando um transporte virtual ( virtual_transport = dovecot ) e definiu um serviço dovecot em master.cf. Veja o próximo ponto.

  • Atualmente, eu utilizo o LMTP em vez do LDA deliver do Dovecot. Mais fácil de acertar, melhor desempenho e até mesmo lhe dá a verificação do destinatário para barato. Consulte o link para saber como implementar o LMTP.

  • Verifique se as permissões de /var/mail/vmail estão corretas. O diretório vmail e todos os subdiretórios devem ser de propriedade do UID 5000 e do GID 5000 e de mais ninguém. Não coloque outros usuários nesse grupo.

Isto é o que eu posso dizer até agora, tendo olhado sua configuração e as mensagens de erro. Tente corrigir os problemas acima e veja onde isso leva você.

    
por 25.01.2016 / 23:40
0

conecte-se ao serviço Milter unix:/clamav/clamav-milter.ctl : Permissão negada

ls -l /var/spool/postfix/clamav srw-rw---- 1 clamav clamav 0 Apr 4 17:59 clamav-milter.ctl

clamav-milter.conf

user clamav MilterSocketGroup postfix MilterSocketMode 660

permissões de usuário para o milter

chown postfix:postfix /var/spool/postfix/clamav/clamav-milter.ctl

Funciona para mim.

    
por 20.06.2018 / 15:22