l’auteur a sélectionné le fonds gratuit et Open Source pour recevoir un don dans le cadre du programme Write for DOnations.

Introduction

Postfix est un agent de transfert de courrier (MTA), une application utilisée pour envoyer et recevoir des e-mails. Il peut être configuré de sorte qu’il puisse être utilisé pour envoyer des e-mails par application locale uniquement., Ceci est utile dans les situations où vous devez envoyer régulièrement des notifications par e-mail à partir de vos applications ou simplement avoir beaucoup de trafic sortant qu’un fournisseur de services de messagerie tiers n’autorisera pas. C’est également une alternative plus légère à l’exécution d’un serveur SMTP complet, tout en conservant les fonctionnalités requises.

dans ce tutoriel, vous allez installer et configurer Postfix en tant que serveur SMTP à Envoi uniquement. Vous demanderez également des certificats TLS gratuits à Let’s Encrypt pour votre domaine et crypterez les e-mails sortants en les utilisant.

Prérequis

  • Un Ubuntu 18.,04 configuration du serveur avec la configuration initiale du serveur avec Ubuntu 18.04, y compris la création d’un utilisateur non root sudo.
  • un nom de domaine entièrement enregistré. Ce tutoriel utilisera your_domain tout au long. Vous pouvez acheter un nom de domaine sur Namecheap, en obtenir un GRATUITEMENT sur Freenom ou utiliser le registraire de domaine de votre choix.
  • Un enregistrement DNS avec your_domain pointant vers l’adresse IP publique de votre serveur. Vous pouvez suivre cette introduction à DigitalOcean DNS pour plus de détails sur la façon de les ajouter.,

remarque: le nom d’hôte de votre serveur et le nom de votre Droplet doivent correspondre à your_domain, car DigitalOcean définit automatiquement les enregistrements PTR pour l’adresse IP de la Droplet en fonction de son nom.

Vous pouvez vérifier le nom d’hôte du serveur en tapant hostname à l’invite de commande. La sortie doit correspondre au nom que vous avez donné à la gouttelette lors de sa création.

Étape 1 — Installation de Postfix

dans cette étape, vous allez installer Postfix., Le moyen le plus rapide consiste à installer le package mailutils, qui regroupe Postfix avec quelques programmes supplémentaires que vous utiliserez pour tester l’envoi d’e-mails.

tout d’Abord, la mise à jour de la base de données des paquets:

  • sudo apt update

Ensuite, installer Postfix en exécutant la commande suivante:

  • sudo apt install mailutils

vers la fin du processus d’installation, il vous sera présenté avec la fenêtre de configuration de Postfix:

L’option par défaut est Internet Site., C’est l’option recommandée pour votre cas d’utilisation, donc appuyez sur la touche TAB, puis ENTER. Si vous ne voyez que le texte de la description, appuyez sur la touche TAB pour sélectionner OK, puis ENTER.,

s’il ne s’affiche pas automatiquement, exécutez la commande suivante pour le démarrer:

  • sudo dpkg-reconfigure postfix

Après cela, vous obtiendrez une autre invite de configuration concernant le nom de la messagerie Système:

le nom de la messagerie système doit être le même que le nom que vous avez attribué à votre serveur. Lorsque vous avez terminé, appuyez sur TAB, suivi de ENTER.

Vous avez maintenant installé Postfix et êtes prêt à commencer à le configurer.,

Étape 2 — Configuration de Postfix

dans cette étape, vous configurerez Postfix pour envoyer et recevoir des e—mails uniquement à partir du serveur sur lequel il s’exécute-c’est-à-dire à partir delocalhost.

Pour cela, Postfix doit être configuré pour écouter sur l’interface de bouclage, l’interface réseau virtuel qui utilise le serveur pour communiquer en interne. Pour effectuer les modifications, vous devez modifier le fichier de configuration principal de Postfix appelé main.cf, stocké sousetc/postfix.,

ouvrez-le pour l’éditer en utilisant votre éditeur de texte préféré:

  • sudo nano /etc/postfix/main.cf

recherchez les lignes suivantes:

/etc/postfix/main.cf
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all. . .

définissez la valeur de inet_interfaces réglage sur loopback-only:

/etc/postfix/main.CF
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = loopback-only. . .

