« Postfix en tant que relay » : différence entre les versions

De Linux Server Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 6 : Ligne 6 :


Nous allons utiliser les informations suivantes :
Nous allons utiliser les informations suivantes :
* serveur de relai mail : relay.domain.tld sur le port 578 (submission)
* serveur de relai mail : relay.domain.tld sur le port 587 (submission)
* utilisateur permettant d'envoyer le mail : test@otherdomain.tld
* utilisateur permettant d'envoyer le mail via le serveur relay.domain.tld : test@otherdomain.tld
* mot de passe : password
* mot de passe de l'utilisateur sur le serveur relay.domain.tld : password
* en forçant le chiffrement TLS sans vérifier la chaîne de certification


=Configuration simple : relayer tous les mails via un seul relay et un seul compte=
=Configuration simple : relayer tous les mails via un seul relay et un seul compte=


Dans /etc/postfix/main.cf :
<pre>
<pre>
echo "relay.domain.tld:587 test@otherdomain.tld:password" > /etc/postfix/smarthost_passwd
relayhost = [relay.domain.tld]:587
chown root:root /etc/postfix/smarthost_passwd
chmod 600 /etc/postfix/smarthost_passwd
postmap /etc/postfix/smarthost_passwd
</pre>
 
configuration de postfix :
<pre>
relayhost = relay.domain.tld:587
smtp_use_tls=yes
smtp_use_tls=yes
smtp_tls_security_level = encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smarthost_passwd
smtp_sasl_password_maps = hash:/etc/postfix/smarthost_passwd
Ligne 28 : Ligne 23 :
</pre>
</pre>


Redémarrez postfix pour appliquer les modifications
Dans /etc/postfix/smarthost_passwd :
<pre>
<pre>
/etc/init.d/postfix restart
# Destination          credentials
[relay.domain.tld]:587    test@otherdomain.tld:password
</pre>
</pre>


=Relayer en fonction du domaine cible, de l'utilisateur envoyant le mail (avec mots de passe différents)=
Appliquez la configuration :
 
<pre>
<pre>
touch /etc/postfix/smarthost_passwd
chown root:root /etc/postfix/smarthost_passwd
chown root:root /etc/postfix/smarthost_passwd
chmod 600 /etc/postfix/smarthost_passwd
chmod 600 /etc/postfix/smarthost_passwd
Ligne 42 : Ligne 36 :
</pre>
</pre>


/etc/postfix/smarthost_passwd contiendra les associations de cette manière :
Redémarrez postfix pour appliquer les modifications
<pre>
<pre>
sender1@domain1.tld userforsender1@domain1.tld:password
/etc/init.d/postfix restart
sender2@domain1.tld userforsender2@domain1.tld:password
@domain2.tld userfordomain2@domain2.tld:password
</pre>
</pre>


N'oubliez pas de lancer postmap après chaque modification de ce fichier :
=Relayer en fonction du domaine cible, de l'utilisateur envoyant le mail (avec mots de passe différents)=
<pre>postmap /etc/postfix/smarthost_passwd</pre>


configuration de postfix :
Dans /etc/postfix/main.cf :
<pre>
<pre>
relayhost = relay.domain.tld:587
relayhost = [relay.domain.tld]:587
smtp_use_tls=yes
smtp_use_tls=yes
smtp_tls_security_level = encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smarthost_passwd
smtp_sasl_password_maps = hash:/etc/postfix/smarthost_passwd
Ligne 63 : Ligne 55 :
</pre>
</pre>


/etc/postfix/sender_relay contiendra les associations de la manière suivante :
Dans /etc/postfix/smarthost_passwd :
<pre>
<pre>
sender1@domain1.tld relay.domain.tld
# Per-sender authentication; see also /etc/postfix/sender_relay.
sender2@domain.tld relay.domain.tld
localuser1@localdomain1 remoteuser:remotepassword
@domain2.tld relay2.domain.tld
localuser2@localdomain2 remoteuser2:remotepassword2
# Login information for the default relayhost (fallback if no per-sender is found)
[relay.domain.tld]:587    user:password
</pre>
</pre>


N'oubliez pas de lancer postmap après chaque modification de ce fichier :
Dans /etc/postfix/sender_relay:
<pre>postmap /etc/postfix/sender_relay</pre>
<pre>
# Per-sender provider; see also /etc/postfix/sasl_passwd.
localuser1@localdomain1    [relay2.domain.tld]:587
localuser2@localdomain2    [relay3.domain.tld]:587
</pre>
 
Appliquez la configuration :
<pre>
chown root:root /etc/postfix/smarthost_passwd
chmod 600 /etc/postfix/smarthost_passwd
postmap /etc/postfix/smarthost_passwd
postmap /etc/postfix/sender_relay
</pre>


