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édentes Révision précédente
Prochaine révision
Révision précédente
postfix_mysql_tls_sasl [Le 03/05/2014, 11:30]
FAWTS [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 26: Ligne 26:
 Paquets principaux [[:​tutoriel:​comment_installer_un_paquet|à installer]] : **postfix postfix-mysql mysql-client-5.0 mysql-server-5.0 courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl ​ courier-imap courier-imap-ssl postfix-tls libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin** Paquets principaux [[:​tutoriel:​comment_installer_un_paquet|à installer]] : **postfix postfix-mysql mysql-client-5.0 mysql-server-5.0 courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl ​ courier-imap courier-imap-ssl postfix-tls libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin**
  
-<note warning>​postfix-tls est un paquet obsolète il semble faire parti de postfix </​note>​ +<note warning>​postfix-tls est un paquet obsolète il semble faire partie ​de postfix </​note>​ 
-<​note>​je préfère mettre mysql-client mysql-server (sans préciser la version pour réussir l'​installation à tous les coups</​note>​+<​note>​je préfère mettre mysql-client mysql-server (sans préciser la versionpour réussir l'​installation à tous les coups</​note>​
  
 <note tip>Chez moi, le package courier-authlib-mysql s'​appelle courier-authmysql</​note>​ <note tip>Chez moi, le package courier-authlib-mysql s'​appelle courier-authmysql</​note>​
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 128: Ligne 129:
   #​relay_domains = mysql:/​etc/​postfix/​mysql_relay_domains_maps.cf   #​relay_domains = mysql:/​etc/​postfix/​mysql_relay_domains_maps.cf
  
-Le smtp de postfix est chrooter, il faut donc le retirer afin d'​assurer son bon fonctionnement. On retire le chroot dans /​etc/​postfix/​master.cf et modifier comme dessous.+Le smtp de postfix est chrooté, il faut donc le retirer afin d'​assurer son bon fonctionnement. On retire le chroot dans /​etc/​postfix/​master.cf et modifier comme dessous.
  
   #   #
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 291: Ligne 298:
  
  
-Créez un  lien symbolique pour que cela fonctionne lorsque postfix est chrooter ​[sionib] :+Créez un  lien symbolique pour que cela fonctionne lorsque postfix est chrooté ​[sionib] :
  
    ln -s /​var/​spool/​postfix/​var/​run/​saslauthd /​var/​run/​saslauthd    ln -s /​var/​spool/​postfix/​var/​run/​saslauthd /​var/​run/​saslauthd
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 857: Ligne 860:
 ===== Création du répertoire de stockage des mails ===== ===== Création du répertoire de stockage des mails =====
  
-Il faut créer le répertoire ou seront ​stocker ​les mails (envoyés, brouillons, etc...)+Il faut créer le répertoire ou seront ​stockés ​les mails (envoyés, brouillons, etc...)
 Aller dans le répertoire ou tout les comptes mails sont enregistrés (/​home/​vmail par exemple), puis Aller dans le répertoire ou tout les comptes mails sont enregistrés (/​home/​vmail par exemple), puis
  
Ligne 864: Ligne 867:
 Modifier VOTREREPERTOIREDEMAIL par le nom que vous voulez donner au compte mail (machin@domain.ltd par exemple). Modifier VOTREREPERTOIREDEMAIL par le nom que vous voulez donner au compte mail (machin@domain.ltd par exemple).
  
-Donner les droits ​adéquates au dossiers ​contenue ​dans votre répertoire où les comptes mails sont enregistrés :+Donner les droits ​adéquats aux dossiers ​contenus ​dans votre répertoire où les comptes mails sont enregistrés :
  
   $ sudo chown vmail:vmail -R /​home/​vmail;​   $ sudo chown vmail:vmail -R /​home/​vmail;​
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 ​
  • postfix_mysql_tls_sasl.1399109407.txt.gz
  • Dernière modification: Le 03/05/2014, 11:30
  • par FAWTS