Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
pratique:informatique:mail:serveur_mail3 [05/06/2026 12:25] – [Dovecot] Zatalyzpratique:informatique:mail:serveur_mail3 [06/06/2026 13:13] (Version actuelle) – [Postfix] Zatalyz
Ligne 99: Ligne 99:
 ff02::2 ip6-allrouters</code> ff02::2 ip6-allrouters</code>
  
 +===== Alias avec joker =====
 +
 +Gandi a une fonctionnalité épatante : l'alias avec joker. 
 +
 +Extrait de leur doc : 
 +<WRAP center round box 100%>
 +Entrez le nom de d'alias, sans inclure le @. Vous pouvez également utiliser le caractère joker "*" pour, par exemple, avec "pierre*", rediriger tout ce qui commence par pierre dans votre boite (ex.: pierre@ -> pierremartin@, pierreafeu@, etc.). Cette option ne fonctionne toutefois qu'avec un minimum de 2 caractères avant ou après le joker.
 +</WRAP>
 +Un peu plus d'exemples. J'ai la boite mail ''vilain@example.org'', qui me sert à recevoir les inscriptions des sites, newsletters, commandes internet... autant dire que c'est bien rempli. ''vilain@'' n'est jamais exposé sur le net((Enfin ça apparait si je répond à un mail mais qui regarde la source ?)), au lieu de ça, je donne des alias, dont voici une liste :
 +  * nom.prenom@example.org
 +  * autrealias@example.org
 +  * news.*@example.org
 +  * marchand.*@example.org
 +  * wtf.*@example.org
 +
 +Les deux premiers (''nom.prenom@'' et ''autrealias@'') n'ont pas de joker, il faut avoir l'adresse exacte pour leur écrire. Les suivants par contre, je les adapte à la volée ; je donne ''marchand.site1@example.org'' à un premier site marchand et ''marchand.site2@example.org'' à un second site marchand, sans avoir besoin de créer les alias explicitement. Ensuite je m'en sert pour filtrer ce que je reçois dans ma boite mail et voir qui a revendu mon adresse (elles le sont rarement, en fait). 
 +
 +Je peux non seulement recevoir des mails à ces adresses avec joker, mais aussi répondre avec au besoin, bien que dans ce cas je sois dans l'obligation de déclarer l'alias dans Thunderbird (mais pas chez le fournisseur mail !).
 +
 +Voilà la killer feature de Gandi, si difficile à trouver ailleurs.
 +
 +La meilleure alternative est [[https://addy.io/]]. C'est libre (une configuration un peu spécifique d'un serveur mail), donc on peut l'installer chez soi, ou déléguer ça en payant le service en question. De mon côté je paie *mais* j'ai encore des adresses sur mon serveur de base qui ont besoin de ces alias avec joker. Coup de bol pour moi, tous mes alias fonctionnels sont de la forme ''chaine.joker'' ; sans le point, j'allais avoir des soucis. 
 +
 +J'ai donc fait quelques hacks pour que ce soit possible. Cela demandera quelques bidouilles sur Postfix et Dovecot (détaillées au fil de l'eau).
 ===== Installation des paquets ===== ===== Installation des paquets =====
 Configuration classique avec postfix, dovecot, mariadb, et postfixadmin pour gérer graphiquement les détails. Ainsi que phpmyadmin le temps des bidouilles (désactivé ensuite pour réduire les surfaces d'attaque). Configuration classique avec postfix, dovecot, mariadb, et postfixadmin pour gérer graphiquement les détails. Ainsi que phpmyadmin le temps des bidouilles (désactivé ensuite pour réduire les surfaces d'attaque).
Ligne 651: Ligne 675:
  
 ==== Postfix ==== ==== Postfix ====
 +Ce qu'il y a réellement à modifier : 
 +  * check/header_checks_out ? (sur mon ancien serveur, pas sur base neuve)
 +  * mycfg : les divers fichiers de config
 +  * dynamicmaps.cf
 +  * main.cf
 +  * master.cf
 +
 +=== Échanges entre Postfix et la base de donnée ===
 +[[https://workaround.org|ISPMail Guide]] propose une solution où nous référençons un fichier dans ''main.cf'', ce dernier ayant les infos de connexion à la base de donnée et la requête (query) à faire pour l'action demandée. 
 +
 +Par exemple ''virtual_mailbox_maps = mysql:/etc/postfix/mycfg/mysql-virtual-mailbox-maps.cf'' dans ''main.cf''. Le fichier mysql-virtual-mailbox-maps.cf a la forme suivante : 
 +<code>user = mailserver
 +password = MOTDEPASSE
 +hosts = 127.0.0.1
 +dbname = mailserver
 +query = SELECT 1 FROM virtual_domains WHERE name='%s'
 +</code>
 +
 +Sauf que je trouve cela redondant et amène à mettre les infos de connexion à la base de donnée à plusieurs endroits. Donc si on change le mot de passe, faut toucher à plusieurs fichiers. Je préfèrerais du DRY (Don't Repeat Yourself). 
 +
 +On pouvait en réalité déclarer une fois les infos dans main.cf, puis la "query" dans ce même fichier((Cf https://www.postfix.org/sqlite_table.5.html )). Ce qui ressemble à ceci :
 +
 +<code>virtual_mailbox_maps = sqlite:server_sql
 +server_sql_query = SELECT 1 FROM virtual_domains WHERE name='%s'
 +</code>
 +
 +C'est plus lisible, mais c'est déprécié, car main.cf a des droits plus permissifs que ce qu'on peut mettre dans les fichiers du type mycfg. Donc, on expose plus le mot de passe de la bdd... 
 +
 +Postfixadmin propose un script (même s'il s'appelle txt) pour [[https://github.com/postfixadmin/postfixadmin/blob/master/DOCUMENTS/POSTFIX_CONF.txt|créer les petits fichiers de connexion à sa BDD]]. Ça a le mérite d'être fait... Et reste donc à mettre les bons droits. Je vais finalement configurer mes fichiers en ce sens...
 +
 +Mieux vaut un utilisateur Postfix pour la BDD qui n'a que les droits en lecture (postfix n'a pas à écrire). 
 +
 +===== TODO =====
 +==== Revoir ces histoires de droits ====
 +Concernant les droits, /etc/postfix/main.cf doit être lu par d'autres logiciels (pourquoi ?) et donc assez permissif en lecture. Donc ce qui concerne sa connexion à la BDD est dans un dossier séparé avec les droits de lecture pour root/postfix seulement. Postfix ne consulte la base qu'en lecture.
 +Mais dans le même temps, /srv/postfixadmin/config.local.php expose les infos de connexion à la BDD avec en plus un user qui peut écrire. De même que dovecot via /etc/dovecot/local.conf. 
 +
 +Ce qui est assez absurde. 
 +
 +Ok, pour postfix... 
 +
 +Pour postfixadmin on tentera un fichier avec les infos dans db-secret.php (chmod 640, root:www-data), puis ''include '/etc/postfixadmin/db-secret.php';'' dans ''config.local.php''.
 +
 +Pour dovecot, même principe : /etc/dovecot/dovecot-sql.conf avec droits 0640 (root:dovecot). ''!include /etc/dovecot/dovecot-sql.conf'' dans ''local.conf''.
 +
 +À tester mais ça semblerait plus propre.
  
 {{tag>mail sysadmin}} {{tag>mail sysadmin}}
pratique/informatique/mail/serveur_mail3.1780655145.txt.gz · Dernière modification : 05/06/2026 12:25 de Zatalyz