Obtendo o roundcube para trabalhar com o dovecot, postfix e letsencrypt

3

Estou tentando fazer com que roundcube, dovecot, postfix e certificados do letsencrypt trabalhem juntos no Debian 9.

Eu instalei o roundcube usando o comando apt-get.

Ao tentar fazer login no roundcube, demora muito tempo em que diz "Carregando ...", mas não faz login. O erro na tela diz Connection to storage server failed . Procurando nos logs de erros do roundcube, recebo o seguinte erro:

IMAP Error: Login failed for [email protected] from 192.0.2.10. Empty startup greeting (localhost:143) in /usr/share/roundcube/program/lib/Roundcube/rcube_imap.php on line 193 (POST /?_task=login&_action=login)

Rodando /etc/init.d/dovecot status , recebo o seguinte:

dovecot[29431]: imap-login: Disconnected (no auth attempts in 60 secs): user=<>, rip=::1, lip=::1, TLS handshaking: SSL_accept() syscall failed: Success, session=<azgn6uptGtgAAAAAAAAAAAAAAAAAAAAB>

Eu tenho o seguinte no meu config.inc.php:

$config['default_host'] = 'tls://localhost';

e

$config['imap_conn_options'] = array(
   'ssl'         => array(
     'verify_peer'  => false,
     'verify_peer_name' => false,
    ),
);

$config['username_domain'] = '%d';

e o seguinte especificado no meu arquivo dovecot 10-ssl.conf:

ssl = required

ssl_cert = </etc/letsencrypt/live/example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/example.com/privkey.pem

Eu também tenho o seguinte no meu arquivo 10-master.conf:

service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    port = 143
    ssl = yes
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}

Se eu telnet localhost 143 obtenho:

Trying ::1...
Connected to localhost.
Escape character is '^]'.

Não tenho certeza se devo receber mais do que isso.

Francamente, não tenho certeza de onde meu problema está ou do que mais investigar. Por que não consigo fazer login no roundcube e onde mais devo verificar para identificar meu problema?

    
por kojow7 05.06.2018 / 23:25

1 resposta

2

TL; DR: Você não pode fazer uma configuração de porta personalizada e configurações de cliente padrão esperadas para trabalhar

Explicações

Ao definir a configuração seguinte, você configurou o dovecot para ouvir usando o protocolo IMAPS na porta IMAP:

I also have the following in my 10-master.conf file:

service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    port = 143
    ssl = yes
  }
}

= > este bloco desativa o protocolo "imap" (texto = 0) e habilita uma porta "imaps" com handshake SSL / TLS inicial forçado na porta 143.

A porta 143 é, no entanto, a porta atribuída pela IANA para o protocolo IMAP, o IMAPS deve estar no 993 (consulte /etc/services para referências de portas).

Deve ser possível manter essa configuração e tornar o dovecot feliz, mas você precisará ajustar todas as configurações de seus clientes, como ninguém espera, as configurações padrão para a porta IMAP (143) é permitir a comunicação em texto simples e o upgrade TLS opcional. quando anunciado.

Para o roundcube funcionar com isso, você precisará de algo assim:

$config['default_host'] = 'ssl://fqdn.of.server:143'

ou

$config['default_host'] = 'tls://fqdn.of.server:143'

Isso instruirá o roundcube que seu serviço imap espera uma conexão pré-criptografada pela porta padrão de texto sem formatação (143).

Quanto a telnet localhost 143 bem, você não pode usar isso para testar uma conexão SSL, você precisará de algo como openssl s_client -servername fqdn.of.server -connect localhost:143

Por favor, note que o SSL / TLS funciona com certificados e esses certificados funciona com nomes de host, então você não pode fazer uma conexão SSL via localhost sem ter alguns problemas com certificados.

Recomendações:

Embora seja possível ajustar a porta para cada aplicativo, muitos sistemas (firewalls, configurações de padrões, etc.) confiam no fato de que cada aplicativo recebeu uma porta específica.

Trabalhar com um servidor imap usando o IMAPS na porta 143 é possível, mas você encontrará várias dependências de problemas em clientes / redes.

Personnally eu recomendaria contra a modificação do modo de operação padrão do dovecot e a remoção de qualquer ajuste na configuração padrão do listener de inet em 10-master.conf .

Para habilitar comunicações seguras para imap / pop, as únicas alterações necessárias na configuração padrão dovecot são aquelas feitas acima de 10-ssl.conf (ssl = required + cert / key).

Referência: link

Além disso, a comunicação SSL nos canais de loopback (localhost) não é realmente útil, por isso, por padrão, mesmo com "ssl = required" ou "disable_plaintext_auth" ativo, o dovecot considera qualquer conexão na rede de loopback (ip 127.0.0.1 ou ip cliente idêntico ao servidor ip) para ser seguro mesmo sem ssl / tls.

Portanto, se o serviço roundcube estiver no mesmo host que o servidor dovecot, a configuração só precisa ser:

$config['default_host'] = 'localhost'
    
por 06.06.2018 / 11:05