Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

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
Dernière révision Les deux révisions suivantes
doc:reseau:postfix [03/07/2014 00:06]
127.0.0.1 modification externe
doc:reseau:postfix [12/01/2019 16:58]
Patriboom Ajout de l'instruction relative à setgid_group
Ligne 1: Ligne 1:
-Ce tutoriel présente comment monter un serveur de mail multi-domaines géré par une base mysql et administré par postfixadmin,​ activation du mode vacation (répondeur automatique) +====== postfix serveur mail smtp ======
-  * Le retour sur le forum est ici : [[http://​debian-facile.org/​viewtopic.php?​id=1231 | Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) +
-==== Voici la procédure ​: ==== +
-  * Installation mysql +
-  * Installation postfix +
-  * Configuration de dovecot +
-  * Installation de postfixadmin +
-  * Mise en place du mode vacation+
  
 +  * Objet : configuration de postfix pour une gestion multi-domaines via MySQL.
 +  * Niveau requis : {{tag>​avisé}}
 +  * Commentaires : //Vous voulez gérer les comptes mails de différents domaines via postfix. //
 +  * Suivi : {{tag>​à-tester}} ​
 +    * Création par [[user>​stopher]] le 23-3-2009
 +    * Testé par <...> le <...>
 +  * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=1231 |ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
  
 +===== Introduction =====
  
-==== Installation ​de mysql ==== +Ce tutoriel présente comment monter un serveur ​de mail multi-domaines géré par une base mysql et administré par postfixadminactivation du mode vacation (répondeur automatique)
-Pour installer le serveur mysqlil faut juste entrer la commande suivante  +
-  apt-get install mysql_server+
  
 +===== Installations =====
  
 +=== MySQL ===
  
-==== Installation de postfix ====+Pour installer le serveur mysql, il faut juste entrer la commande suivante : 
 +<code root>​apt-get install mysql-server</​code>​ 
 + 
 +=== Postfix ​===
 Pour installer postfix et les modules nécessaire pour la gestion via mysql, entrez cette commande :  Pour installer postfix et les modules nécessaire pour la gestion via mysql, entrez cette commande : 
-  ​apt-get install postfix postfix-mysql+<code root>apt-get install postfix postfix-mysql</​code>​
  
 //Si des questions vous sont posées, répondez par défaut, de toute manière les options sont modifiées plus bas// //Si des questions vous sont posées, répondez par défaut, de toute manière les options sont modifiées plus bas//
  
- +=== Dovecot ===
- +
-==== Installation de Dovecot ​====+
 Pour installer dovecot, entrez cette commande :  Pour installer dovecot, entrez cette commande : 
   apt-get install dovecot-common dovecot-imapd dovecot-pop3d   apt-get install dovecot-common dovecot-imapd dovecot-pop3d
  
 +===== Configuration =====
 +
 +=== Configuration de postfix ===
  
-==== Configuration de postfix ==== 
 Là on a fait le plus simple... reste à configurer le tout... Là on a fait le plus simple... reste à configurer le tout...
 Première étape, créer l'​utilisateur et le groupe utilisés par postfix : Première étape, créer l'​utilisateur et le groupe utilisés par postfix :
-  ​groupadd -g 5000 vmail +<code root> 
-  useradd -g vmail -u 5000 vmail -d /home/vmail -m+groupadd -g 5000 vmail</​code>​ 
 +<code root>useradd -g vmail -u 5000 vmail -d /home/vmail -m</​code>​
  
-Ensuite on s'​attaque au fichier de configuration de postfix à savoir : **/​etc/​postfix/​main.cf**+Ensuite on s'​attaque au fichier de configuration de postfix à savoir : ''​/​etc/​postfix/​main.cf''​
  
-  vim /​etc/​postfix/​main.cf+Les versions récentes de debian offrent un canevas de ce fichier sous le nom main.cf.proto. ​  
 +Faites-en une copie 
 + 
 +<code root>​cp ​/​etc/​postfix/​main.cf.proto /​etc/​postfix/​main.cf 
 +nano /​etc/​postfix/​main.cf</​code>​
  
 Dans ce fichier, les options à modifier/​ajouter sont : Dans ce fichier, les options à modifier/​ajouter sont :
 Nom d'​hôte du serveur, veiller à ce que ce nom soit [[http://​fr.wikipedia.org/​wiki/​Fully_qualified_domain_name|fqdn]] et qu'il soit existant dans le domaine (reverse dns)  Nom d'​hôte du serveur, veiller à ce que ce nom soit [[http://​fr.wikipedia.org/​wiki/​Fully_qualified_domain_name|fqdn]] et qu'il soit existant dans le domaine (reverse dns) 
- 
  
   myhostname=mailhost.lindev.fr   myhostname=mailhost.lindev.fr
Ligne 85: Ligne 93:
  
   message_size_limit=10240000   message_size_limit=10240000
 +  ​
 +Repérez la ligne setgid_group et modifiez-la comme suit:
  
 +  setgid_group = vmail
  
 Voilà pour les principaux paramètres à modifier, nous allons maintenant lier postfix à la base mysql. Voilà pour les principaux paramètres à modifier, nous allons maintenant lier postfix à la base mysql.
Ligne 99: Ligne 110:
 === Contenu de ces trois fichiers : === === Contenu de ces trois fichiers : ===
    
-**mysql-virtual-mailbox-domains.cf** +<code text mysql-virtual-mailbox-domains.cf> 
-  user =**votre_utilisateur_de_BD** +user =**votre_utilisateur_de_BD** 
-  password =le password de l'​utilisateur +password =le password de l'​utilisateur 
-  hosts = 127.0.0.1 +hosts = 127.0.0.1 
-  dbname = postfix +dbname = postfix 
-  query= SELECT domain FROM domain WHERE domain='​%s'​+query= SELECT domain FROM domain WHERE domain='​%s'​ 
 +</​code>​
  
-**mysql-virtual-mailbox-maps.cf** +<code text mysql-virtual-mailbox-maps.cf> 
-  user =votre_utilisateur_de_BD +user =votre_utilisateur_de_BD 
-  password =le password de l'​utilisateur +password =le password de l'​utilisateur 
-  hosts = 127.0.0.1 +hosts = 127.0.0.1 
-  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'​ 
 +</​code>​
  
-**mysql-virtual-alias-maps.cf** +<code text mysql-virtual-alias-maps.cf> 
-  user =votre_utilisateur_de_BD +user =votre_utilisateur_de_BD 
-  password =le password de l'​utilisateur +password =le password de l'​utilisateur 
-  hosts = 127.0.0.1 +hosts = 127.0.0.1 
-  dbname = postfix +dbname = postfix 
-  query= SELECT goto FROM alias WHERE address='​%s'​+query= SELECT goto FROM alias WHERE address='​%s'​ 
 +</​code>​
    
  
 Pour chaque fichier, nous allons exécuter la commande **postmap** :  Pour chaque fichier, nous allons exécuter la commande **postmap** : 
  
-  ​postmap /​etc/​postfix/​mysql-virtual-mailbox-domains.cf +<code root>postmap /​etc/​postfix/​mysql-virtual-mailbox-domains.cf</​code>​ 
-  postmap /​etc/​postfix/​mysql-virtual-mailbox-maps.cf +<code root>postmap /​etc/​postfix/​mysql-virtual-mailbox-maps.cf</​code>​ 
-  postmap /​etc/​postfix/​mysql-virtual-alias-maps.cf+<code root>postmap /​etc/​postfix/​mysql-virtual-alias-maps.cf 
 +</​code>​
  
  
-Ensuite, nous retournons dans le fichier de configuration de postfix pour lui demander d'​utiliser ces fichiers, vous devez donc ajouter dans ce fichier (**/​etc/​postfix/​main.cf**) les lignes suivantes : +Ensuite, nous retournons dans le fichier de configuration de postfix pour lui demander d'​utiliser ces fichiers, vous devez donc ajouter dans ce fichier (''​/​etc/​postfix/​main.cf''​) les lignes suivantes : 
  
   virtual_alias_maps = mysql:/​etc/​postfix/​mysql-virtual-alias-maps.cf   virtual_alias_maps = mysql:/​etc/​postfix/​mysql-virtual-alias-maps.cf
Ligne 144: Ligne 159:
  
  
-Très rapide et très simple, voici le fichier à modifier : **/​etc/​dovecot/​dovecot.conf**+Très rapide et très simple, voici le fichier à modifier : ''​/​etc/​dovecot/​dovecot.conf''​
 Les lignes à vérifier/​modifier sont :  Les lignes à vérifier/​modifier sont : 
  
Ligne 190: Ligne 205:
 === Passons à la liaison dovecot/​mysql : === === Passons à la liaison dovecot/​mysql : ===
  
-Commençons par éditer le fichier ​**dovecot-sql.conf**+Commençons par éditer le fichier ​''​dovecot-sql.conf''​ :​
  
   driver = mysql   driver = mysql
Ligne 200: Ligne 215:
  
 Voilà, votre serveur est prêt à l'​emploi,​ il ne reste plus qu'à installer **postfixadmin** et à remplir la base de données ..  Voilà, votre serveur est prêt à l'​emploi,​ il ne reste plus qu'à installer **postfixadmin** et à remplir la base de données .. 
- 
  
  
 ==== Installation de postfixadmin ==== ==== Installation de postfixadmin ====
  
-Récupérer **postfixadmin** comme ceci :  +Récupérer **postfixadmin** comme ceci : 
- +<code user> 
-  wget http://​switch.dl.sourceforge.net/​sourceforge/​postfixadmin/​postfixadmin_2.3rc2_all.deb+wget http://​switch.dl.sourceforge.net/​sourceforge/​postfixadmin/​postfixadmin_2.3rc2_all.deb 
 +</​code>​
  
 === Installer postfixadmin :  === === Installer postfixadmin :  ===
  
-  ​dpkg -i postfixadmin_2.3rc2_all.deb+<code root>dpkg -i postfixadmin_2.3rc2_all.deb</​code>​
  
 Créer un lien des fichiers de postfixadmin à votre serveur web (dans mon cas /​var/​www) ​ Créer un lien des fichiers de postfixadmin à votre serveur web (dans mon cas /​var/​www) ​
  
-  ​ln -s /​usr/​share/​postfixadmin /var/www+<code root>ln -s /​usr/​share/​postfixadmin /var/www</​code>​
  
 Créer l'​hôte virtuel dans apache pour vous connecter à postfix admin puis on redémarre apache ​ Créer l'​hôte virtuel dans apache pour vous connecter à postfix admin puis on redémarre apache ​
  
-  /​etc/​init.d/​apache2 restart+<code root>​service ​apache2 restart</​code>​
  
 ==== Configuration de postfixadmin ==== ==== Configuration de postfixadmin ====
Ligne 225: Ligne 240:
 Éditer le fichier de configuration **/​var/​www/​postfixadmin/​config.inc.php** Éditer le fichier de configuration **/​var/​www/​postfixadmin/​config.inc.php**
  
-  vim /​var/​www/​postfixadmin/​config.inc.php+<code root>​nano ​/​var/​www/​postfixadmin/​config.inc.php</​code>​
  
-Les options à vérifier sont les suivantes (à adapter selon vos souhaits):  +Les options à vérifier sont les suivantes (à adapter selon vos souhaits):​ 
- +<code php> 
-  $CONF['​configured'​] = true; +$CONF['​configured'​] = true; 
-  $CONF['​postfix_admin_url'​] = '​http://​postfixadmin.lindev.fr';​ +$CONF['​postfix_admin_url'​] = '​http://​postfixadmin.lindev.fr';​ 
-  $CONF['​default_language'​] = '​fr';​ +$CONF['​default_language'​] = '​fr';​ 
-  $CONF['​database_type'​] = '​mysql';​ +$CONF['​database_type'​] = '​mysql';​ 
-  $CONF['​database_host'​] = '​localhost';​ +$CONF['​database_host'​] = '​localhost';​ 
-  $CONF['​database_user'​] = '​postfix';​ +$CONF['​database_user'​] = '​postfix';​ 
-  $CONF['​database_password'​] = '< Votre mot de passe de la base >';​ +$CONF['​database_password'​] = '< Votre mot de passe de la base >';​ 
-  $CONF['​database_name'​] = '​postfix';​ +$CONF['​database_name'​] = '​postfix';​ 
-  $CONF['​database_prefix'​] = '';​ +$CONF['​database_prefix'​] = '';​ 
-  $CONF['​encrypt'​] = '​md5';​ +$CONF['​encrypt'​] = '​md5';​ 
-  $CONF['​domain_path'​] = '​NO';​ +$CONF['​domain_path'​] = '​NO';​ 
-  $CONF['​domain_in_mailbox'​] = '​YES';​ +$CONF['​domain_in_mailbox'​] = '​YES';​ 
-  $CONF['​vacation'​] = '​YES';​ +$CONF['​vacation'​] = '​YES';​ 
-  $CONF['​vacation_domain'​] = '​autoreply-lindev.fr';​ +$CONF['​vacation_domain'​] = '​autoreply-lindev.fr';​ 
-  $CONF['​vacation_control'​] ='​YES';​ +$CONF['​vacation_control'​] ='​YES';​ 
-  $CONF['​vacation_control_admin'​] = '​YES';​ +$CONF['​vacation_control_admin'​] = '​YES';​ 
-  $CONF['​alias_control'​] = '​YES';​ +$CONF['​alias_control'​] = '​YES';​ 
-  $CONF['​alias_control_admin'​] = '​YES';​ +$CONF['​alias_control_admin'​] = '​YES';​ 
-  $CONF['​special_alias_control'​] = '​NO';​ +$CONF['​special_alias_control'​] = '​NO';​ 
-  $CONF['​alias_goto_limit'​] = '​0';​ +$CONF['​alias_goto_limit'​] = '​0';​ 
-  $CONF['​user_footer_link'​] = "​http://​postfixadmin.lindev.fr/​main";​ +$CONF['​user_footer_link'​] = "​http://​postfixadmin.lindev.fr/​main";​ 
-  $CONF['​show_footer_text'​] = '​YES';​ +$CONF['​show_footer_text'​] = '​YES';​ 
-  $CONF['​footer_text'​] = '​Return to postfixadmin.lindev.fr';​ +$CONF['​footer_text'​] = '​Return to postfixadmin.lindev.fr';​ 
-  $CONF['​footer_link'​] = '​http://​postfixadmin.lindev.fr';​+$CONF['​footer_link'​] = '​http://​postfixadmin.lindev.fr';​ 
 +</​code>​
  
 Pour les autres options elles sont soit commentées,​ soit inchangées ( à adapter selon vos besoins). Pour les autres options elles sont soit commentées,​ soit inchangées ( à adapter selon vos besoins).
Ligne 258: Ligne 274:
 Ensuite créez une base de donnée pour postfixadmin que j'ai nommé tout le long de ce tutoriel **postfix** Ainsi que l'​utilisateur associé qui possède tout les droits sur cette base.  Ensuite créez une base de donnée pour postfixadmin que j'ai nommé tout le long de ce tutoriel **postfix** Ainsi que l'​utilisateur associé qui possède tout les droits sur cette base. 
  
-  # mysql +<code user>mysql -u root -p</​code>​ 
-  > CREATE DATABASE postfix; +<code sql> 
-  > ​GRANT ALL PRIVILEGES ON postfix.* TO @localhost +CREATE DATABASE postfix; 
-    ​IDENTIFIED BY '';​ +GRANT ALL PRIVILEGES ON postfix.* TO @localhost IDENTIFIED BY '';​ 
-  > ​quit +quit 
 +</​code>​
  
 Et allez sur votre page d'​administration,​ dans le setup (dans mon cas c'​est):​ Et allez sur votre page d'​administration,​ dans le setup (dans mon cas c'​est):​