une autre directive que vous devrez modifier Est mydestination, qui est utilisé pour spécifier la liste des domaines qui sont livrés via le local_transport livraison du courrier transport., Par défaut, les valeurs sont similaires à celles-ci:

/etc/postfix/main.cf
. . .mydestination = $myhostname, your_domain, localhost.com, , localhost. . .

Modifiez la ligne qui ressemble à ceci:

/etc/postfix/main.cf
. . .mydestination = localhost.$mydomain, localhost, $myhostname. . .

Si votre domaine est en fait un sous-domaine, et que vous voulez les messages e-mail à regarder comme si elles ont été envoyées dans le domaine principal, vous pouvez ajouter la ligne suivante à la fin de main.cf:

/etc/postfix/main.,cf
...masquerade_domains = your_main_domain

le paramètre optionnel masquerade_domains spécifie pour quels domaines la partie sous-domaine sera supprimée dans l’adresse e-mail.

Lorsque vous avez terminé, enregistrez et fermez le fichier.

Remarque: Si vous hébergez plusieurs domaines sur un seul serveur, les autres domaines peuvent également être transmis à Postfix à l’aide de la directive mydestination.

ensuite, redémarrez Postfix en exécutant la commande suivante:

  • sudo systemctl restart postfix

Vous avez configuré Postfix pour envoyer uniquement des e-mails depuis votre serveur., Vous allez maintenant le tester en envoyant un exemple de message à une adresse e-mail.

Étape 3 — Test du serveur SMTP

dans cette étape, vous testerez si Postfix peut envoyer des e-mails à un compte de messagerie externe en utilisant la commandemail, qui fait partie du packagemailutils que vous avez installé dans la première étape.

Pour envoyer un e-mail de test, exécutez la commande suivante:

  • echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

Vous pouvez modifier le corps et le sujet de l’email à votre goût., N’oubliez pas de remplacer your_email_address par une adresse e-mail valide à laquelle vous pouvez accéder.

Maintenant, vérifiez l’adresse électronique à laquelle vous avez envoyé ce message. Vous devriez voir le message dans votre boîte de réception. Si ce n’est pas là, vérifiez votre dossier spam. À ce stade, tous les e-mails que vous envoyez ne sont pas cryptés, ce qui fait penser aux fournisseurs de services qu’il s’agit probablement de spam. Vous configurerez le cryptage plus tard, à l’étape 5.,

Si vous recevez une erreur de la commandemail, ou si vous n’avez pas reçu de message après de longues périodes de temps, vérifiez que la configuration Postfix que vous avez modifiée est valide et que le nom et le nom d’hôte de votre serveur sont définis sur votre domaine.

à Noter qu’avec cette configuration, l’adresse dans le From champ pour le test e-mails que vous envoyez sera sous la forme de your_user_name@your_domain, où your_user_name est le nom d’utilisateur de l’utilisateur du serveur de l’exécution de la commande.,

Vous avez maintenant envoyé un e-mail depuis votre serveur et vérifié qu’il a bien été reçu. Dans l’étape suivante, vous configurerez le transfert d’e-mail pour root.

Étape 4 — transfert du courrier système

dans cette étape, vous configurerez le transfert du courrier électronique pour l’utilisateurroot, de sorte que les messages générés par le système qui lui sont envoyés sur votre serveur soient transférés à une adresse e-mail externe.

le fichier/etc/aliases contient une liste de noms alternatifs pour les destinataires d’e-mails., Pour l’éditer:

  • sudo nano /etc/aliases

Dans son état par défaut, il ressemble à ceci:

/etc/aliases
# See man 5 aliases for formatpostmaster: root

La seule présente directive spécifie que généré par le système e-mails sont envoyés à root.

Ajoutez la ligne suivante à la fin du fichier:

/etc/aliases
...root: your_email_address

Avec cette ligne, vous indiquez que les courriels envoyés à l’ root finissent par être envoyé à une adresse e-mail. N’oubliez pas de remplacer your_email_address par votre adresse e-mail personnelle., Lorsque vous avez terminé, enregistrez et fermez le fichier.

Pour que la modification prenne effet, exécutez la commande suivante:

  • sudo newaliases

Exécution newaliases va construire une base de données d’alias que le mail commande utilise, qui sont prises dans le fichier de configuration que vous venez de modifier.

le Test que l’envoi de mails à root travaux en cours d’exécution:

  • echo "This is the body of the email" | mail -s "This is the subject line" root

