Problème : Configurer Sendmail sur Ubuntu
Sendmail est un agent de transfert de courrier pour les systèmes Linux, mais sa configuration sur Ubuntu peut s'avérer difficile. Une configuration correcte est nécessaire pour que les e-mails soient envoyés et reçus correctement, évitant ainsi les problèmes de livraison ou les failles de sécurité.
Installation de Sendmail sur Ubuntu
Étapes pour installer Sendmail
Pour installer Sendmail sur Ubuntu :
-
Ouvrez un terminal sur votre système Ubuntu.
-
Installez Sendmail en utilisant apt-get :
sudo apt-get install sendmail -
Saisissez votre mot de passe système lorsqu'il vous est demandé.
-
Attendez la fin de l'installation.
-
Vérifiez que Sendmail est installé :
sendmail -vCette commande affiche la version de Sendmail s'il est correctement installé.
-
Vérifiez l'état du service Sendmail :
sudo systemctl status sendmailCette commande indique si Sendmail est actif et en cours d'exécution.
Après ces étapes, Sendmail sera installé sur votre système Ubuntu.
Conseil: Configuration de Sendmail
Après avoir installé Sendmail, vous devrez peut-être le configurer. Pour cela, modifiez le fichier de configuration de Sendmail :
sudo nano /etc/mail/sendmail.mc
Effectuez vos modifications, puis reconstruisez la configuration :
sudo make -C /etc/mail
sudo systemctl restart sendmail
Configuration de base de Sendmail
Exécution de sendmailconfig
La commande sendmailconfig permet de définir la configuration de base de Sendmail. Voici ce qu'il faut savoir sur cette commande :
-
Pour exécuter sendmailconfig, utilisez :
sudo sendmailconfig -
Cette commande met à jour les fichiers de configuration de Sendmail.
-
Elle pose des questions sur votre configuration de messagerie et crée la configuration en fonction de vos réponses.
-
L'outil vise à créer une configuration fonctionnelle pour les configurations courantes.
-
Elle met à jour des fichiers comme /etc/mail/sendmail.cf et /etc/mail/submit.cf.
-
La commande peut vous demander le nom de domaine complet (FQDN) de votre système.
-
Elle peut vous inviter à choisir entre les protocoles IPv4 et IPv6.
-
Vous devrez peut-être confirmer les modifications apportées aux fichiers de configuration existants.
L'objectif principal de cette étape de configuration initiale est de :
-
Créer une configuration de base fonctionnelle pour Sendmail.
-
Aider les utilisateurs qui ne connaissent pas la structure de configuration de Sendmail.
-
Créer un point de départ pour d'autres personnalisations si nécessaire.
-
Réduire les risques d'erreur de configuration qui pourraient causer des problèmes de sécurité ou de fonctionnement.
N'oubliez pas que même si sendmailconfig constitue un bon point de départ, vous devrez peut-être apporter d'autres modifications pour des besoins spécifiques ou des configurations avancées.
Conseil: Sauvegardez votre configuration
Avant d'exécuter sendmailconfig, il est recommandé de sauvegarder vos fichiers de configuration Sendmail existants. Vous pouvez le faire en copiant les principaux fichiers de configuration :
sudo cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.backup
sudo cp /etc/mail/submit.cf /etc/mail/submit.cf.backup
Cela vous permet de revenir aux modifications précédentes si nécessaire.
Localisation et modification des fichiers de configuration Sendmail
Fichiers de configuration principaux
Sendmail utilise plusieurs fichiers de configuration pour contrôler son comportement. Les principaux fichiers à connaître sont :
-
/etc/mail/sendmail.conf : Ce fichier contient les paramètres généraux de Sendmail. Il contrôle des options comme la taille maximale des messages, le nombre de processus de file d'attente et l'emplacement des répertoires Sendmail.
-
/etc/cron.d/sendmail : Ce fichier configure les tâches planifiées pour Sendmail. Il contient des entrées pour l'exécution de la file d'attente et la mise à jour des bases de données de Sendmail à intervalles réguliers.
-
/etc/mail/sendmail.mc : Il s'agit du fichier de configuration principal de Sendmail. Il est écrit en langage de macros m4 et définit la plupart des paramètres opérationnels de Sendmail. Après avoir modifié ce fichier, vous devez le compiler en sendmail.cf pour que les modifications prennent effet.
Pour modifier ces fichiers :
-
Ouvrez un terminal sur votre système Ubuntu.
-
Utilisez un éditeur de texte avec des privilèges root pour ouvrir le fichier. Par exemple :
sudo nano /etc/mail/sendmail.mc -
Effectuez vos modifications dans le fichier.
-
Enregistrez le fichier et quittez l'éditeur.
-
Si vous avez modifié sendmail.mc, compilez-le en sendmail.cf :
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf -
Redémarrez Sendmail pour appliquer les modifications :
sudo systemctl restart sendmail
N'oubliez pas de sauvegarder ces fichiers avant d'apporter des modifications. Cela vous permet de revenir à une configuration fonctionnelle si nécessaire.
Conseil: Utilisez le contrôle de version pour la gestion de la configuration
Pensez à utiliser un système de contrôle de version comme Git pour gérer vos fichiers de configuration Sendmail. Cette approche vous permet de suivre les modifications, de revenir facilement aux versions précédentes et de collaborer avec les membres de l'équipe lors de la gestion de configurations complexes. Voici un flux de travail de base :
-
Initialisez un dépôt Git dans votre répertoire /etc/mail :
cd /etc/mail sudo git init -
Ajoutez vos fichiers de configuration au dépôt :
sudo git add sendmail.mc sendmail.cf -
Validez vos modifications :
sudo git commit -m "Validation initiale de la configuration Sendmail" -
Avant d'effectuer des modifications, créez une nouvelle branche :
sudo git checkout -b nouvelles-modifications-config -
Après avoir effectué et testé vos modifications, validez-les :
sudo git commit -am "Mise à jour des paramètres de relais SMTP" -
Si les modifications fonctionnent comme prévu, fusionnez-les dans la branche principale :
sudo git checkout main sudo git merge nouvelles-modifications-config
Cette méthode offre un filet de sécurité et un historique clair de vos modifications de configuration.
Test de la configuration Sendmail
Envoi d'un e-mail de test
Après avoir configuré Sendmail, testez s'il fonctionne correctement. Vous pouvez envoyer un e-mail de test en utilisant la ligne de commande. Voici comment procéder :
-
Ouvrez un terminal sur votre système Ubuntu.
-
Utilisez cette commande pour envoyer un e-mail de test :
echo "Ceci est un e-mail de test de Sendmail" | sendmail -v votre_email@exemple.comRemplacez "votre_email@exemple.com" par votre adresse e-mail.
-
L'option
-vaffiche le processus de transmission de l'e-mail. -
Vérifiez votre boîte de réception pour le message de test.
Pour confirmer la livraison de l'e-mail :
-
Recherchez l'e-mail de test dans votre boîte de réception.
-
Si vous ne le voyez pas, vérifiez votre dossier spam.
-
Consultez les en-têtes de l'e-mail pour confirmer qu'il a été envoyé via votre serveur Sendmail.
-
Examinez les journaux de Sendmail pour détecter d'éventuels messages d'erreur :
sudo tail -f /var/log/mail.logCette commande affiche les entrées de journal en temps réel.
Si l'e-mail de test n'arrive pas ou si vous constatez des erreurs dans les journaux, vérifiez votre configuration Sendmail ou vérifiez vos paramètres réseau.
Conseil: Utilisation d'un script de test
Créez un simple script PHP pour tester la fonctionnalité de Sendmail :
<?php
$to = "votre_email@exemple.com";
$subject = "E-mail de test de Sendmail";
$message = "Ceci est un e-mail de test envoyé à l'aide de PHP et Sendmail.";
$headers = "From: webmaster@exemple.com";
if(mail($to, $subject, $message, $headers)) {
echo "E-mail envoyé avec succès.";
} else {
echo "Échec de l'envoi de l'e-mail.";
}
?>
Enregistrez ce script et exécutez-le via votre serveur web pour tester l'intégration de Sendmail avec PHP.
Dépannage de la livraison des e-mails
Si votre e-mail de test n'arrive pas, essayez ces étapes :
-
Vérifiez vos paramètres de pare-feu pour vous assurer que le port 25 (SMTP) est ouvert.
-
Vérifiez que vos paramètres DNS sont corrects.
-
Vérifiez la file d'attente Sendmail pour les messages bloqués :
sudo mailq -
Si des messages sont bloqués, essayez de vider la file d'attente :
sudo sendmail -q
Ces étapes peuvent vous aider à identifier les problèmes courants empêchant la livraison des e-mails.
Ajout d'un relais SMTP à Sendmail
Configuration de l'authentification SMTP
Pour ajouter un relais SMTP à Sendmail, vous devez configurer l'authentification SMTP. Ce processus implique la création d'un répertoire d'authentification et la génération d'une base de données d'authentification. Voici comment procéder :
-
Créez un répertoire d'authentification :
sudo mkdir /etc/mail/auth sudo chmod 700 /etc/mail/authCela crée un répertoire pour stocker les informations d'authentification.
-
Créez un fichier pour stocker vos identifiants de serveur SMTP :
sudo nano /etc/mail/auth/client-info -
Ajoutez les informations de votre serveur SMTP au fichier :
AuthInfo:votre.serveur.smtp "U:nom_utilisateur" "P:mot_de_passe" "M:PLAIN"Remplacez "votre.serveur.smtp", "nom_utilisateur" et "mot_de_passe" par vos informations réelles de serveur SMTP.
-
Générez la base de données d'authentification :
sudo makemap hash /etc/mail/auth/client-info < /etc/mail/auth/client-infoCette commande crée un fichier de base de données que Sendmail peut utiliser.
-
Définissez les permissions correctes pour les fichiers :
sudo chmod 600 /etc/mail/auth/client-info sudo chmod 600 /etc/mail/auth/client-info.dbCela restreint l'accès à ces fichiers.
Après avoir terminé ces étapes, vous aurez configuré l'authentification pour le relais SMTP. L'étape suivante consiste à modifier votre configuration Sendmail pour utiliser cette authentification lors de l'envoi d'e-mails via votre serveur SMTP.
Conseil: Sécurisation de vos informations d'authentification
Pour améliorer la sécurité, vous pouvez chiffrer votre fichier client-info :
-
Installez GPG :
sudo apt-get install gnupg -
Générez une clé GPG :
gpg --gen-key -
Chiffrez le fichier client-info :
gpg -e -r "Votre Nom" /etc/mail/auth/client-info -
Supprimez le fichier original :
sudo shred -u /etc/mail/auth/client-info
Cette approche ajoute un chiffrement à vos identifiants SMTP, les rendant plus sûrs.
Modification du fichier sendmail.mc
Ajout de la configuration SMTP
Pour configurer Sendmail afin qu'il utilise votre relais SMTP, vous devez modifier le fichier sendmail.mc. Ce fichier contient les paramètres principaux de Sendmail. Voici comment ajouter la configuration SMTP :
-
Ouvrez le fichier sendmail.mc :
sudo nano /etc/mail/sendmail.mc -
Ajoutez ces lignes avant la section MAILER_DEFINITIONS :
define(`SMART_HOST',`votre.serveur.smtp')dnl define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl FEATURE(`authinfo',`hash -o /etc/mail/auth/client-info.db')dnlRemplacez 'votre.serveur.smtp' par l'adresse de votre serveur SMTP.
-
Enregistrez et fermez le fichier.
Après avoir ajouté ces lignes, vous devez mettre à jour le fichier sendmail.cf. Sendmail lit ce fichier au démarrage. Pour le mettre à jour :
-
Exécutez cette commande :
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cfCette commande convertit le fichier sendmail.mc en sendmail.cf.
-
Redémarrez Sendmail pour appliquer les modifications :
sudo systemctl restart sendmail
Ces modifications indiquent à Sendmail d'utiliser votre serveur SMTP comme hôte intelligent, d'activer les méthodes d'authentification et d'utiliser les informations d'authentification que vous avez configurées précédemment.
Testez votre configuration après avoir effectué ces modifications pour vous assurer que Sendmail fonctionne correctementavec votre relais SMTP.
Conseil: Vérification de la configuration SMTP
Après avoir modifié le fichier sendmail.mc et redémarré Sendmail, vous pouvez vérifier la configuration SMTP en consultant les journaux de messagerie. Utilisez la commande suivante pour afficher les entrées de journal les plus récentes :
sudo tail -f /var/log/maillog
Recherchez les lignes indiquant une connexion réussie à votre serveur SMTP et tout message d'authentification. Cela peut vous aider à identifier s'il y a des problèmes avec votre configuration.
Redémarrage du service Sendmail
Application des modifications de configuration
Après avoir modifié votre configuration Sendmail, redémarrez le service Sendmail pour appliquer ces modifications. Voici comment procéder :
-
Redémarrez le démon Sendmail :
sudo systemctl restart sendmail -
Pour les anciennes versions d'Ubuntu, utilisez :
sudo service sendmail restart
Pour vérifier si Sendmail fonctionne avec les nouveaux paramètres :
-
Vérifiez l'état du service Sendmail :
sudo systemctl status sendmail -
Recherchez "Active: active (running)" dans la sortie.
-
Consultez les journaux Sendmail pour détecter les messages d'erreur :
sudo tail -f /var/log/mail.log -
Envoyez un e-mail de test pour confirmer la nouvelle configuration :
echo "E-mail de test" | sendmail -v votre_email@exemple.com -
Surveillez la file d'attente de messagerie pour voir si les e-mails sont en cours de traitement :
mailq
Si vous constatez des erreurs ou si les e-mails ne sont pas envoyés, vérifiez vos modifications de configuration et consultez les fichiers journaux pour plus d'informations.
Testez votre configuration Sendmail après toute modification de configuration pour vous assurer qu'elle fonctionne correctement.
Conseil: Dépannage des problèmes de démarrage de Sendmail
Si Sendmail ne démarre pas après les modifications de configuration, essayez ces étapes :
- Vérifiez les erreurs de syntaxe dans votre fichier de configuration :
sendmail -bt < /dev/null - Examinez le journal Sendmail pour des messages d'erreur spécifiques :
sudo grep sendmail /var/log/syslog - Vérifiez les permissions sur les fichiers de configuration :
sudo ls -l /etc/mail/sendmail.cf
Sécurisation de Sendmail sur Ubuntu
Bonnes pratiques pour la sécurité de Sendmail
Pour sécuriser votre installation Sendmail sur Ubuntu, suivez ces pratiques :
Configuration de SPF (Sender Policy Framework) :
-
Créez un enregistrement SPF dans les paramètres DNS de votre domaine :
v=spf1 ip4:adresse_ip_serveur ~allRemplacez "adresse_ip_serveur" par l'adresse IP de votre serveur.
-
Installez le filtre SPF :
sudo apt-get install spf-milter -
Ajoutez cette ligne à votre fichier sendmail.mc :
INPUT_MAIL_FILTER(`spf', `S=local:/var/run/spfd.sock, F=T, T=R:2m') -
Redémarrez Sendmail pour appliquer les modifications.
Configuration de DKIM (DomainKeys Identified Mail) :
-
Installez OpenDKIM :
sudo apt-get install opendkim opendkim-tools -
Générez les clés DKIM :
sudo opendkim-genkey -D /etc/dkimkeys/ -d votredomaine.com -s default -
Ajoutez ceci à votre fichier sendmail.mc :
INPUT_MAIL_FILTER(`opendkim', `S=local:/var/run/opendkim/opendkim.sock, F=T, T=R:2m') -
Configurez OpenDKIM et redémarrez le service.
Mise en œuvre de mesures anti-spam :
-
Installez SpamAssassin :
sudo apt-get install spamassassin -
Ajoutez ceci à votre fichier sendmail.mc :
MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m') -
Configurez SpamAssassin et redémarrez le service.
-
Mettez à jour vos règles de spam :
sudo sa-update
Reconstruisez votre fichier sendmail.cf et redémarrez Sendmail après avoir effectué ces modifications. Ces mesures contribuent à protéger votre système de messagerie contre le spam et les tentatives d'usurpation d'identité.
Conseil: Audits de sécurité réguliers
Effectuez des audits de sécurité sur votre configuration Sendmail :
-
Vérifiez les relais ouverts :
telnet localhost 25 HELO exemple.com MAIL FROM: test@exemple.com RCPT TO: test@exemple.comSi cela réussit, votre serveur pourrait être un relais ouvert.
-
Examinez vos listes de contrôle d'accès dans /etc/mail/access.
-
Maintenez votre système et Sendmail à jour avec les derniers correctifs de sécurité.





