serveurs:installation:postfix

Ceci est une ancienne révision du document !


Installer et configurer Postfix

  • En test, si vous ne pouvez pas créer directement le compte email mailer sur le domaine du SINP, configurer le service de relai SMTP de Google comme indiqué ici : https://support.google.com/a/answer/2956491
    • Sélectionner :
      • Expéditeurs autorisés : Uniquement les adresses de mes domaines
      • Authentification : Accepter uniquement les messages provenant des adresses IP spécifiées
      • Adresses/plages IP : mettre celles des 2 instances en IPv4
      • Authentification SMTP requise : cocher la case
      • Exiger le chiffrement TLS : cocher la case
    • Cela permet ensuite d'utiliser les infos suivantes pour les tests :
      • l'adresse SMTP : smtp-relay.gmail.com
      • le port : 587
      • Un utilisateur et son mot de passe : mailer@cbn-alpin.fr / <mot-de-passe-de-mailer>
  • En prod, utiliser le SMTP d'OVH :
    • Hôte : ssl0.ovh.net
    • Port : 587
    • Username : mailer@<domaine-sinp> (si possible, sinon admin@<domaine-sinp>) [mettre l'adresse du compte email et pas un alias]
    • Password : le mot de passe du compte email ci-dessus
    • TLS : true
  • Installer les paquets nécessaires : aptitude install libsasl2-modules postfix bsd-mailx
    • Réponses à fournir dans l'interface d'installation de Postfix :
      • Type : site-internet
      • FQDN : web-srv.<domaine-sinp> ou db-srv.<domaine-sinp> ou bkp-srv.<domaine-sinp>
    • Par la suite, il est possible de modifier la valeur FQDN en éditant le fichier de conf de Postfix : vi /etc/postfix/main.cf
      • Modifier la propriété myhostname si elle n'est pas correcte : myhostname = web-srv.<domaine-sinp> ou myhostname = db-srv.<domaine-sinp> ou myhostname = bkp-srv.<domaine-sinp>
      • Modifier aussi la valeur présente dans le fichier : vi /etc/mailname
      • Redémarrer Postfix : systemctl restart postfix
  • Se connecter au compte Gmail et suivre le lien : https://myaccount.google.com/security
    • Activer la validation en 2 étapes
    • Générer 3 codes de sécurité pour les Postfix de l'instance Web et DB en suivant ce lien : https://security.google.com/settings/security/apppasswords
      • Sélectionner : Autre (personnalisé)
      • Saisir : Postfix (web-<region>-sinp), le second Postfix (db-<region>-sinp) et le troisième Postfix (bkp-<region>-sinp)
      • Copier/coller le mot de passe généré
  • Ouvrir ou créer le fichier vi /etc/postfix/sasl/sasl_passwd et y ajouter le contenu suivant :
    • En test :
      [smtp-relay.gmail.com]:587 <email-gmail>:<mot-de-passe-du-compte-email-gmail>
    • En prod :
      [ssl0.ovh.net]:587 <email-ovh>:<mot-de-passe-du-compte-email-ovh>
  • Créer le fichier de base de données qui contiendra les mots de passe : postmap /etc/postfix/sasl/sasl_passwd
    • Vérifier que le fichier sasl_passwd.db existe : ls -al /etc/postfix/sasl/
    • ATTENTION : Il est nécessaire de relancer la commande postmap si le fichier sasl_passwd change !
  • Limiter l'accès à root aux fichiers sasl_passwd et sasl_passwd.db :
    • chown root:root /etc/postfix/sasl/sasl_passwd*
    • chmod 0600 /etc/postfix/sasl/sasl_passwd*
  • Configurer le serveur SMTP relai dans Posfix :
    • Éditer le fichier et : vi /etc/postfix/main.cf et modifier la propriété suivante :
      • En test :
         relayhost = [smtp-relay.gmail.com]:587 
      • En prod :
         relayhost = [ssl0.ovh.net]:587 
    • Ajouter les propriétés suivantes en fin de fichier :
      # Enable SASL authentication
      smtp_sasl_auth_enable = yes
      # Disallow methods that allow anonymous authentication
      smtp_sasl_security_options = noanonymous
      # Location of sasl_passwd
      smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
      # Enable STARTTLS encryption
      smtp_tls_security_level = encrypt
      # Location of CA certificates
      smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
  • Redémarrer Postfix : systemctl restart postfix
  • Il en existe plusieurs visible avec la commande : systemctl status postfix*
  • C'est le service nommé postfix@-.service qui correspond au daemon lancé par le service postfix.service
  • Pour l'affichage dans Grafana, utiliser celui nommé : postfix@-.service

Si l'on souhaite contrôler l'adresse email qui envoie les emails du serveur (le FROM:), deux solutions :

  1. réécrire l'entête des emails envoyés à l'aide du paramètre smtp_header_check et mettre en place un fichier de remplacement à l'aide du paramètre smtp_generic_maps
  2. réecrire avec le from à l'aide de sender_canonical_maps

Pour la solution 1 (voir aussi : https://superuser.com/a/695191):

  • Installer le paquet supplémentaire suivant : aptitude install postfix-pcre
  • Ajouter le paramètre suivant au fichier /etc/postfix/main.cf : vi /etc/postfix/main.cf
    # Add Header rewrite
    smtp_header_checks = pcre:/etc/postfix/smtp_header_checks
  • Crééer le fichier /etc/postfix/smtp_header_checks avec le contenu suivant : vi /etc/postfix/smtp_header_checks
    /^From:\s+.*/ REPLACE From: "<nom-sinp>" <mailer@<domaine-sinp>>
    • Exemple :
      /^From:\s+.*/ REPLACE From: "Silene web" <mailer@silene.eu>
    • Redémarrer Postfix : systemctl restart postfix

Pour la solution 2, sender_canonical_maps :

  • Créer le fichier suivant :
    vi /etc/postfix/sender_canonical_maps
  • Ajouter le contenu :
    /.+/  mailer@cbn-alpin.fr
  • Éditer le fichier de conf de Postfix : vi /etc/postfix/main.cf
  • Ajouter le contenu :
    # Add Sender rewrite
    sender_canonical_classes = envelope_sender, header_sender
    sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps
  • Redémarrer Postfix : systemctl restart postfix
  • Commande d'envoi d'email :
    • En test : echo "THIS IS A TEST EMAIL sended at $(date "+%F %H:%M")" | mail -s "[${HOSTNAME}] Test email" -r "mailer@cbn-alpin.fr" adminsys@<domaine-sinp>
    • En prod : echo "THIS IS A TEST EMAIL sended at $(date "+%F %H:%M")" | mail -s "[${HOSTNAME}] Test email" -r "mailer@<domaine-sinp>" adminsys@<domaine-sinp>
  • Vérifier en parallèle les logs : tail -f /var/log/syslog
  • serveurs/installation/postfix.1667817872.txt.gz
  • Dernière modification : 2022/11/07 10:44
  • de jpmilcent