Dovecot diz: “Esquema de CRAM-MD5 requerido, mas temos apenas CRYPT”, mas o CRAM-MD5 está disponível

3

Após a atualização do Fedora Core 16 para o Fedora Core 21, a nova instalação do Dovecot não está sendo autenticada corretamente e não está claro o porquê.

Temos mais de 50 contas de e-mail servidas por esse servidor, então eu esperava manter os esquemas anteriores funcionando para as pessoas.

Estamos usando o CRAM-MD5 com bastante sucesso há muitos anos. Mudei a configuração, atualizei conforme necessário para a nova versão (2.2.15-3) e tentei conectar. O log diz:

Requested CRAM-MD5 scheme, but we have only CRYPT

No entanto, quando eu sigo a orientação do site da Dovecot sobre testes (que pode ser encontrado aqui link ), o teste comando mostra que o CRAM-MD5 está realmente disponível:

# telnet localhost 143
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
 IDLE STARTTLS AUTH=CRAM-MD5 AUTH=DIGEST-MD5 AUTH=PLAIN AUTH=LOGIN]
 Dovecot ready.

Como pode ser visto, o CRAM-MD5 é o primeiro tipo de autorização suportado listado.

Além disso, o programa de testes de parâmetros dovecot não mostra problemas:

# dovecot -n
# 2.2.15: /etc/dovecot/dovecot.conf
# OS: Linux 3.17.4-301.fc21.x86_64 x86_64 Fedora release 21 (Twenty One)
auth_debug = yes
auth_debug_passwords = yes
auth_mechanisms = cram-md5 digest-md5 plain login
auth_verbose = yes
listen = *
login_trusted_networks = 192.168.1.4 192.168.1.5 192.168.1.6
192.168.1.12 192.168.1.14 192.168.1.10 127.0.0.1
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u
mbox_write_locks = fcntl
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix =
}
passdb {
  driver = passwd
}
quota_full_tempfail = yes
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    user = postfix
  }
}
ssl = required
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
  driver = passwd
}
verbose_proctitle = yes

Eu verifiquei que as permissões no arquivo cram-md5 são as mesmas que no sistema antigo, etc.

Qualquer ajuda ajuda muito apreciada.

    
por Richard T 12.04.2015 / 22:14

1 resposta

3

... Eu acabei descobrindo que os detalhes de propriedade e permissões de arquivos foram alterados. E também cometi um pequeno erro nos arquivos de configuração.

Como muitos pacotes de software fazem, o novo esquema é instalado com exemplos que incluem muitos comentários e linhas comentadas que solicitam que você obtenha a configuração desejada. No entanto, não havia nenhuma linha como essa no meu arquivo de configuração antigo:

passdb {
  args = /etc/cram-md5.pwd
  driver = passwd-file
}

É claro que o arquivo não precisa ser chamado de cram-md5.pwd , nem precisa estar em / etc. No entanto, EM ALGUM LUGAR você precisa apontar para o arquivo!

Isso por si só não foi suficiente, no entanto.

Além disso, a instalação mais antiga tem esse arquivo de propriedade de root . A nova instalação gostou do arquivo para ter pelo menos a propriedade do grupo por dovecot e ler e escrever permissões no arquivo.

Acabei de escolher qualquer ole passdb "container" e colocar essas duas linhas nele e, de repente, ele começou a funcionar!

Eu ainda tenho algumas coisas que não estão funcionando corretamente, mas estas são opções de configuração que eu nunca tinha trabalhado antes (como segurança do tls), então ninguém está dependendo destes recursos no momento!

    
por 12.04.2015 / 23:12