Vous devriez recevoir l’e-mail à votre adresse e-mail. Si ce n’est pas là, vérifiez votre dossier spam.,

dans cette étape, vous avez configuré le transfert des messages générés par le système vers votre adresse e-mail. Vous allez maintenant activer le cryptage des messages, de sorte que tous les e-mails envoyés par votre serveur sont immunisés contre la falsification en transit et seront considérés comme plus légitimes.

Étape 5 — Activation du cryptage SMTP

Vous allez maintenant activer le cryptage SMTP en demandant un certificat TLS gratuit à Let’s Encrypt pour votre domaine (en utilisant Certbot) et en configurant Postfix pour l’utiliser lors de l’envoi de messages.

Ubuntu inclut Certbot dans son référentiel de paquets par défaut, mais il peut arriver qu’il soit obsolète., Au lieu de cela, vous ajouterez le référentiel officiel en exécutant la commande suivante:

  • sudo add-apt-repository ppa:certbot/certbot

appuyez sur ENTER lorsque vous êtes invité à accepter. Ensuite, mettez à jour le cache du gestionnaire de paquets de votre serveur:

  • sudo apt update

enfin, installez la dernière version de Certbot:

  • sudo apt install certbot -y

dans le cadre de la configuration initiale du serveur dans les conditions préalables, vous avez installé ufw, le pare-feu Vous devrez le configurer pour autoriser le port HTTP80, afin que la vérification du domaine puisse être terminée., Exécutez la commande suivante pour activer:

  • sudo ufw allow 80

La sortie devrait ressembler à ceci:

Output
Rule addedRule added (v6)

Maintenant que le port est ouvert, exécutez Certbot pour obtenir un certificat:

  • sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain

Cette commande commandes Certbot à délivrer des certificats avec une taille de clé RSA de 4096 bits, pour exécuter un temporaire autonome serveur web (--standalone) à des fins de vérification, et de vérifier, via le port 80 (--preferred-challenges http)., N’oubliez pas de remplacer your_domain par votre domaine avant d’exécuter la commande, et entrez votre adresse e-mail lorsque vous y êtes invité.

la sortie sera similaire à ceci:

Output
Saving debug log to /var/log/letsencrypt/letsencrypt.logPlugins selected: Authenticator standalone, Installer NoneObtaining a new certificatePerforming the following challenges:http-01 challenge for `your_domain`Waiting for verification...Cleaning up challengesIMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2020-07-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

comme écrit dans les notes, votre certificat et votre fichier de clé privée ont été enregistrés sous/etc/letsencrypt/live/your_domain.

Maintenant que vous avez votre certificat, d’ouvrir main.cf pour l’édition:

  • sudo nano /etc/postfix/main.cf

Trouver l’article suivant:

/etc/postfix/main.,cf

modifiez-le pour ressembler à ceci, en remplaçantyour_domain par votre domaine si nécessaire, ce qui mettra à jour vos paramètres TLS pour Postfix:

/etc/postfix/main.cf

Une fois que vous avez terminé, enregistrez et fermez le fichier.

Appliquer les modifications par redémarrer Postfix:

  • sudo systemctl restart postfix

Maintenant, essayer d’envoyer un e-mail à nouveau:

  • echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address

Ensuite, vérifiez l’adresse e-mail que vous avez fournie. Il est possible que vous voyiez le message dans votre boîte de réception immédiatement, car les fournisseurs de messagerie sont beaucoup plus susceptibles de marquer les messages non cryptés comme spam.,

Vous pouvez vérifier les informations techniques sur le message électronique dans votre client pour voir que le message est bien crypté.

Conclusion

Vous avez maintenant un serveur de messagerie à envoyer uniquement, alimenté par Postfix. Chiffrer tous les messages sortants est une bonne première étape pour les fournisseurs de messagerie ne pas marquer vos messages comme spam. Si vous faites cela dans un scénario de développement, cette mesure devrait suffire.,

cependant, si votre cas d’utilisation consiste à envoyer des e-mails à des utilisateurs potentiels du site (tels que des e-mails de confirmation pour une inscription au forum de discussion), vous devriez envisager de configurer des enregistrements SPF, afin que les e-mails de votre serveur soient encore plus susceptibles d’être considérés comme légitimes.

Articles

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *