# Géré par Set-OPS (rôle serveur_postfix). Ne pas éditer à la main. compatibility_level = 3.6 myhostname = {{ serveur_postfix_nom_hote }} mydomain = {{ serveur_postfix_domaine }} myorigin = $mydomain inet_interfaces = all inet_protocols = ipv4 biff = no append_dot_mydomain = no readme_directory = no smtpd_banner = $myhostname ESMTP mynetworks = {{ serveur_postfix_reseaux_confiance }} # Aucune remise locale : ce MTA ne fait QUE des boîtes virtuelles (via LDAP + LMTP). mydestination = local_recipient_maps = {% if serveur_postfix_mode == 'relais' %} {# UN RELAIS N'HEBERGE RIEN, IL EXPEDIE. Pas de domaine virtuel, pas de carte LDAP, pas de remise LMTP : il n'y a aucune boite ici. Ce qu'il faut, c'est que la supervision puisse SORTIR une alerte, et qu'elle sorte au nom du SITE — pas d'un locataire. #} relayhost = {# `mynetworks` seul decide qui peut faire relayer : la loopback, donc les services de cette machine, et rien d'autre. Un relais ouvert est repere et exploite en heures. #} smtpd_relay_restrictions = permit_mynetworks, reject_unauth_destination {% else %} # --- Boîtes virtuelles : validation LDAP + remise LMTP vers le nœud mail-store (Dovecot) --- virtual_mailbox_domains = {{ serveur_postfix_domaine }} virtual_mailbox_maps = ldap:/etc/postfix/ldap-mailboxes.cf virtual_transport = lmtp:inet:[{{ serveur_postfix_mailstore_hote }}]:{{ serveur_postfix_lmtp_port }} # Résolution via le plancher /etc/hosts (indépendant du DNS) pour la remise interne. lmtp_host_lookup = native {% endif %} {% if serveur_postfix_tls_actif %} # --- TLS (certificat step_ca) --- smtpd_tls_cert_file = {{ serveur_postfix_tls_dir }}/cert.pem smtpd_tls_key_file = {{ serveur_postfix_tls_dir }}/key.pem smtpd_tls_security_level = may smtpd_tls_protocols = >=TLSv1.2, !SSLv2, !SSLv3 smtp_tls_security_level = may {% if serveur_postfix_lmtp_tls_verify | default(false) %} # Zero-confiance : livraison LMTP vers Dovecot chiffree ET verifiee (cert step-ca). # `wrappermode` = TLS des la connexion : c'est ce que sait offrir un `inet_listener` # Dovecot. Sans lui, Postfix tentait STARTTLS sur un port qui ne le propose pas, et # la poignee de main expirait au bout de 300 s — livraison differee en silence. lmtp_tls_wrappermode = yes lmtp_tls_security_level = verify lmtp_tls_CAfile = {{ serveur_postfix_lmtp_tls_cafile }} {% endif %} {% endif %} {% if serveur_postfix_rspamd_milter %} # --- Milter rspamd (antispam + signature DKIM), co-localisé sur edge-mta --- smtpd_milters = inet:localhost:{{ serveur_postfix_rspamd_milter_port }} non_smtpd_milters = $smtpd_milters milter_protocol = 6 milter_default_action = accept {% endif %} # --- Restrictions de base --- smtpd_helo_required = yes smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination