Depois de um pouco de dificuldade, consegui configurar o Dovecot para exigir certificados de clientes para usuários que fazem login e funciona bem.
No entanto, eu também quero configurar uma solução de webmail (Roundcube) que precisa ser capaz de se conectar via IMAP, mas não parece ser capaz de enviar um certificado de cliente. Estou configurando-o para usar a porta 143 (não criptografada), pois a conexão ocorre em uma rede confiável e, com isso em mente, adicionei minha rede local ao login_trusted_networks
do Dovecot, para que a autenticação por texto simples também funcione.
Infelizmente, quando o Roundcube se conecta, ainda está sendo solicitado um certificado de cliente, mesmo que a conexão não tenha o SSL ativado.
Eu já limitei o requisito de certificados de cliente para evitar problemas com o postfix usando o seguinte:
protocol !smtp {
ssl_ca = </etc/dovecot/ca/dovecot-ca.pem
ssl_verify_client_cert = yes
ssl_cert_username_field = commonName
auth_ssl_require_client_cert = yes
auth_ssl_username_from_cert = yes
}
No entanto, não sei como posso restringir isso apenas a conexões criptografadas? Não permito acesso remoto a protocolos não criptografados, exceto a porta 25, conforme necessário para enviar e-mail entre servidores.
Como uma nota de segurança, o mesmo certificado protegendo conexões IMAPS também é usado para autenticação de cliente por nginx
, portanto o webmail já está restrito por certificado, embora eu possa mudar para outra segunda camada de autenticação para mobilidade (por exemplo algum tipo de API de dois fatores.