Bonjour,
J’ ai installé un serveur avec une Debian + Postfix, Dovecot, MySQL, Postfixadmin, Amavis, Spamassassin, Apache, etc.
Pour cela, j’ai notamment utilisé cet excellent tuto sur isalo.org.
Postfix est utilisé en virtuel avec MySQL, et piloté par Postfixadmin pour avoir une interface facile à utiliser.
J’ai également installé le gestionnaire de listes Sympa, et j’ai mis des règles de transport spéciales pour Orange (trouvées ici).
Tout fonctionne parfaitement bien depuis plusieurs mois sauf que les adresses virtuelles ne sont pas reconnues en utilisant sendmail. Ça pose surtout problème pour les mails envoyés par PHP.
Par exemple, j’obtiens le message suivant quand j’envoie un mail en ligne de commande à webmaster@mondomaine.com (qui est un alias virtuel) :
Reporting-MTA: dns; serveur.mondomaine.com
X-Postfix-Queue-ID: D5D3B3291
X-Postfix-Sender: rfc822; root@serveur.mondomaine.com
Arrival-Date: Mon, 11 Feb 2013 23:06:59 +0100 (CET)
Final-Recipient: rfc822; webmaster@mondomaine.com
Action: failed
Status: 5.1.1
Diagnostic-Code: x-unix; user unknown
Alors que cet alias fonctionne très bien avec mondomaine.com depuis l’extérieur.
Les listes Sympa fonctionnent correctement avec sendmail pour le sous-domaine listes.mondomaine.com.
J’ai beau chercher, je ne trouve pas la solution. Quelqu’un peut-il m’aider ??
Voici ci-dessous mes configs :
/etc/postfix/main.cf :
# Message affiché à la connexion
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
# Ne pas utiliser le service biff qui sert à la notification
# des nouveaux mails
biff = no
# On ne rajoute pas le domaine car c'est le boulot du client mail
append_dot_mydomain = no
# Permet d'envoyer un email a l'émetteur si son mail n'est pas
# parti au bout d'un certain temps
delay_warning_time = 12h
readme_directory = no
# TLS parameters
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# Emplacement des alias Unix
# Attention, à chaque modification de /etc/aliases, il faut taper
# la commande newaliases pour qu'il régénère le fichier /etc/aliases.db
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
# Le domaine d'origine
myorigin = /etc/mailname
myhostname = serveur.mondomaine.com
mydomain = mondomaine.com
# Liste des domaines principaux dont on accepte le courrier
mydestination = localhost localhost.mondomaine.com serveur.mondomaine.com mail.mondomaine.com listes.mondomaine.com
# Permet d'indiquer un autre serveur SMTP pour l'envoi des emails
# Utilisé si on ne peut pas envoyer directement les emails
#relayhost =
# Indique les réseaux dont on accepte d'acheminer les emails
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# Écoute sur toutes les interfaces réseaux
inet_interfaces = all
# Taille des boites aux lettres. 0 : pas de limite
mailbox_size_limit = 0
# Séparateur utilisé pour les usernames + adresses
recipient_delimiter = +
#on va dire à Postfix d’utiliser Dovecot comme MDA (ou LDA)
mailbox_command = /usr/lib/dovecot/deliver
# Répertoire de la file d'attente
queue_directory = /var/spool/postfix
## Configuration pour la gestion virtuelle avec MySQL
virtual_uid_maps = static:3000
virtual_gid_maps = static:3000
virtual_mailbox_base = /home/facteur
virtual_transport = dovecot
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
relay_domains = mysql:/etc/postfix/mysql_relay_domains.cf
# Restrictions d'utilisation du serveur SMTP
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname
smtpd_sender_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
check_sender_access regexp:/etc/postfix/sender_access_catchall,
permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
# Indiquer à Postfix de livrer à un destinataire à la fois
# la réception d'un mail en provenance d'un expéditeur unique avec plusieurs destinataire ne fonctionnerais pas sans cette option
dovecot_destination_recipient_limit = 1
#config anti-spam
# La ligne ci-dessous est désactivée afin de ne pas traiter
# tous les messages de la même façon.
# On passe par la directive smtpd_sender_restrictions donnée ci-dessus.
#content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
# Ajouts pour l'identification SMTP
# Ajoute un nom de domaine aux clients qui utilisent smtp-auth.
# Soyez sûr que c'est vide ou sinon les utilisateurs se feront virer par postfix et ne pourront pas s'identifier.
smtpd_sasl_local_domain =
# Chiffrer le mot de passe lors de l'authentification
smtpd_tls_cert_file = /homez/data01/ssl/CERTIFICATES/mail.mondomaine.com_cert.cert
smtpd_tls_key_file = /homez/data01/ssl/PRIVATE_KEYS/mail.mondomaine.com_key.pem
smtpd_tls_CAfile = /homez/data01/ssl/CERTIFICATE_AUTHORITY/sub.class1.server.ca.pem
smtpd_use_tls = yes
smtpd_tls_loglevel = 1
# tls_mandatory: définit les contraintes posées sur STARTTLS.
# Tout d'abord on ne veux pas de SSLv2, qui est cassé, puis on précise que les
# algos autorisés sont dans la liste “high” de OpenSSL mais on enlève le chiffrement
# NULL et le hash MD5.
smtpd_tls_mandatory_protocols = !SSLv2
smtpd_tls_mandatory_ciphers = high \
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5
# L'option suivante oblige à être crypté avant l'authentification
smtpd_tls_auth_only = yes
# Pour avoir un compte-rendu détaillé de la connexion dans la log,
# entrer l'adresse IP ci-dessous :
#debug_peer_list = @ip
#### AJOUTS POUR SYMPA ####
# Tranport vers les services sympa*
transport_maps = regexp:/etc/postfix/transport_regexp_sympa hash:/etc/postfix/transport
local_recipient_maps = regexp:/etc/postfix/transport_regexp_sympa proxy:unix:passwd.byname $alias_maps
# Un seul envoi/destinataire envoyé aux services sympa* à la fois
sympa_destination_recipient_limit = 1
sympabounce_destination_recipient_limit = 1
# Règles de transport pour orange et wanadoo -> on utilise la queue "slow"
# La règle de transport se trouve plus haut (hash: /etc/postfix/transport)
slow_destination_recipient_limit = 20
slow_destination_concurrency_limit = 2
/etc/postfix/master.cf :
smtp inet n - - - - smtpd
-o smtpd_sasl_auth_enable=yes
# Ouverture du port 587 paramétré comme le port SMTP (port 25)
587 inet n - - - - smtpd
-o smtpd_sasl_auth_enable=yes
# ebinet - fin
pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr fifo n - n 300 1 qmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix - - - - - smtp
-o smtp_fallback_relay=
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
# Dovecot
dovecot unix - n n - - pipe
flags=DRhu user=facteur:facteur argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
# anti-spam
amavis unix - - - - 1 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_bind_address=127.0.0.1
# Ajouts pour SYMPA
sympa unix - n n - - pipe
flags=R user=sympa argv=/usr/lib/sympa/bin/queue ${recipient}
sympabounce unix - n n - - pipe
flags=R user=sympa argv=/usr/lib/sympa/bin/bouncequeue ${user}@${nexthop}
# File d'attente pour Orange et Wanadoo
slow unix - - n - 5 smtp
-o syslog_name=postfix-slow
-o smtp_destination_concurrency_limit=3
-o slow_destination_rate_delay=1
/etc/postfix/transport :
wanadoo.com slow:
wanadoo.fr slow:
orange.com slow:
orange.fr slow:
/etc/postfix/transport_regexp_sympa :
/^.*+retour\@listes\.mondomaine\.com$/ sympabounce:
/^.*\@listes\.mondomaine\.com$/ sympa:
Et dans le fichier /etc/postfix/aliases je mets les aliases de serveur.mondomaine.com (comme pour les listes de Sympa, ça fonctionne très bien avec sendmail)
Je ne mets pas dovecot.conf car il est vraiment gros et je ne sais pas s’il est utile.
Merci par avance pour vos bons conseils !!