Ligne 270: Ligne 286:
 Si tout est ok, renommez le fichier setup.php Si tout est ok, renommez le fichier setup.php
  
-  ​mv setup.php setup.php.diseable+<code root>mv setup.php setup.php.disable</​code>​
  
 Voilà, vous pouvez maintenant créer vos comptes/​domaines ​ Voilà, vous pouvez maintenant créer vos comptes/​domaines ​
   ​   ​
- 
  
 ==== Mise en place du mode vacation ==== ==== Mise en place du mode vacation ====
Ligne 282: Ligne 297:
  
 === création de l'​utilisateur local vacation ​ === === création de l'​utilisateur local vacation ​ ===
-  ​useradd vacation+<code root>useradd vacation</​code>​
  
 === Modifier la ligne comme ci-dessous dans le fichier /​etc/​passwd ​ === === Modifier la ligne comme ci-dessous dans le fichier /​etc/​passwd ​ ===
Ligne 291: Ligne 306:
  
 === Ensuite, créer un dossier pour vacation ​ === === Ensuite, créer un dossier pour vacation ​ ===
-  ​mkdir /​var/​spool/​vacation +<code root>mkdir /​var/​spool/​vacation</​code>​ 
-  chown -R vacation:​vacation /​var/​spool/​vacation +<code root>chown -R vacation:​vacation /​var/​spool/​vacation</​code>​ 
-  chmod -R 700 /​var/​spool/​vacation+<code root>chmod -R 700 /​var/​spool/​vacation</​code>​
  
 === Copier le script vacation.pl dans le dossier de vacation (/​var/​spool/​vacation) === === Copier le script vacation.pl dans le dossier de vacation (/​var/​spool/​vacation) ===
