Cómo configurar Roundcube/Dovecot para una autenticación de 2 factores *efectiva*

Cómo configurar Roundcube/Dovecot para una autenticación de 2 factores *efectiva*

Existen varios complementos de Roundcube que proporcionan autenticación de dos factores. Sin embargo, el problema que veo ahora es que todavía puedo iniciar sesión a través de IMAP/SMTP, sin 2-FA (obviamente). 2-FA es (efectivamente) inútil aquí.

Pensé que podría resolver este problema introduciendo contraseñas específicas de la aplicación y haciendo algo similar a lo que también está haciendo Google con su 2-FA y las aplicaciones que no lo admiten.

Ahora pensé que podría generar automáticamente una contraseña específica de la aplicación para Roundcube para cada usuario, que es diferente a la que se usa para iniciar sesión en la interfaz web de Roundcube. El resultado sería que el usuario aún puede tener su propia contraseña + 2-FA para iniciar sesión en Roundcube, pero la misma contraseña no puede usarse directamente para IMAP/SMTP. Sin embargo, parece que no puedo encontrar una manera de configurar Roundcube para usar una contraseña IMAP diferente a la que se usa para iniciar sesión en la interfaz web.

Tanto Roundcube como Dovecot se ejecutan en la misma máquina.

¿Me estoy perdiendo de algo? ¿Es sensato lo que estoy haciendo? Esto parece un problema que podría resolverse de una manera más elegante que la que estoy intentando, entonces, ¿me estoy perdiendo algo? Todo lo que realmente quiero es autenticación 2-FA siempre que sea posible y contraseñas específicas de la aplicación en cualquier otro lugar.

¡Gracias!

Respuesta1

Después de probar un poco más, encontré dos soluciones/soluciones alternativas razonables, al menos para este caso simple.

Opción 1: usar enable_nets. Dovecot permite que passdb devuelva varios campos adicionales, incluido 'allow_nets' (http://wiki2.dovecot.org/PasswordDatabase/ExtraFields/AllowNets). Al configurar enable_nets en 127.0.0.1 para la contraseña que utilizará Roundcube, cualquier intento de inicio de sesión desde otras fuentes fallará. Si Roundcube está en una máquina diferente, obviamente será necesario ajustar la IP. Los problemas con este enfoque son las direcciones IP no estáticas y si los usuarios tienen otras formas de iniciar sesión que no sean 2-FA, por ejemplo, a través de un proxy que se ejecuta en la misma máquina que Roundcube.

Opción 2: usar CheckPassword para escribir un script de autenticación personalizado.Usando el controlador de contraseña de verificación (http://wiki2.dovecot.org/AuthDatabase/CheckPassword) para passdb permite escribir un script de autenticación personalizado. Puede verificar la IP del cliente allí o hacer algo completamente diferente. Los posibles problemas aquí son el rendimiento y es posible que necesite alguna configuración adicional para las búsquedas de usuarios, ya que checkpassword no admite búsquedas de usuarios. Además, persiste el problema de verificar cómo el usuario intenta iniciar sesión realmente.

información relacionada