Comment configurer Roundcube / Dovecot pour une authentification * efficace * à 2 facteurs

2

Plusieurs plugins Roundcube fournissent une authentification à deux facteurs. Cependant, le problème que je vois maintenant est que je peux toujours me connecter simplement via IMAP / SMTP, sans 2-FA (évidemment). Le 2-FA est (effectivement) inutile ici.

Je pensais pouvoir résoudre ce problème en introduisant des mots de passe spécifiques à l'application et en faisant quelque chose de similaire à ce que Google fait également avec son 2-FA et les applications qui ne le prennent pas en charge.

Je pensais maintenant que je pouvais générer automatiquement un mot de passe spécifique à l'application pour Roundcube pour chaque utilisateur, différent de celui utilisé pour la connexion à l'interface Web Roundcube. Le résultat serait que l'utilisateur peut toujours avoir son propre mot de passe + 2-FA pour se connecter à Roundcube mais le même mot de passe ne peut pas être utilisé directement pour IMAP / SMTP. Cependant, je n'arrive pas à trouver un moyen de configurer Roundcube pour utiliser un mot de passe IMAP différent de celui utilisé pour se connecter à l'interface Web.

Roundcube et Dovecot tournent tous deux sur le même ordinateur.

Est-ce que j'ai râté quelque chose? Est-ce que ce que je fais est raisonnable? Cela semble être un problème qui pourrait être résolu de manière plus élégante que ce que je tente, alors est-ce que quelque chose me manque? Tout ce que je veux, c’est une authentification 2-FA partout où c’est possible et des mots de passe spécifiques à une application partout ailleurs.

Je vous remercie!

Jocbe
la source

Réponses:

1

Après avoir essayé un peu plus, j'ai trouvé deux solutions / solutions de contournement raisonnables, du moins pour ce cas simple.

Option 1: utiliser allow_nets. Dovecot permet à passdb de renvoyer divers champs supplémentaires, notamment "allow_nets" ( http://wiki2.dovecot.org/PasswordDatabase/ExtraFields/AllowNets ). En définissant allow_nets sur 127.0.0.1 pour le mot de passe utilisé par Roundcube, toute tentative de connexion à partir d'autres sources échouera. Si Roundcube se trouve sur une autre machine, il est évident que l'adresse IP doit être ajustée. Les problèmes liés à cette approche sont des adresses IP non statiques et si les utilisateurs disposent d'autres méthodes de connexion autres que deux FA, par exemple via un proxy s'exécutant sur le même ordinateur que Roundcube.

Option 2: utilisation de CheckPassword pour écrire un script d'authentification personnalisé. L'utilisation du pilote checkpassword ( http://wiki2.dovecot.org/AuthDatabase/CheckPassword ) pour passdb permet l'écriture d'un script d'authentification personnalisé. Vous pouvez vérifier l'adresse IP du client ou faire quelque chose de complètement différent. Les problèmes possibles ici sont liés aux performances et à la configuration supplémentaire requise pour les recherches d’utilisateur, car checkpassword ne prend pas en charge les recherches d’utilisateur. En outre, le problème de la vérification de la manière dont l'utilisateur tente de se connecter reste.

Jocbe
la source