Différences

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

Lien vers cette vue comparative

configurer_un_serveur_mail_sous_linux_avec_postfix [2020/08/31 11:23] – [Création des comptes d'utilisateur] superadminconfigurer_un_serveur_mail_sous_linux_avec_postfix [2022/04/11 16:34] (Version actuelle) – modification externe 127.0.0.1
Ligne 87: Ligne 87:
 postconf -e 'tls_random_source = dev:/dev/urandom' postconf -e 'tls_random_source = dev:/dev/urandom'
 postconf -e 'myhostname = nocterie.local' postconf -e 'myhostname = nocterie.local'
-postconf -e 'home_mailbox Maildir/' +postconf -e 'maillog_file = /var/log/postfix.log
-postconf -e 'maillog_file = /var/log/postfix.log'</code>+postconf -e 'smtp_tls_policy_maps hash:/etc/postfix/tls_policy'</code> 
 + 
 +Afin que SMTP-TLS vérifie bien le domaine, créer le fichier ''/etc/postfix/tls_policy'' contenant : 
 + 
 +<code>nocterie.local      verify</code> 
 + 
 +:!: ''nocterie.local'' doit être remplacé par le nom du domaine à vérifier. 
 + 
 +Appliquer les changements avec : 
 + 
 +<code>postmap /etc/postfix/tls_policy 
 +chgrp postfix /etc/postfix/tls_policy*</code>
  
 Par défaut, PostFix tente d'envoyer les mails sortants sur Internet, parfois ce n'est pas possible car l'opérateur bloque la livraison directe du courrier, il faut alors configurer soi-même le relais SMTP à utiliser en sortie : Par défaut, PostFix tente d'envoyer les mails sortants sur Internet, parfois ce n'est pas possible car l'opérateur bloque la livraison directe du courrier, il faut alors configurer soi-même le relais SMTP à utiliser en sortie :
Ligne 102: Ligne 113:
 S'il n'y a aucun retour cela signifie que la configuration est bonne. S'il n'y a aucun retour cela signifie que la configuration est bonne.
  
-===== Paramétrage de saslauthd pour l'authentification SMTP ===== +===== Création des comptes d'utilisateur et paramétrage de PostFix =====
- +
-Tout d'abord, créer le fichier de configuration de ''sasl'' et y indiquer quelques réglages : +
- +
-<code>touch /etc/postfix/sasl/smtpd.conf +
-echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf +
-echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf </code> +
- +
-Puis entrer les commandes suivantes : +
- +
-<code>mkdir -p /var/spool/postfix/var/run/saslauthd +
-rm -fr /var/run/saslauthd +
-ln -s /var/spool/postfix/var/run/saslauthd /var/run/saslauthd +
-chown -R root:sasl /var/spool/postfix/var/ +
-chmod 710 /var/spool/postfix/var/run/saslauthd</code> +
- +
-Ensuite éditer le fichier ''/etc/default/saslauthd'' pour modifier les 2 lignes suivantes : +
-  * ''START=no'' en ''START=yes'' +
-  * ''OPTIONS="-c -m /var/run/saslauthd"'' en ''OPTIONS="-m /var/spool/postfix/var/run/saslauthd"'' +
- +
-===== Tests du protocole SMTP ===== +
- +
-Démarrer saslauthd, il ne doit pas y avoir d'erreur : +
- +
-<code>service saslauthd start</code> +
- +
-Vérifier que SMTP-AUTH et TLS fonctionnent correctement : +
- +
-<code>telnet localhost 25</code> +
- +
-Puis faire (remplacer ''nocterie.local'' par le domaine de messagerie utilisé) :  +
- +
-<code>EHLO nocterie.local</code> +
- +
-La commande doit retourner une liste dans laquelle il y a une ligne ''250-STARTTLS'' et une autre ''250-AUTH PLAIN LOGIN'' +
- +
-Quitter Telnet avec la commande ''quit''+
- +
-On peut aussi essayer l'authentification avec un utilisateur local membre du groupe ''sasl'' pour voir si elle fonctionne :  +
- +
-<code>testsaslauthd -u utilisateur -p password</code> +
- +
-Cela doit renvoyer ceci : ''0: OK "Success."'', autrement il y a un problème quelquepart. +
- +
-:!: La dernière commande peut ne pas fonctionner => Ignorer +
- +
-===== Création des comptes d'utilisateur =====+
  
 Dans cette partie, on va créer la base de données qui contiendra les comptes de messagerie du domaine. Dans cette partie, on va créer la base de données qui contiendra les comptes de messagerie du domaine.
Ligne 225: Ligne 190:
 postconf -e 'virtual_transport = virtual' postconf -e 'virtual_transport = virtual'
 postconf -e 'virtual_uid_maps = static:5000' postconf -e 'virtual_uid_maps = static:5000'
-postconf -e 'virtual_create_maildirsize = yes' +postconf -e 'relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf'</code>
-postconf -e 'virtual_mailbox_extended = yes' +
-postconf -e 'virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf' +
-postconf -e 'virtual_mailbox_limit_override = yes' +
-postconf -e 'virtual_maildir_limit_message = Le compte a atteint son quota de mails. Merci de rééssayer plus tard' +
-postconf -e 'virtual_overquota_bounce = yes' +
-postconf -e 'relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf'+
  
-Il faut désormais créer les fichiers de configuration pour MySQL. Il y en a à créer :+Il faut désormais créer les fichiers de configuration pour MySQL. Il y en a à créer : 
 + 
 +''/etc/postfix/mysql_virtual_alias_maps.cf'' contenant : 
 + 
 +<code>user = postfix 
 +password = password 
 +hosts = localhost 
 +dbname = postfix 
 +query = SELECT goto FROM alias WHERE address='%s' AND active = 1</code>
  
 ''/etc/postfix/mysql_virtual_domains_maps.cf'' contenant : ''/etc/postfix/mysql_virtual_domains_maps.cf'' contenant :
Ligne 269: Ligne 236:
 query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1' and active = '1'</code> query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1' and active = '1'</code>
  
-Pour que PostFix prenne en compte ces fichiers en tant que table, il faut utiliser les commandes suivantes :+Pour que PostFix prenne en compte ces fichiers en tant que table, il faut utiliser les commandes suivantes (cette commande doit être executée à chaque modification des fichiers ci-dessus) :
  
 <code>cd /etc/postfix <code>cd /etc/postfix
Ligne 277: Ligne 244:
 postmap mysql_virtual_mailbox_limit_maps.cf postmap mysql_virtual_mailbox_limit_maps.cf
 postmap mysql_relay_domains_maps.cf</code> postmap mysql_relay_domains_maps.cf</code>
 +
 +Ne pas oublier de régler les permissions adequates sur les fichiers de configuration :
 +<code>chown root:postfix /etc/postfix/*
 +chmod 640 /etc/postfix/*
 +chmod o+r /etc/postfix/main.cf
 +chmod +x /etc/postfix/postfix-script</code>
 +
 +=====Paramétrage de l'authentification SMTP=====
 +Tout d'abord, créer le fichier de configuration de sasl et y indiquer quelques réglages :
 +
 +touch /etc/postfix/sasl/smtpd.conf
 +<code>echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
 +echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf 
 +echo 'allow_plaintext: true' >> /etc/postfix/sasl/smtpd.conf</code>
 +
 +Puis entrer les commandes suivantes :
 +
 +<code>mkdir -p /var/spool/postfix/var/run/saslauthd
 +rm -fr /var/run/saslauthd
 +ln -s /var/spool/postfix/var/run/saslauthd /var/run/saslauthd
 +chown -R root:sasl /var/spool/postfix/var/
 +chmod 710 /var/spool/postfix/var/run/saslauthd</code>
 +
 +Ensuite éditer le fichier /etc/default/saslauthd pour modifier les 2 lignes suivantes :
 +
 +  * ''START=no'' en ''START=yes''
 +  * ''OPTIONS="-c -m /var/run/saslauthd"'' en ''OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"''
 +
 +Enfin, créer le fichier ''/etc/pam.d/smtp'' contenant :
 +
 +<code>auth       required     pam_mysql.so user=postfix passwd=password host=localhost db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=2
 +account    sufficient   pam_mysql.so user=postfix passwd=password host=localhost db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=2
 +</code>
 +===== Tests du protocole SMTP =====
 +
 +Démarrer saslauthd, il ne doit pas y avoir d'erreur :
 +
 +<code>service saslauthd start</code>
 +
 +Vérifier que SMTP-AUTH et TLS fonctionnent correctement :
 +
 +<code>telnet localhost 25</code>
 +
 +Puis faire (remplacer ''nocterie.local'' par le domaine de messagerie utilisé) : 
 +
 +<code>EHLO nocterie.local</code>
 +
 +La commande doit retourner une liste dans laquelle il y a une ligne ''250-STARTTLS'' et une autre ''250-AUTH PLAIN LOGIN''
 +
 +Quitter Telnet avec la commande ''quit''.
 +
 +On peut aussi essayer l'authentification avec un utilisateur local membre du groupe ''sasl'' pour voir si elle fonctionne : 
 +
 +<code>testsaslauthd -u utilisateur -p userpassword -s smtp -f /var/spool/postfix/var/run/saslauthd/mux</code>
 +
 +Cela doit renvoyer ceci : ''0: OK "Success."'', autrement il y a un problème quelquepart.
 +
 +:!: La dernière commande peut ne pas fonctionner => Ignorer
 +
 ===== Configuration de ProcMail ===== ===== Configuration de ProcMail =====
  
Ligne 311: Ligne 337:
  
 ===== Création d'un compte mail ===== ===== Création d'un compte mail =====
 +
 +Ouvrir la console MySQL et créer l'utilisateur en ajoutant différentes entrées :
 +
 +<code>use postfix;
 +INSERT INTO domain (domain,description) VALUES ('domain.tld','Test Domain');
 +INSERT INTO alias (address,goto) VALUES ('alias@domain.tld', 'test@domain.tld');
 +INSERT INTO mailbox (username,password,name,maildir)  VALUES ('test@domain.tld',ENCRYPT('userpassword'),'Mailbox User','test@domain.tld/');</code>
 +
  
 Avec ce système, les comptes de messagerie sont les mêmes que ceux de Linux. Avec ce système, les comptes de messagerie sont les mêmes que ceux de Linux.