Ligne 299: Ligne 314:
 [[http://​phpu.lindev.fr/​dld.php?​i=2509e7ec-f8a0-4dc6-8fda-87997b646d29|Vacation.pl]] [[http://​phpu.lindev.fr/​dld.php?​i=2509e7ec-f8a0-4dc6-8fda-87997b646d29|Vacation.pl]]
  
-  ​cd /​var/​spool/​vacation +<code root>cd /​var/​spool/​vacation</​code>​ 
-  wget http://​phpu.lindev.fr/​dld.php?​i=2509e7ec-f8a0-4dc6-8fda-87997b646d29 +<code root>wget http://​phpu.lindev.fr/​dld.php?​i=2509e7ec-f8a0-4dc6-8fda-87997b646d29</​code>​ 
-  chmod 700 vacation.pl+<code root>chmod 700 vacation.pl</​code>​
  
  
Ligne 307: Ligne 322:
  
 Modifier les paramètres de connexion à la base de données et installer les modules nécessaires Modifier les paramètres de connexion à la base de données et installer les modules nécessaires
 +<code root>​apt-get install libmail-sendmail-perl libdbd-pg-perl libemail-valid-perl libmime-perl libmime-charset-perl libmime-encwords-perl</​code>​
  
-  apt-get install libmail-sendmail-perl +Nous devons ensuite modifier le fichier ​''​/​etc/​postfix/​master.cf''​:
-  apt-get install libdbd-pg-perl +
-  apt-get install libemail-valid-perl +
-  apt-get install libmime-perl +
-  apt-get install libmime-charset-perl +
-  apt-get install libmime-encwords-perl +
- +
-Nous devons ensuite modifier le fichier ​**/​etc/​postfix/​master.cf**:+
  
 === Modification de master.cf === === Modification de master.cf ===
Ligne 330: Ligne 339:
   transport_maps = hash:/​etc/​postfix/​transport   transport_maps = hash:/​etc/​postfix/​transport
  
-nous allons donc créer le fichier ​**/​etc/​postfix/​transport** avec le contenu suivant : +nous allons donc créer le fichier ​''​/​etc/​postfix/​transport'' ​avec le contenu suivant : 
- +<code text /​etc/​postfix/​transport>​ 
-  autoreply-lindev.fr vacation +autoreply-lindev.fr vacation 
- +</code>
-//Notez que autoreply-lindev.fr correspond à l'​option $CONF['​vacation_domain'​] = '​autoreply-lindev.fr';​ de la configuration de postfixadmin./​/+
  
 +//Notez que autoreply-lindev.fr correspond à l'​option ''​$CONF['​vacation_domain'​] = '​autoreply-lindev.fr';''​ de la configuration de postfixadmin.//​
  
 === Activer le fichier transport === === Activer le fichier transport ===
  
-  ​postmap /​etc/​postfix/​transport+<code root>postmap /​etc/​postfix/​transport</​code>​
  
 Et voilà c'est fini le mode vacation est maintenant opérationnel ! Et voilà c'est fini le mode vacation est maintenant opérationnel !
- 
  
 Nous allons redémarrer **postfix** et **dovecot** via cette commande : Nous allons redémarrer **postfix** et **dovecot** via cette commande :
  
-  /​etc/​init.d/​postfix restart +<code root>​service ​postfix restart</​code>​ 
-  /​etc/​init.d/​dovecot restart +<code root>​service ​dovecot restart</​code>​
  
 ==== Surveiller les logs ==== ==== Surveiller les logs ====
Ligne 354: Ligne 361:
 Pour voir les logs en temps réels, nous pouvons utiliser cette commande ​ Pour voir les logs en temps réels, nous pouvons utiliser cette commande ​
  
-  ​tail -f /​var/​log/​mail.log +<code root>tail -f /​var/​log/​mail.log</​code>​
  
 ==== Conclusion ==== ==== Conclusion ====
  
 Vous voilà avec un serveur de mails complet, administrable via une interface web, qui peut gérer plusieurs domaines, et qui permet la gestion des comptes personnalisés. Vous voilà avec un serveur de mails complet, administrable via une interface web, qui peut gérer plusieurs domaines, et qui permet la gestion des comptes personnalisés.
- 
  
 ==== Sources ==== ==== Sources ====
doc/reseau/postfix.txt · Dernière modification: 18/01/2019 00:57 par Patriboom

Pied de page des forums

Propulsé par FluxBB