Como configurar Roundcube/Dovecot para autenticação *eficaz* de 2 fatores

Como configurar Roundcube/Dovecot para autenticação *eficaz* de 2 fatores

Existem vários plug-ins Roundcube que fornecem autenticação de dois fatores. No entanto, o problema que vejo agora é que ainda posso simplesmente fazer login via IMAP/SMTP, sem 2-FA (obviamente). 2-FA é (efetivamente) inútil aqui.

Achei que poderia resolver esse problema introduzindo senhas específicas de aplicativos e fazendo algo semelhante ao que o Google também está fazendo com seu 2-FA e aplicativos que não o suportam.

Agora pensei que poderia gerar automaticamente uma senha específica do aplicativo para o Roundcube para cada usuário, que é diferente daquela usada para fazer login na interface web do Roundcube. O resultado seria que o usuário ainda pode ter sua própria senha + 2-FA para fazer login no Roundcube, mas a mesma senha não pode ser usada diretamente para IMAP/SMTP. No entanto, não consigo encontrar uma maneira de configurar o Roundcube para usar uma senha IMAP diferente daquela usada para fazer login na interface da web.

Tanto o Roundcube quanto o Dovecot estão rodando na mesma máquina.

Estou faltando alguma coisa aqui? O que estou fazendo é sensato? Este parece ser um problema que poderia ser resolvido de uma maneira mais elegante do que estou tentando, então estou faltando alguma coisa aí? Tudo o que eu realmente quero é autenticação 2-FA sempre que possível e senhas específicas de aplicativos em todos os outros lugares.

Obrigado!

Responder1

Depois de tentar mais um pouco, encontrei duas soluções/soluções alternativas razoáveis, pelo menos para este caso simples.

Opção 1: usando permit_nets. O Dovecot permite que vários campos extras sejam retornados pelo passdb, incluindo 'allow_nets' (http://wiki2.dovecot.org/PasswordDatabase/ExtraFields/AllowNets). Ao definir allow_nets como 127.0.0.1 para a senha que será usada pelo Roundcube, qualquer tentativa de login de outras fontes falhará. Se o Roundcube estiver em uma máquina diferente, o IP precisará ser ajustado, obviamente. Os problemas com esta abordagem são endereços IP não estáticos e se os usuários tiverem outras maneiras não 2-FA de fazer login, por exemplo, um proxy em execução na mesma máquina que o Roundcube.

Opção 2: usar CheckPassword para escrever um script de autenticação personalizado.Usando o driver de verificação de senha (http://wiki2.dovecot.org/AuthDatabase/CheckPassword) para o passdb permite que um script de autenticação personalizado seja gravado. Você pode verificar o IP do cliente ou fazer algo totalmente diferente. Os possíveis problemas aqui são o desempenho e você pode precisar de alguma configuração extra para pesquisas de usuários, já que checkpassword não oferece suporte a pesquisas de usuários. Além disso, permanece o problema de verificar como o usuário está realmente tentando fazer login.

informação relacionada