Système Satellite pour Postfix
Description
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.
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
Installation
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
Configuration de Postfix
Voici comment configurer postfix grâce à assistant:
Lorsque l'assistant se lance, un premier panneau vous explique chaque configuration possible. Donc faisons OK.
- La première question correspond justement au type d'installation de Postfix que vous souhaitez effectuer, ici Système Satellite.
- 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
- 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
- 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.
- 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).
- Répondez Oui à la question "Forcer des mises à jour synchronisées de la file d'attente des courriels ?"
- 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.
- La taille maximale des boites aux lettres peut être mise à 0, si vous êtes sûr des utilisateurs de votre machine.
- Le caractère "+" est très bien pour signifier une adresse locale, laissez donc ce champ à la question suivante.
- 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.
Authentification
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
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
Tester l'envoi d'email
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).
Translation de courriel
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