Système Satellite pour Postfix

Un système satellite pour Postfix signifie simplement que les mails du système seront envoyés automatiquement à un serveur SMTP. Ceci vous permettra d'utiliser la commande mail (du package mailx) directement pour envoyer des emails.

Il pourra par la suite être utilisé pour envoyer des emails automatiquement comme par exemple des fichiers de logs grâce à cron.

Commençons par installer le paquet postfix.

Un assistant va alors se lancer, et vous allez devoir répondre à quelques questions.

Si l'assistant ne se lance pas ou si Postfix est déjà installé sur votre système, faites un

sudo dpkg-reconfigure postfix

Voici comment configurer postfix grâce à assistant:

Lorsque l'assistant se lance, un premier panneau vous explique chaque configuration possible. Donc faisons OK.

  1. La première question correspond justement au type d'installation de Postfix que vous souhaitez effectuer, ici Système Satellite.
  2. La question suivante permet de choisir le nom suivant le symbole @ pour les expéditeurs de vos courriels. Choisissez donc ici le nom de votre machine par exemple (qualifié, c'est-à-dire machine.nomdomaine.org par exemple). Si vous désirez recevoir des email de @chezguillaume.fr, entrez chezguillaume.fr
  3. Ensuite, cette question est le point clé de l'assistant, elle permet de saisir le SMTP de votre FAI. Donc, mettez l'adresse du serveur smtp. Si vous devez préciser un port différent du port 25, ajouter : puis le numéro du port. Par exemple, si je dois utiliser le port 1234 je doit mettre smtp.serveur.org:1234
  4. Le courrier de root doit être envoyé en alias sur un autre utilisateur, saisissez donc ce nom d'utilisateur à la question suivante (au quotidien, lorsque l'utilisateur root du système enverra un mail, il sera transféré sous le nom de l'utilisateur choisi ici). Donc mettez votre compte pour que les emails de root soit directement renvoyés vers votre boite mail, ou expédié par votre boite mail.
  5. Ensuite, choisissez les noms d'hôtes qui seront acceptés lorsqu'un utilisateur local souhaitera envoyer un courrier (le nom de votre machine devrait suffire ici).
  6. Répondez Oui à la question "Forcer des mises à jour synchronisées de la file d'attente des courriels ?"
  7. Il est fortement recommander de n'accepter les envois de courrier que sur la boucle locale, à savoir "127.0.0.0/8" pour la question suivante.
  8. La taille maximale des boites aux lettres peut être mise à 0, si vous êtes sûr des utilisateurs de votre machine.
  9. Le caractère "+" est très bien pour signifier une adresse locale, laissez donc ce champ à la question suivante.
  10. Enfin, tous les protocoles Internet méritent d'être activés, choisissez donc "tous" à la question suivante.

Le serveur Postfix va alors redémarrer, et l'envoi de mail est désormais fonctionnel.

Si le serveur SMTP que vous allez utiliser possède un jeu de login et mot de passe, il faut le préciser dans le fichier de configuration de postfix :

Modifier le fichier « main.cf »

Il faut donc éditer le fichier /etc/postfix/main.cf :

sudo vim /etc/postfix/main.cf

et ajouter les lignes suivante à la fin :

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_sasl_security_options = noanonymous

Vous pouvez également activer le chiffrement de la connexion grâce à TLS/SSL en ajoutant les lignes suivantes (notez qu'il est recommandé de l'activer si le serveur SMTP auquel vous vous connectez le supporte) :

smtp_use_tls = yes
smtp_enforce_tls = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Vérifiez également le port de connexion à votre serveur SMTP (celui-ci étant parfois différent quand on utilise une connexion sécurisée) en éditant la ligne suivante :

relayhost = [smtp.serveur.org]:1234

Conserver cette syntaxe avec les crochets

Puis sauvegardez le fichier.

Si vous n'arrivez pas à envoyer de message avec cette configuration vous pouvez désactiver smtp_enforce_tls mais sachez que Postfix ne vérifiera pas le certificat qui lui est présenté par votre serveur SMTP. Il se contentera de l'accepter pour chiffrer la connexion et éviter ainsi de transmettre vos identifiant et mot de passe en clair mais ne vérifiera pas qu'il dialogue avec le bon serveur et non avec un serveur pirate. Ne désactivez donc cette option que si votre serveur SMTP présente un certificat qui pose problème.

Il faut ensuite s'assurer que la base des certificats est à jour en exécutant les commandes suivantes :

sudo update-ca-certificates
sudo c_rehash /etc/ssl/certs/

Créer le fichier « sasl_passwd »

Maintenant, il ne reste plus qu'à créer le fichier /etc/postfix/sasl/sasl_passwd qui contiendra les informations de connexion, et seul root pourra le lire et y écrire :

[smtp.serveur.org]:1234 nom_utilisateur:mot_de_passe

Conserver la syntaxe avec les crochets

Le « nom_utilisateur » peut aussi être une adresse de courriel.

Puis exécutez la commande suivante:

sudo postmap /etc/postfix/sasl/sasl_passwd

Il ne reste plus qu'à redémarrer le serveur Postfix pour qu'il prenne les nouveaux paramètres :

sudo /etc/init.d/postfix restart

Pour tester que tout s'est bien passé, installez le paquet mailx. 1)

Puis dans un terminal :

echo "test" | mail -s "Sujet Test" votreadresse@mail

Vous devriez recevoir votre email sans problème. Attention cependant, si vous n'avez pas choisi de nom qualifié pour votre serveur, les mails risquent très fortement (voire toujours) d'être interceptés par le SMTP de votre FAI. Pour cela, vous pouvez utiliser une autre petite technique, la translation d'adresse de courriel (cf. infra).

Pour cela, éditez le fichier /etc/postfix/main.cf.

Ajoutez-y :

smtp_generic_maps = hash:/etc/postfix/generic

Créer maintenant le fichier /etc/postfix/generic et placez-y :

nom-utilisateur adresse-mel@valide

Enfin, exécutez les commandes suivantes :

sudo postmap /etc/postfix/generic
sudo service postfix restart

1)
bsd-mailx sur Karmic et versions supérieures d'Ubuntu
  • postfix_systeme_satellite.txt
  • Dernière modification: Le 03/01/2017, 19:12
  • (modification externe)