En gros :
En gros :
* Quand vous envoyez un mail en tant que sender1@domain1.tld, postfix se connecte sur relay.domain.tld et s'authentifie en tant que userforsender1@domain1.tld
* Quand vous envoyez un mail en tant que localuser1@localdomain1, postfix se connecte sur relay2.domain.tld et s'authentifie en tant que remoteuser avec le mot-de-passe remotepassword
* Quand vous envoyez un mail en tant que sender2@domain1.tld, postfix se connecte sur relay.domain.tld et s'authentifie en tant que userforsender2@domain1.tld
* Quand vous envoyez un mail en tant que localuser2@localdomain2, postfix se connecte sur relay3.domain.tld et s'authentifie en tant que remoteuser2 avec le mot-de-passe remotepassword2
* Quand vous envoyez un mail en tant que nimportequoi@domain2.tld, postfix se connecte sur relay2.domain.tld et s'authentifie en tant que userfordomain2@domain2.tld7
* Pour les mails provenant de tout autre utilisateur, postfix se connecte sur relay.domain.tld et s'authentifie en tant que userfordomain2@domain2.tld7
 
* Quand vous envoyez un mail en tant que nimportequoi@domain2.tld, postfix se connecte sur relay2.domain.tld et s'authentifie en tant que user avec le mot-de-passe password


Redémarrez postfix pour appliquer les modifications
Redémarrez postfix pour appliquer les modifications

Version du 18 mai 2017 à 17:00

aptitude install postfix

Configuez le en tant que "internet with smarthost". Dans SMTP Relay Host, entrez l'hostname:port que vous souhaitez utiliser comme smtp sortant.

Nous allons utiliser les informations suivantes :

  • serveur de relai mail : relay.domain.tld sur le port 587 (submission)
  • utilisateur permettant d'envoyer le mail via le serveur relay.domain.tld : test@otherdomain.tld
  • mot de passe de l'utilisateur sur le serveur relay.domain.tld : password
  • en forçant le chiffrement TLS sans vérifier la chaîne de certification

Configuration simple : relayer tous les mails via un seul relay et un seul compte

Dans /etc/postfix/main.cf :

relayhost = [relay.domain.tld]:587
smtp_use_tls=yes
smtp_tls_security_level = encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smarthost_passwd
smtp_sasl_security_options = noanonymous

Dans /etc/postfix/smarthost_passwd :

# Destination           credentials
[relay.domain.tld]:587     test@otherdomain.tld:password 

Appliquez la configuration :

chown root:root /etc/postfix/smarthost_passwd
chmod 600 /etc/postfix/smarthost_passwd
postmap /etc/postfix/smarthost_passwd

Redémarrez postfix pour appliquer les modifications

/etc/init.d/postfix restart

Relayer en fonction du domaine cible, de l'utilisateur envoyant le mail (avec mots de passe différents)

Dans /etc/postfix/main.cf :

relayhost = [relay.domain.tld]:587
smtp_use_tls=yes
smtp_tls_security_level = encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smarthost_passwd
smtp_sasl_security_options = noanonymous
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay

Dans /etc/postfix/smarthost_passwd :

# Per-sender authentication; see also /etc/postfix/sender_relay.
localuser1@localdomain1 remoteuser:remotepassword
localuser2@localdomain2 remoteuser2:remotepassword2
# Login information for the default relayhost (fallback if no per-sender is found)
[relay.domain.tld]:587     user:password 

Dans /etc/postfix/sender_relay:

# Per-sender provider; see also /etc/postfix/sasl_passwd.
localuser1@localdomain1     [relay2.domain.tld]:587
localuser2@localdomain2     [relay3.domain.tld]:587

Appliquez la configuration :

chown root:root /etc/postfix/smarthost_passwd
chmod 600 /etc/postfix/smarthost_passwd
postmap /etc/postfix/smarthost_passwd
postmap /etc/postfix/sender_relay

En gros :

  • Quand vous envoyez un mail en tant que localuser1@localdomain1, postfix se connecte sur relay2.domain.tld et s'authentifie en tant que remoteuser avec le mot-de-passe remotepassword
  • Quand vous envoyez un mail en tant que localuser2@localdomain2, postfix se connecte sur relay3.domain.tld et s'authentifie en tant que remoteuser2 avec le mot-de-passe remotepassword2
  • Pour les mails provenant de tout autre utilisateur, postfix se connecte sur relay.domain.tld et s'authentifie en tant que userfordomain2@domain2.tld7
  • Quand vous envoyez un mail en tant que nimportequoi@domain2.tld, postfix se connecte sur relay2.domain.tld et s'authentifie en tant que user avec le mot-de-passe password

Redémarrez postfix pour appliquer les modifications

/etc/init.d/postfix restart