Taille: 2788
Commentaire: ...
|
Taille: 3990
Commentaire: pas encore fini
|
Texte supprimé. | Texte ajouté. |
Ligne 13: | Ligne 13: |
Notez que les façons de faire sont multiples. Ceci n'est qu'une façon de faire parmis beaucoup | Notez que les façons de faire sont multiples. Ceci n'est qu'une façon de faire parmis beaucoup |
Ligne 15: | Ligne 15: |
1. Lister dans {{{virtual_mailbox_domains}}} les domaines qui seront gérés en "virtuel", donc sans aucune existence au niveau unix. Vérifier que ces mêmes domaines '''ne''' sont '''pas''' listés en même temps dans {{{mydestination}}} ni {{{virtual_domains}}}, pour éviter tout soucis de cohérence. | Cette documentation part du principe que le schéma de base de données utilisé est [http://trac.sn.auf.org/guia/browser/trunk/guia/noyau/greffons/Postfix_MySQL/bases/postfix.sql celui de GUIA] et que la base de donnée est déjà crée et peuplée. * Lister dans {{{virtual_mailbox_domains}}} les domaines qui seront gérés en "virtuel", donc sans aucune existence au niveau unix. Vérifier que ces mêmes domaines '''ne''' sont '''pas''' listés en même temps dans {{{mydestination}}} ni {{{virtual_domains}}}, pour éviter tout soucis de cohérence. |
Ligne 21: | Ligne 23: |
2. Configurer le système de "virtual_mailbox" pour aller chercher ses informations dans une table mysql. | * Configurer le système de "virtual_mailbox" pour aller chercher ses informations dans une table mysql. |
Ligne 24: | Ligne 26: |
virtual_gid_maps = static:1007 virtual_uid_maps = static:1006 virtual_minimum_uid = 1006 # ce fichier défini la façon dont aller chercher les informations dans la base |
# ce fichier défini la façon d'aller chercher les informations dans la base mysql |
Ligne 32: | Ligne 29: |
# un préfixe | # un préfixe à ajouter devant chaque chemin de boîte aux lettres. # Plutôt mettre des chemins absolus dans la base pour se simplifier la vie ensuite : # certains soft (postfix) autorises l'ajout de préfixes, d'autre seulement de suffixe. |
Ligne 34: | Ligne 33: |
virtual_transport = virtual |
|
Ligne 38: | Ligne 35: |
* Spécifier l'utilisateur unix à qui appartiendront les fichiers des boîtes aux lettres. Il faut créer un utilisateur spécialement dédié à cet usage, et ne pas céder à la facilité en utilisant "mail:mail", déjà existant mais destiné à d'autres usages. {{{ virtual_gid_maps = static:127 virtual_uid_maps = static:127 virtual_minimum_uid = 127 }}} * Créer le fichier {{{/etc/postfix/virtual_mailbox_maps.cf]}}} qui décrit la façon dont accéder aux données {{{ user = utilisateur-mysql password = pass-de-utilisateur-mysql hosts = hote-mysql dbname = nom-de-la-base-mysql query = SELECT homedir FROM users WHERE mail = '%s' }}} et l'utilisateur mysql correspondant: {{{ mysql> grant select on nom-de-la-base-mysql.* to utilisateur-mysql@'localhost' identified by 'pass-de-utilisateur-mysql'; }}} |
Pourquoi faire ?
- Postfix permet de stocker les informations des tables de correspondance dans des tables de bases de données mysql. Cela permet une plus grand souplesse dans la création et la gestion des adresses email et des comptes utilisateurs.
Voir la [http://postfix.traduc.org/index.php/DATABASE_README.html documentation sur les tables de correspondances] de postfix, et, plus particuliérement, celle détaillant [http://postfix.traduc.org/index.php/MYSQL_README.html les tables mysql] pour le fonctionnement général.
L'usage de ce type de table, associé à l'utilisation des [http://postfix.traduc.org/index.php/VIRTUAL_README.html virtual_mailbox] permet d'avoir des comptes utilisateurs complétement dissociés des comptes unix du serveur.
La configuration du serveur imap (l'utilisation de [:Dovecot/BackendMysql:dovecot] est vivement conseillée) doit bien entendu être synchrone à la configuration mysql de postfix.
Comment faire ?
Notez que les façons de faire sont multiples. Ceci n'est qu'une façon de faire parmis beaucoup
Cette documentation part du principe que le schéma de base de données utilisé est [http://trac.sn.auf.org/guia/browser/trunk/guia/noyau/greffons/Postfix_MySQL/bases/postfix.sql celui de GUIA] et que la base de donnée est déjà crée et peuplée.
Lister dans virtual_mailbox_domains les domaines qui seront gérés en "virtuel", donc sans aucune existence au niveau unix. Vérifier que ces mêmes domaines ne sont pas listés en même temps dans mydestination ni virtual_domains, pour éviter tout soucis de cohérence.
virtual_mailbox_domains = ca.auf.org, secours
- Configurer le système de "virtual_mailbox" pour aller chercher ses informations dans une table mysql.
# ce fichier défini la façon d'aller chercher les informations dans la base mysql virtual_mailbox_maps = proxy:mysql:/etc/postfix/virtual_mailbox_maps.cf # un préfixe à ajouter devant chaque chemin de boîte aux lettres. # Plutôt mettre des chemins absolus dans la base pour se simplifier la vie ensuite : # certains soft (postfix) autorises l'ajout de préfixes, d'autre seulement de suffixe. virtual_mailbox_base = /
- Spécifier l'utilisateur unix à qui appartiendront les fichiers des boîtes aux lettres. Il faut créer un utilisateur spécialement dédié à cet usage, et ne pas céder à la facilité en utilisant "mail:mail", déjà existant mais destiné à d'autres usages.
virtual_gid_maps = static:127 virtual_uid_maps = static:127 virtual_minimum_uid = 127
Créer le fichier /etc/postfix/virtual_mailbox_maps.cf] qui décrit la façon dont accéder aux données
user = utilisateur-mysql password = pass-de-utilisateur-mysql hosts = hote-mysql dbname = nom-de-la-base-mysql query = SELECT homedir FROM users WHERE mail = '%s'
et l'utilisateur mysql correspondant:
mysql> grant select on nom-de-la-base-mysql.* to utilisateur-mysql@'localhost' identified by 'pass-de-utilisateur-mysql';
Que faire lorsque ça ne fonctionne pas ?
Toute d'abord, bien entendu, [:VérifierLesLogsEnCasDeSoucis:analyser les logs]
- Si Postfix n'arrive pas à se connecter à la base mysql en général : essayer de se connecter au même serveur en ligne de commande, avec les mêmes paramètres.
- Si certains modules de postfix n'arrivent pas à se connecter à la base, d'autre, si : postfix lance certains de ses modules en chroot. Si le serveur mysql est sur la même machine, cela va passer par un fichier 'socket' plutôt que par une connexion réseau, qui ne sera donc pas accessible dans l'environnement chroot. Vérifier alors que le mot "proxy:" précède bien les entrées "mysql:" correspondantes. Dans ce cas, un proxy dédié à l'interrogation de la base mysql sera lancé, et ferra l'intermédiaire entre postfix et mysql.
- "loops back to myself"
- ... ?