Les implémentations de SMTP les plus couramment utilisées dans la plupart des distributions Linux sont Sendmail et Postfix. Postfix est un agent de transfert de courrier open source qui a été initialement développé comme une alternative à Sendmail et est généralement configuré comme serveur de messagerie par défaut.
Installer Postfix
Avant de commencer l'installation, tout d'abord. Une bonne habitude à prendre est de vérifier et de voir si le logiciel est déjà installé sur le serveur. Il est toujours utile de vérifier s'il y a quelque chose avant de se mettre au travail.
Pour vérifier les distributions basées sur RPM, utilisez cette commande :
$ rpm -qa | grep postfix
Si la commande précédente montre que le RPM n'est pas installé, vous pouvez installer le RPM Postfix avec ce qui suit (sur yum
-basées sur les distributions) :
$ yum install -y postfix
Une fois Postfix installé, vous pouvez démarrer le service et l'activer pour vous assurer qu'il démarre après le redémarrage :
$ systemctl start postfix
$ systemctl enable postfix
Configurer Postfix
Une fois Postfix installé, vous pouvez commencer à configurer le service à votre guise. Toutes les options dont vous avez besoin pour le service se trouvent dans /etc/postfix
. Le fichier de configuration principal du service Postfix se trouve dans /etc/postfix/main.cf
. Dans le fichier de configuration, vous pouvez ajouter de nombreuses options, certaines plus courantes que d'autres. Passons en revue quelques-unes que vous verrez peut-être le plus lors de la configuration du service et lorsque vous aurez besoin de le dépanner :
myhostname
déclare le nom d'hôte du serveur de messagerie. Les noms d'hôte contiennent normalement des préfixes, comme ceci :
myhostname = mail.sinisterriot.com
mydomain
déclare le domaine qui gère réellement le courrier, comme ceci :
mydomain = sinisterriot.com
mail_spool_directory
déclare le répertoire où sont placés les fichiers de la boîte aux lettres, comme suit :
mail_spool_directory = /var/mail
mynetworks
déclare une liste de serveurs SMTP distants de confiance pouvant relayer via le serveur, comme ceci :
mynetworks = 127.0.0.0/8, 168.100.189.0/28
La liste fournie avec mynetworks
ne doit contenir que des adresses IP de réseau local ou des modèles de réseau/masque de réseau séparés par des virgules ou des espaces. Il est important de n'utiliser que des adresses de réseau local pour éviter que des utilisateurs non autorisés utilisent votre serveur de messagerie pour des activités malveillantes, ce qui entraînerait la mise sur liste noire de votre serveur et de vos adresses.
Tester Postfix
Avant de mettre quelque chose en production, le tester dans un environnement de développement est toujours une bonne idée. Ce processus a le même concept :une fois que vous avez configuré le serveur de messagerie, testez-le pour vous assurer qu'il fonctionne.
Tout d'abord, je vous recommande de tester si vous pouvez envoyer un e-mail à un destinataire local. En cas de succès, vous pouvez passer à un destinataire distant. Je préfère utiliser la commande telnet pour tester mon serveur de messagerie :
$ telnet mail.sinisterriot.com 25
Ajouter le HELO
commande pour indiquer au serveur de quel domaine vous venez :
HELO sinisterriot.com
Vient ensuite l'expéditeur. Cet ID peut être ajouté avec le MAIL FROM
commande :
MAIL FROM: [email protected]
Cette entrée est suivie du destinataire, et vous pouvez en ajouter plusieurs en utilisant le RCPT TO
commande plusieurs fois :
RCPT TO: [email protected]
Enfin, nous pouvons ajouter le contenu du message. Pour accéder au mode contenu, on ajoute le préfixe DATA
sur une ligne à part, suivi du Subject
ligne et le message corporel. Voici un exemple :
DATA
Subject: This is a test message
Hello,
This is a test message
.
Afin de terminer le corps du message et de le fermer, vous devez ajouter un seul point (.) ou un point sur une ligne. Une fois ce processus terminé, le serveur tentera d'envoyer l'e-mail avec les informations que vous avez fournies. La réponse du code vous indiquera si l'e-mail a réussi ou non. Une fois cela fait, utilisez le quit
commande pour fermer la fenêtre de diffusion.
Dans tous les cas, vérifiez les journaux de messagerie pour les erreurs. Ils sont situés dans /var/log/maillog
par défaut, mais cet emplacement peut être changé pour un autre endroit. En tant qu'administrateur système, la vérification des journaux d'erreurs est une bonne habitude à prendre. Cette pratique est excellente pour le dépannage et nous permet d'identifier et de résoudre un problème plus rapidement. Le déchiffrement des journaux de messagerie est également une partie importante du travail administratif, car chaque partie du journal nous permet de savoir ce qui est important. Au cours de mes dernières années, la connaissance de ces parties m'a aidé à écrire des scripts pour des demandes spécifiques tout en n'ayant qu'à expurger ou à omettre des parties des journaux de messagerie.
Sécuriser Postfix
La sécurisation de vos services est tout aussi importante que leur mise en place. Il est plus sûr de transférer des données via une connexion sécurisée que via une connexion non protégée. Ensuite, nous verrons comment sécuriser notre serveur de messagerie nouvellement configuré. Vous pouvez le faire en générant une session SSL sur Transport Layer Security (TLS) pour le serveur SMTP.
Tout d'abord, vous devez générer la clé privée et la demande de signature de certificat (CSR). Vous pouvez le faire via le openssl
commande :
$ openssl req -nodes -newkey rsa:2048 -keyout privatekey.key -out mail.csr
Ensuite, générez une demande de signature et copiez-la dans le /etc/postfix
répertoire :
$ openssl x509 -req -days 365 -in mail.csr -signkey privatekey.key -out secure.crt
$ cp {privatekey.key,secure.crt} /etc/postfix
Cette séquence délivre un certificat signé au serveur de messagerie, également appelé certificat d'autorité de certification (CA). Cette pratique signifie que l'autorité de certification doit faire confiance au signataire du certificat pour sécuriser la clé privée et transmettre les données sur Internet. Dans l'autre type de certificat, un certificat auto-signé, l'autorité de certification ne fait pas confiance au signataire du certificat, laissant les informations vulnérables au vol et susceptibles d'être compromises. Il est toujours préférable d'aller avec un certificat signé.
Une fois ce processus terminé, vous pouvez ajouter des options TLS au fichier de configuration de Postfix :
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/secure.crt
smtpd_tls_key_file = /etc/postfix/privatekey.key
smtp_tls_security_level = may
Ensuite, redémarrez le service pour appliquer les nouvelles options :
$ systemctl restart postfix
Vous disposez maintenant d'un serveur de messagerie sécurisé et fonctionnel.