Ceci est une ancienne révision du document !
Table des matières
Installation de Dovecot
Objectif
- Nous ne nous intéresserons pas au protocole POP3 mais seulement à IMAP4.
- Nous considérons avoir peu de Boîtes aux lettres à gérer, quelques dizaines tout au plus.
- À part un tout petit nombre d'utilisateurs ayant à gérer le système, la majorité ne devrait avoir aucun accès au système d'exploitation. Les comptes seront créés dans le même groupe d'utilisateurs et sans possibilité de login.
- Dovecot devra pouvoir permettre à Postfix l'authentification des utilisateurs nomades, par le truchement de SASL (Simple Authentication and Security Layer).
- Postfix utilisera le LDA (Local Delivery Agent) proposé par Dovecot qui offre plus de souplesse que celui intégré à Postfix.
Sur Debian Trixie, Dovecot est découpé en plusieurs paquets, suivant les besoins. Compte-tenu de l'objectif fixé, dovecot-imapd
et dovecot-lmtpd
suffiront. dovecot-core
sera installé automatiquement.
Première configuration
Après avoir installé ces paquets, afin d'effectuer des essais préliminaires, il faut effectuer quelques aménagements à la configuration de base.
10-ssl.conf
Il faut y mettre le certificat et la clé récupérés chez let's encrypt:
ssl_cert = </etc/letsencrypt/live/home.nain-t.net/fullchain.pem ssl_key = </etc/letsencrypt/live/home.nain-t.net/privkey.pem
10-auth.conf
Provisoirement, autorisons l'authentification des utilisateurs sans passer par SSL/TLS:
disable_plaintext_auth = no
10-mail.conf
Préciser que l'on veut le format Maildir et le chemin d'accès à ce répertoire:
mail_location = maildir:~/Maildir
Dans un premier temps, les utilisateurs «système» trouveront leur Répertoire Maildir dans leur «home».
10-master.cf
Définir le mode de fonctionnement du LDA de Dovecot utilisant «lmtp» en harmonie avec postfix:
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } }
Il faut également ajouter à /etc/postfix/main.cf
la ligne suivante:
mailbox_transport = lmtp:unix:private/dovecot-lmtp
Essais préliminaires
Il n'est pas inutile d'installer le paquet bsd-mailx
, utile pour des tests basiques.
Nous avons sur le serveur deux utilisateurs spéciaux pour les test: «admin» et «user».
Depuis une session «user», nous postons avec la commande «mail» à «root»:
mail root Subject: test0 blablabla... . Cc:Si tout se passe comme prévu, ce message devrait se retrouver quelque part dans
/home/admin/Maildir
. Un petit tour en temps que «admin» dans son répertoire personnel:
ls -l Maildir/ drwx------ 2 admin admin 4096 5 mai 16:35 cur -rw------- 1 admin admin 632 5 mai 16:35 dovecot.index.cache -rw------- 1 admin admin 344 5 mai 16:35 dovecot.index.log -rw------- 1 admin admin 452 5 mai 16:35 dovecot.list.index.log -rw------- 1 admin admin 94 5 mai 16:35 dovecot-uidlist -rw------- 1 admin admin 8 5 mai 16:35 dovecot-uidvalidity -r--r--r-- 1 admin admin 0 5 mai 16:35 dovecot-uidvalidity.6818ccb2 -rw------- 1 admin admin 0 5 mai 16:35 maildirfolder drwx------ 2 admin admin 4096 5 mai 16:35 new drwx------ 2 admin admin 4096 5 mai 16:35 tmpLa LDA de Dovecot crée beaucoup de choses dans ce répertoire
Maildir
et c'est déjà bon signe. Ce sont les répertoires qui nous intéressent le plus et principalement le répertoire new
qui contient les nouveaux messages reçus et non encore lus. C'est donc là que devrait se trouver notre test0.
Nous y allâmes, et nous le trouvâmes, mais sous un nom dont Dovecot a le secret:
ls new '1746455730.M30137P3956.mail,S=494,W=509'
Et c'est bien lui car:
cat new/'1746455730.M30137P3956.mail,S=494,W=509' Return-Path: <user@home.nain-t.net> X-Original-To: root Delivered-To: root@home.nain-t.net Received: by mail.home.nain-t.net (Postfix, from userid 1000) id D80FA1FE4E; Mon, 05 May 2025 16:35:29 +0200 (CEST) To: root@home.nain-t.net Subject: test0 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Message-Id: <20250505143529.D80FA1FE4E@mail.home.nain-t.net> Date: Mon, 05 May 2025 16:35:29 +0200 (CEST) From: userTout est bon, y compris le fonctionnement des «aliases».blablabla...
Ajout d'utilisateurs
Dans le cadre des objectifs fixés, il suffit de créer des utilisateurs sans aucun privilège, sans shell et tous dans le même groupe, «nogroup» par exemple:
adduser --shell /bin/false --ingroup nogroup <nom de l'utilisateur>
Si l'on prévoit une montée en puissance et l'ajout de nombreux autres utilisateurs, mieux vaudra alors envisager la solution des utilisateurs et des domaines virtuels en utilisant une base de données comme MariaDB par exemple.