Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:serveur:postfix [2023/05/14 07:56] – [PostFix : serveur de messagerie sous Linux] Cédric ABONNEL | informatique:serveur:postfix [2023/12/29 17:29] (Version actuelle) – [Configurer Let's Encrypt pour le renouvellement automatique] Cédric ABONNEL | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== PostFix : serveur de messagerie sous Linux ====== | ||
+ | {{ : | ||
+ | Cet article est destiné aux débutants qui veulent configurer un **serveur de messagerie électronique** de base. Il est préférable d' | ||
+ | |||
+ | Postfix est un logiciel de serveur de messagerie open source largement adopté. En tant que " | ||
+ | |||
+ | |||
+ | <nav stacked=" | ||
+ | <nspages .:postfix -h1 -hideNoSubns -subns -nbCol=1 -textNS=" | ||
+ | </ | ||
+ | |||
+ | ===== - Introduction ===== | ||
+ | |||
+ | L' | ||
+ | |||
+ | Le processus de l' | ||
+ | |||
+ | 1. L' | ||
+ | |||
+ | 2. Le courriel est ensuite remis au serveur SMTP local, qui se trouve sur la machine ou le serveur à partir duquel l' | ||
+ | |||
+ | 3. Le serveur SMTP analyse le domaine du destinataire (dans ce cas, " | ||
+ | |||
+ | 4. Le serveur SMTP établit un contact avec le serveur de messagerie de destination (le serveur SMTP de " | ||
+ | |||
+ | 5. Le serveur de messagerie de destination accepte le courriel, le stocke temporairement, | ||
+ | |||
+ | 6. Si tout se déroule sans problème, le courriel est ainsi livré avec succès à Alice, qui peut alors le consulter dans sa boîte de réception. | ||
+ | |||
+ | Ce processus est la façon dont le protocole SMTP assure la transmission de courriels, encheminant ces derniers de l' | ||
+ | |||
+ | ==== - Axe de travail ==== | ||
+ | |||
+ | Il existe de nombreuses configurations et combinaisons différentes possibles lors de la mise en place d'un serveur de messagerie électronique, | ||
+ | |||
+ | Dans ce contexte, nous utilisons **Postfix** comme agent de transfert de messagerie (MTA). **Dovecot** est utilisé pour permettre aux utilisateurs d' | ||
+ | |||
+ | Notre exemple suppose que le serveur de messagerie physique (hôte) porte le nom **mail.example.com** et est situé à l' | ||
+ | ==== - Serveurs SMTP ==== | ||
+ | |||
+ | Sous Linux Debian, il existe plusieurs programmes d' | ||
+ | |||
+ | 1. **ssmtp**: Simple SMTP est un programme léger qui permet d' | ||
+ | |||
+ | 2. **msmtp**: MSMTP est un autre client SMTP léger qui facilite l' | ||
+ | |||
+ | 3. **Postfix**: | ||
+ | |||
+ | 4. **sendmail**: | ||
+ | |||
+ | 5. **Exim**: Exim est un autre serveur de messagerie qui peut être configuré pour envoyer des courriels. Il est également capable de gérer la réception de courriels, ce qui en fait une option plus complète. | ||
+ | |||
+ | Le choix du programme d' | ||
+ | |||
+ | ===== - Installer Postfix ===== | ||
+ | |||
+ | Pour installer Postfix sur Debian, vous devez utiliser le gestionnaire de paquets APT (Advanced Package Tool). Voici comment vous pouvez procéder : | ||
+ | |||
+ | <code bash> | ||
+ | sudo apt update | ||
+ | sudo apt install postfix | ||
+ | </ | ||
+ | |||
+ | La première commande '' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Choisir '' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Entrer la valeur FQDN de votre adresse de serveur | ||
+ | |||
+ | {{: | ||
+ | |||
+ | si vous devez relancer la configuration de Postfix | ||
+ | sudo dpkg-reconfigure postfix | ||
+ | | ||
+ | Pour supprimer **Sendmail**, | ||
+ | <code bash> | ||
+ | sudo apt-get remove sendmail | ||
+ | </ | ||
+ | |||
+ | Cette commande supprime le programme **Sendmail** de votre système Debian. | ||
+ | |||
+ | Après avoir installé **Postfix**, | ||
+ | |||
+ | ===== - Configurer Postfix ===== | ||
+ | |||
+ | Les fichiers de configuration de postfix sont stockés dans / | ||
+ | |||
+ | < | ||
+ | myhostname = mail.example.com | ||
+ | mydomain = example.com | ||
+ | myorigin = $mydomain | ||
+ | inet_interfaces = all | ||
+ | mydestination = $myhostname, | ||
+ | mynetworks = 192.168.0.0/ | ||
+ | relay_domains = | ||
+ | home_mailbox = Maildir/ | ||
+ | </ | ||
+ | ===== - Tests ===== | ||
+ | |||
+ | |||
+ | Faire un essai d' | ||
+ | echo "Le contenu du mail" | mail -s "ceci est le sujet" mail@domaine.tld | ||
+ | |||
+ | Le programme **mail** est une composante du package **mailutils**. Donc, si le programme n'est pas installer sur la machine, utilisez '' | ||
+ | |||
+ | -- | ||
+ | |||
+ | Pour modifier un paramètre dans **Postfix**, | ||
+ | sudo nano / | ||
+ | | ||
+ | Redémarrer le service | ||
+ | sudo systemctl restart postfix | ||
+ | | ||
+ | | ||
+ | |||
+ | |||
+ | ===== Gestion des Alias ===== | ||
+ | |||
+ | Ajouter dans le fichier de configuration de **Postfix**, | ||
+ | |||
+ | virtual_alias_maps = hash:/ | ||
+ | | ||
+ | Puis ajouter dans le fichier ''/ | ||
+ | < | ||
+ | @monserveur.tld mail@domain.tld | ||
+ | </ | ||
+ | |||
+ | Enfin, exécuter le bloc suivant. Il sera nécessaire de l’exécuter à chaque modifications effectuées du fichier ''/ | ||
+ | sudo postmap / | ||
+ | sudo systemctl restart postfix | ||
+ | |||
+ | ===== Mails en attente ===== | ||
+ | |||
+ | Pour connaître les mails en attente | ||
+ | sudo postqueue -p | ||
+ | |||
+ | -- | ||
+ | |||
+ | Pour traiter tous les mails en attente | ||
+ | sudo postqueue -f | ||
+ | |||
+ | -- | ||
+ | |||
+ | Pour supprimer tous les mails en attente | ||
+ | sudo postsuper -d ALL | ||
+ | |||
+ | ===== Reprise de la configuration de Postfix ===== | ||
+ | |||
+ | Le fichier de configuration de **Postfix** est ''/ | ||
+ | |||
+ | --- | ||
+ | |||
+ | myhostname = myserver.example.com | ||
+ | |||
+ | Il est important que l' | ||
+ | nslookup 91.134.243.56 | ||
+ | |||
+ | | {{: | ||
+ | | ||
+ | Dans l' | ||
+ | |||
+ | Cette information est gérée par le serveur DNS | ||
+ | |||
+ | Cette option se trouve les paramètres '' | ||
+ | | {{: | ||
+ | |||
+ | Cette option, **reverse DNS**, se trouve dans les options du **serveur VPS** de vos **serveurs dédiés**, chez **ovh.com** | ||
+ | |||
+ | | {{: | ||
+ | |||
+ | | {{: | ||
+ | |||
+ | --- | ||
+ | |||
+ | Configurer le **nom du serveur SMTP**, domaine à afficher dans le courrier sortant | ||
+ | |||
+ | myorigin = example.com | ||
+ | |||
+ | Configuer le **nom du serveur SMTP** | ||
+ | |||
+ | mydomain = example.com | ||
+ | |||
+ | Configure to which SMTP domains to relay messages to, for example: | ||
+ | |||
+ | relay_domains = example.com | ||
+ | |||
+ | |||
+ | |||
+ | --- | ||
+ | |||
+ | Configuration minimaliste du SMTP Greeting Banner: | ||
+ | |||
+ | smtpd_banner = $myhostname | ||
+ | |||
+ | --- | ||
+ | |||
+ | Limiter les attaques par déni de services : | ||
+ | |||
+ | < | ||
+ | default_process_limit = 100 | ||
+ | smtpd_client_connection_count_limit = 10 | ||
+ | smtpd_client_connection_rate_limit = 30 | ||
+ | queue_minfree = 20971520 | ||
+ | header_size_limit = 51200 | ||
+ | message_size_limit = 10485760 | ||
+ | smtpd_recipient_limit = 100 | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Consulter le fichier log ===== | ||
+ | |||
+ | Le fichier log standard de **postfix** est ''/ | ||
+ | |||
+ | Vous pouvez garder un oeuil sur les logs | ||
+ | sudo tail -f / | ||
+ | | ||
+ | | ||
+ | ===== Envoyer un mail ===== | ||
+ | |||
+ | Il y a deux possibilités : | ||
+ | * envoie depuis un client : **mail** | ||
+ | * connexion en **Telnet** sur le serveur SMTP | ||
+ | |||
+ | L' | ||
+ | sudo apt install mailutils | ||
+ | |||
+ | --- | ||
+ | |||
+ | Utilisation de l' | ||
+ | |||
+ | Pour envoyer un mail à '' | ||
+ | echo "This is the message body" | mail -s "This is the subject" | ||
+ | | ||
+ | Pour envoyer un mail à '' | ||
+ | echo "This is the message body" | mail -s "Hello World" username | ||
+ | |||
+ | --- | ||
+ | |||
+ | Utilisation de **telnet** pour se connecter sur le serveur SMTP '' | ||
+ | |||
+ | telnet mail.mymailserver.com 25 | ||
+ | | ||
+ | Puis saisir les commandes SMTP | ||
+ | |||
+ | EHLO checkeremail.com | ||
+ | |||
+ | |||
+ | |||
+ | MAIL FROM:< | ||
+ | |||
+ | |||
+ | |||
+ | RCPT TO:< | ||
+ | |||
+ | |||
+ | |||
+ | DATA | ||
+ | Subject: Sending an email using telnet | ||
+ | Hello, | ||
+ | Here is my body? Do you like it? | ||
+ | Cédric | ||
+ | . | ||
+ | |||
+ | QUIT | ||
+ | |||
+ | |||
+ | ===== Vider tous les mails ===== | ||
+ | |||
+ | Vider tous les mails présents dans la boite d'un utilisateur. On considère que la boite mail (mbox) de l' | ||
+ | |||
+ | sudo sh -c "> / | ||
+ | |||
+ | |||
+ | |||
+ | ===== Gestion des certificats ===== | ||
+ | |||
+ | Pour configurer **Postfix** et **Certbot** pour utiliser les certificats SSL/TLS de " | ||
+ | |||
+ | ==== Configurer Postfix pour utiliser SSL/TLS ==== | ||
+ | |||
+ | 1. **Accédez à la configuration de Postfix**: | ||
+ | * Connectez-vous à votre serveur en tant que sudouser. | ||
+ | * Ouvrez le fichier de configuration principal de Postfix avec un éditeur de texte, tel que '' | ||
+ | |||
+ | 2. **Définissez les chemins des certificats**: | ||
+ | * Localisez ou ajoutez les lignes suivantes dans '' | ||
+ | < | ||
+ | smtpd_tls_cert_file = / | ||
+ | smtpd_tls_key_file = / | ||
+ | </ | ||
+ | * Activez l' | ||
+ | < | ||
+ | smtpd_use_tls = yes | ||
+ | </ | ||
+ | |||
+ | 3. **Redémarrez Postfix**: | ||
+ | * Sauvegardez vos modifications et fermez le fichier. | ||
+ | * Exécutez la commande '' | ||
+ | |||
+ | ==== Configurer Dovecot pour SSL/TLS ==== | ||
+ | |||
+ | Si vous utilisez Dovecot comme serveur IMAP/POP3 : | ||
+ | |||
+ | 1. Les fichiers de configuration de **Dovecot** se trouvent généralement dans ''/ | ||
+ | |||
+ | 2. Dans les fichiers de configuration de **Dovecot**, | ||
+ | |||
+ | < | ||
+ | ssl_cert = </ | ||
+ | ssl_key = </ | ||
+ | </ | ||
+ | |||
+ | Pensez à désactiver la configuration présente dans ''/ | ||
+ | |||
+ | 3. **Redémarrez Dovecot** avec '' | ||
+ | |||
+ | 4. Après le redémarrage, | ||
+ | |||
+ | < | ||
+ | openssl s_client -connect smtp.serveur.fr: | ||
+ | </ | ||
+ | ==== Configurer Let's Encrypt pour le renouvellement automatique ==== | ||
+ | |||
+ | 1. **Certbot** gère généralement les renouvellements automatiquement. Cependant, vous pouvez personnaliser ou ajouter des scripts de renouvellement dans le dossier de hooks de renouvellement. | ||
+ | |||
+ | 2. **Scripts de renewal-hooks**: | ||
+ | |||
+ | * Placez les scripts personnalisés dans ''/ | ||
+ | * Un script typique dans '' | ||
+ | |||
+ | Voir les pages : | ||
+ | * [[informatique: | ||
+ | * [[informatique: | ||
+ | |||
+ | Si vous avez deux scripts distincts, '' | ||
+ | |||
+ | Vous devriez ajouter des lignes pour post_hook dans la section '' | ||
+ | |||
+ | < | ||
+ | [renewalparams] | ||
+ | post_hook = / | ||
+ | </ | ||
+ | |||
+ | 3. **Tester le renouvellement**: | ||
+ | * Exécutez '' | ||
+ | |||
+ | ==== Vérification et maintenance ==== | ||
+ | |||
+ | * **Vérifiez les logs** de **Postfix** et **Dovecot** pour les erreurs liées aux certificats SSL/TLS. | ||
+ | * Assurez-vous que les certificats se renouvellent correctement en vérifiant les dates d' | ||
+ | |||
+ | ==== Remarques ==== | ||
+ | |||
+ | * Faites toujours une copie de sauvegarde des fichiers de configuration avant de les modifier. | ||
+ | * Les chemins exacts et les commandes peuvent varier légèrement en fonction de votre distribution Linux et de la version de vos logiciels. | ||
+ | * Assurez-vous que les ports nécessaires sont ouverts sur votre pare-feu pour permettre les connexions TLS/SSL. | ||
+ | |||
+ | En suivant ces étapes, vous devriez être capable de configurer **Postfix** et **Dovecot** pour utiliser les certificats SSL/TLS avec **Let' | ||
+ | |||
+ | |||
+ | ===== Biblio ===== | ||
+ | |||
+ | * https:// | ||
+ | * https:// |