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.
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 :
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/
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
et n'autoriser que root lui-même à y accéder en lecture et écriture :
sudo chmod -R 600 /etc/postfix/sasl
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