Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
postfix_mysql_tls_sasl [Le 13/06/2014, 14:02] 82.229.111.95 [SASL] |
postfix_mysql_tls_sasl [Le 11/09/2022, 11:53] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
|---|---|---|---|
| Ligne 14: | Ligne 14: | ||
| Temps d'application : une bonne demi-heure. | Temps d'application : une bonne demi-heure. | ||
| - | [[http://www.postfix.org/|Postfix]] est un mta (Mail Transfer Agent, simple d'utilisation contrairement à Sendmail ou bien qmail. Postfix est utilisé par défaut chez Mac OS X, disponible sur GNU/Linux, la famille BSD et d'autres unix encore. | + | [[http://www.postfix.org/|Postfix]] est un mta (Mail Transfer Agent, simple d'utilisation contrairement à Sendmail ou bien qmail. Postfix est utilisé par défaut chez Mac OS X, disponible sur GNU/Linux, la famille BSD et d'autres unix encore. |
| Ce tuto vous permettra de mettre en place une solution multi-domaine basée sur des utilisateurs et domaines virtuels, couplée avec MySQL. Postfix peut être couplé a LDAP et ProgresSQL. | Ce tuto vous permettra de mettre en place une solution multi-domaine basée sur des utilisateurs et domaines virtuels, couplée avec MySQL. Postfix peut être couplé a LDAP et ProgresSQL. | ||
| Ligne 44: | Ligne 44: | ||
| mysqladmin -u root password 'xxxxxxxx' | mysqladmin -u root password 'xxxxxxxx' | ||
| </code> | </code> | ||
| + | |||
| ==== Postfix ==== | ==== Postfix ==== | ||
| Ligne 57: | Ligne 58: | ||
| GRANT ALL PRIVILEGES ON postfix.* TO "postfix"@"localhost" IDENTIFIED BY 'motdepasse'; | GRANT ALL PRIVILEGES ON postfix.* TO "postfix"@"localhost" IDENTIFIED BY 'motdepasse'; | ||
| - | Insertion des tables dans la base de données | + | Insertion des tables dans la base de données |
| USE postfix; | USE postfix; | ||
| Ligne 101: | Ligne 102: | ||
| quit; | quit; | ||
| - | On crée un dossier nommé vmail. Ce dossier regroupera les boîtes mail des utilisateurs. | + | On crée un dossier nommé vmail. Ce dossier regroupera les boîtes mail des utilisateurs. |
| $ groupadd -g 5000 vmail | $ groupadd -g 5000 vmail | ||
| Ligne 150: | Ligne 151: | ||
| Cela peut également vous servir le jour où vous désirez modifier le mot de passe...</note> | Cela peut également vous servir le jour où vous désirez modifier le mot de passe...</note> | ||
| - | mysql_virtual_alias_maps.cf | + | Creation des fichiers : mysql_virtual_alias_maps.cf, mysql_virtual_domains_maps.cf, mysql_virtual_mailbox_maps.cf, mysql_virtual_mailbox_limit_maps.cf, mysql_relay_domains_maps.cf |
| - | user = postfix | + | MYSQL_USER=postfix |
| - | password = motdepasse | + | MYSQL_PASSWORD=motdepasse |
| - | hosts = 127.0.0.1 | + | MYSQL_HOST=127.0.0.1 |
| + | |||
| + | cat << EOF >/etc/postfix/mysql_virtual_alias_maps.cf | ||
| + | user = $MYSQL_USER | ||
| + | password = $MYSQL_PASSWORD | ||
| + | hosts = $MYSQL_HOST | ||
| dbname = postfix | dbname = postfix | ||
| query = SELECT goto FROM alias WHERE address='%s' AND active = 1 | query = SELECT goto FROM alias WHERE address='%s' AND active = 1 | ||
| - | + | EOF | |
| - | mysql_virtual_domains_maps.cf | + | |
| - | + | cat <<EOF >/etc/postfix/mysql_virtual_domains_maps.cf | |
| - | user = postfix | + | user = $MYSQL_USER |
| - | password = motdepasse | + | password = $MYSQL_PASSWORD |
| - | hosts = 127.0.0.1 | + | hosts = $MYSQL_HOST |
| dbname = postfix | dbname = postfix | ||
| query = SELECT domain FROM domain WHERE domain='%s' | query = SELECT domain FROM domain WHERE domain='%s' | ||
| #optional query to use when relaying for backup MX | #optional query to use when relaying for backup MX | ||
| #query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '0' and active = '1' | #query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '0' and active = '1' | ||
| - | + | EOF | |
| - | mysql_virtual_mailbox_maps.cf | + | |
| - | + | cat <<EOF >/etc/postfix/mysql_virtual_mailbox_maps.cf | |
| - | user = postfix | + | user = $MYSQL_USER |
| - | password = motdepasse | + | password = $MYSQL_PASSWORD |
| - | hosts = 127.0.0.1 | + | hosts = $MYSQL_HOST |
| dbname = postfix | dbname = postfix | ||
| query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1 | query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1 | ||
| - | + | EOF | |
| - | mysql_virtual_mailbox_limit_maps.cf | + | |
| - | + | cat <<EOF>/etc/postfix/mysql_virtual_mailbox_limit_maps.cf | |
| - | user = postfix | + | user = $MYSQL_USER |
| - | password = motdepasse | + | password = $MYSQL_PASSWORD |
| - | hosts = 127.0.0.1 | + | hosts = $MYSQL_HOST |
| dbname = postfix | dbname = postfix | ||
| query = SELECT quota FROM mailbox WHERE username='%s' | query = SELECT quota FROM mailbox WHERE username='%s' | ||
| - | + | EOF | |
| - | mysql_relay_domains_maps.cf | + | |
| - | + | cat <<EOF>/etc/postfix/mysql_relay_domains_maps.cf | |
| - | user = postfix | + | user = $MYSQL_USER |
| - | password = motdepasse | + | password = $MYSQL_PASSWORD |
| - | hosts = 127.0.0.1 | + | hosts = $MYSQL_HOST |
| dbname = postfix | dbname = postfix | ||
| query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1' | query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1' | ||
| + | EOF | ||
| Pour le bon fonctionnement et la sécurité il faut exécuter ces deux lignes de commandes | Pour le bon fonctionnement et la sécurité il faut exécuter ces deux lignes de commandes | ||
| Ligne 270: | Ligne 277: | ||
| warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory | warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory | ||
| - | Il faut ajouter, dans le fichier /etc/postfix/sasl/smtpd.conf la ligne: | + | Il faut ajouter, dans le fichier /etc/postfix/sasl/smtpd.conf la ligne: |
| saslauthd_path: /var/spool/postfix/var/run/saslauthd/mux | saslauthd_path: /var/spool/postfix/var/run/saslauthd/mux | ||
| Ligne 303: | Ligne 310: | ||
| </note> | </note> | ||
| - | <note warning> Depuis au moins Ubuntu 14.04, le lien symbolique disparaît à chaque reboot. Comme workaround, éditez /etc/init.d/rc.local : | + | <note warning> Depuis au moins Ubuntu 14.04, le lien symbolique disparaît à chaque reboot. Comme workaround, éditez /etc/init.d/rc.local : |
| sudo vi /etc/init.d/rc.local | sudo vi /etc/init.d/rc.local | ||
| - | Et ajoutez ces lignes tout à la fin du fichier : | + | Et ajoutez ces lignes tout à la fin du fichier : |
| /bin/sleep 5 | /bin/sleep 5 | ||
| Ligne 376: | Ligne 383: | ||
| Il est toujours possible de télécharger le paquet dcc-server (qui remplace dcc-client) via les paquets ubuntu cela marche avec la version 8.4 et la version 8.10. | Il est toujours possible de télécharger le paquet dcc-server (qui remplace dcc-client) via les paquets ubuntu cela marche avec la version 8.4 et la version 8.10. | ||
| - | Premièrement le paquet dcc-server a besoin de dcc-common pour fonctionner. | + | Premièrement le paquet dcc-server a besoin de dcc-common pour fonctionner. |
| - | * dcc-common : http://packages.ubuntu.com/gutsy/dcc-common | + | * dcc-common : https://packages.ubuntu.com/gutsy/dcc-common |
| - | * dcc-server : http://packages.ubuntu.com/gutsy/dcc-server | + | * dcc-server : https://packages.ubuntu.com/gutsy/dcc-server |
| Par exemple on peut procéder ainsi : | Par exemple on peut procéder ainsi : | ||
| Ligne 736: | Ligne 743: | ||
| $ /etc/init.d/spamassassin start | $ /etc/init.d/spamassassin start | ||
| - | Pour dire à postfix d'utiliser spamassassin, modifier le fichier "/etc/postfix/master.cf" et changer la ligne : | + | Pour dire à postfix d'utiliser spamassassin, modifier le fichier "/etc/postfix/master.cf" et changer la ligne : |
| smtp inet n - - - - smtpd | smtp inet n - - - - smtpd | ||
| - | par | + | par |
| smtp inet n - - - - smtpd | smtp inet n - - - - smtpd | ||
| -o content_filter=spamassassin | -o content_filter=spamassassin | ||
| - | et à la fin du fichier, ajoutez : | + | et à la fin du fichier, ajoutez : |
| spamassassin unix - n n - - pipe | spamassassin unix - n n - - pipe | ||
| user=spamd argv=/usr/bin/spamc -f -e | user=spamd argv=/usr/bin/spamc -f -e | ||
| Ligne 823: | Ligne 830: | ||
| quit | quit | ||
| - | Si les tests sont ok, votre serveur de mail est opérationnel. | + | Si les tests sont ok, votre serveur de mail est opérationnel. |
| - | + | ||
| - | + | ||
| - | + | ||
| ===== Création des utilisateurs/domaines ===== | ===== Création des utilisateurs/domaines ===== | ||
| Ligne 872: | Ligne 875: | ||
| <note info> | <note info> | ||
| - | Pour vérifier que sasl va bien chercher dans la db les utilisateurs, mettez un nom d'utilisateur inexistant dans l'option -u. | + | Pour vérifier que sasl va bien chercher dans la db les utilisateurs, mettez un nom d'utilisateur inexistant dans l'option -u. |
| La log /var/log/auth.log devrait indiquer que le SELECT SQL ne retourne pas de résultat. | La log /var/log/auth.log devrait indiquer que le SELECT SQL ne retourne pas de résultat. | ||
| Dans le cas contraire, vous avez probablement un problème de configuration. | Dans le cas contraire, vous avez probablement un problème de configuration. | ||
| Ligne 895: | Ligne 898: | ||
| chown vmail:vmail -R /home/vmail; | chown vmail:vmail -R /home/vmail; | ||
| - | - Si une fois un test d'envoi de mail effectué (test SMTP+SASL), vous obtenez dans le journal /var/log/auth.log le message suivant : | + | - Si une fois un test d'envoi de mail effectué (test SMTP+SASL), vous obtenez dans le journal /var/log/auth.log le message suivant : |
| postfix/smtpd[23340]: sql_select option missing | postfix/smtpd[23340]: sql_select option missing | ||
| postfix/smtpd[23340]: auxpropfunc error no mechanism available | postfix/smtpd[23340]: auxpropfunc error no mechanism available | ||