Si vous souhaitez envoyer ou recevoir un e-mail, vous devez disposer d’un serveur de messagerie. Dans cet article, nous discuterons du serveur de messagerie Linux et du fonctionnement du protocole SMTP (Simple Mail Transfer Protocol) ainsi que d’autres protocoles liés au courrier, tels que Post Office Protocol (POP) et Internet Message Access Protocol (IMAP) et la relation entre eux.,
Table des matières
Serveur SMTP Linux
SMTP définit comment envoyer du courrier d’un hôte à un autre; il est également indépendant du système, ce qui signifie que l’expéditeur et le destinataire peuvent avoir des systèmes d’exploitation différents.
SMTP nécessite seulement qu’un serveur puisse envoyer du texte ASCII direct à un autre serveur, vous pouvez le faire en vous connectant au serveur sur le port 25, qui est le port SMTP standard.
La plupart des distributions Linux sont aujourd’hui livrées avec deux des implémentations les plus courantes de SMTP, qui sont sendmail et Postfix.,
Sendmail est un serveur de messagerie célèbre et gratuit, mais il a un design un peu complexe et moins sécurisé.
Postfix a poussé la mise en œuvre du serveur de messagerie un peu plus loin; ils l’ont développé avec la sécurité à l’esprit.
Composants du service de messagerie
Le service de messagerie sur tout serveur de messagerie a trois composants:
Agent utilisateur de messagerie (MUA): ce composant que l’utilisateur voit et interagit avec comme Thunderbird et Microsoft Outlook, ces agents utilisateurs sont responsables de la lecture du courrier et vous permettent de composer du courrier.,
Mail transport agent (MTA): ce composant est responsable de l’acheminement du courrier d’un site à un autre comme Sendmail et Postfix.
Mail delivery agent (MDA): ce composant est responsable de la distribution des messages reçus sur la machine locale à la boîte aux lettres utilisateur appropriée comme postfix-maildrop et Procmail.
Configuration du serveur de Messagerie
Nous avons choisi le serveur de messagerie Postfix, qui est très populaire et commune parmi les administrateurs système aujourd’hui.
Postfix est le serveur de messagerie par défaut sur la plupart des distributions Linux modernes.,
tout d’Abord, vérifier s’il est installé sur votre système ou pas:
$ rpm -qa | grep postfix
Si il n’est pas installé, vous pouvez installer le serveur de messagerie Postfix sur Red Hat en fonction des distributions comme ceci:
$ dnf -y install postfix
Puis démarrez le service postfix et l’activer au démarrage du système:
$ systemctl start postfix$ systemctl enable postfix
Sur les distributions basées sur Debian, comme Ubuntu, vous pouvez l’installer comme ceci:
$ apt-get -y install postfix
Il va vous demander de sélectionner le type de configuration du serveur de messagerie Postfix pendant le processus d’installation.,
parmi les quatre choix aucune configuration, site Internet, Internet avec smarthost, système Satellite, et Local seulement, nous choisirons aucune option de configuration.
Configurer le serveur de courrier Linux
Après l’installation du serveur de messagerie Postfix, vous devrez le configurer; vous pouvez trouver la plupart de ses fichiers de configuration dans /etc/postfix/ répertoire.
Vous pouvez trouver la configuration principale du serveur de messagerie Postfix dans le fichier /etc/postfix/main.cf.,
Ce fichier contient beaucoup d’options comme:
mon nom d’hôte
Vous pouvez utiliser cette option pour spécifier le nom d’hôte du serveur de messagerie. Il s’agit du nom d’hôte Internet, sur lequel Postfix recevra des e-mails.
Les noms d’hôte pourraient être comme mail.example.com, smtp.example.com.
myhostname = mail.example.com
mydomain
Cette option est le domaine de messagerie que vous allez desservir, comme example.com
La syntaxe est la suivante:
mydomain = example.com
myorigin
Tous les e-mails envoyés depuis ce serveur de messagerie sembleront provenir de cette option., Vous pouvez définir cette valeur sur my mydomain.
myorigin = $mydomain
Vous pouvez utiliser n’importe quelle valeur d’option, juste la précéder d’un my comme my mydomain.
madestination
Cette option répertorie les domaines que le serveur Postfix utilise pour les e-mails entrants.
Il peut prendre des valeurs comme ceci:
mydestination = $myhostname, localhost.$mydomain, $mydomain, mail.$mydomain, www.$mydomain
mail_spool_directory
Il existe deux modes de livraison que le serveur de messagerie Postfix pouvez utiliser:
- Directement à un utilisateur de boîte aux lettres.
- Pour une centrale répertoire de spool, de cette façon, l’e-mail sera dans /var/spool/mail avec un fichier pour chaque utilisateur.,
mail_spool_directory = /var/spool/mail
mynetworks
Cette option vous permet de configurer quels serveurs peuvent relayer via votre serveur Postfix.
Cette option devrait prendre des adresses locales comme les scripts de messagerie locaux sur votre serveur uniquement.
Sinon, les spammeurs peuvent utiliser votre serveur de messagerie pour relayer leurs messages et votre serveur de messagerie mis sur liste noire et par conséquent, vous ne serez pas en mesure de recevoir de nombreux e-mails.,
Cette option a la syntaxe suivante:
mynetworks = 127.0.0.0/8, 192.168.1.0/24
smtpd_banner
Cette variable définit le message que le serveur va envoyer lorsque le client après une connexion réussie.
Il est préférable de changer la bannière en quelque chose qui ne donne aucune idée du serveur que vous utilisez.
inet_protocols
Cette option spécifie la version du protocole IP utilisée pour les connexions au serveur.,
inet_protocols = ipv4
Si vous modifiez les fichiers de configuration pour le serveur de messagerie Postfix, vous avez besoin de recharger le service:
$ systemctl reload postfix
Lorsque vous tapez n’importe quelle configuration, vous pouvez faire une erreur, vous pouvez vérifier les erreurs à l’aide de la commande suivante:
$ postfix check
Cet outil vous aidera à trouver exactement la ligne de l’erreur vous permettant de corriger cela.
contrôle de la file d’attente du courrier
Parfois, les files d’attente de messages sont remplis avec des messages. Cela se produit pour de nombreuses raisons, comme une défaillance du réseau ou toute raison pouvant retarder la livraison du courrier.,
Pour vérifier la file d’attente des messages sur votre serveur de courrier Linux, utilisez la commande suivante:
$ mailq
Cette commande affiche la file d’attente de messagerie Postfix.
Si votre file d’attente est remplie et le message prend plusieurs heures, alors vous devez vider la file d’attente des messages.
$ postfix flush
Maintenant, si vous vérifiez votre file d’attente de messagerie, vous devriez la trouver vide.
Tester le serveur de messagerie Linux
Après avoir configuré correctement le serveur de messagerie Postfix, vous devez tester votre serveur de messagerie.,
la première étape consiste à utiliser un agent utilisateur de messagerie local comme mailx ou mail, qui est un lien symbolique vers mailx.
Essayez d’envoyer un mail à quelqu’un d’autre sur le même serveur, si cela fonctionne, puis de l’envoyer vers un site distant.
ensuite, essayez de recevoir un courrier d’un site distant.
Si vous avez des problèmes, vérifiez les journaux. Le fichier journal sur Red Hat en fonction des distributions dans /var/log/maillog fichier et sur les distributions basées sur Debian dans /var/log/mail.fichier journal ou tel que défini dans la configuration rsyslogd.,
je vous recommande de consulter le serveur Syslog Linux pour une explication détaillée sur les journaux et comment configurer le rsyslogd.
Si vous avez encore des problèmes, essayez de vérifier vos paramètres DNS et vérifiez vos enregistrements MX à l’aide des commandes réseau Linux.
sécuriser les boîtes aux lettres du spam à L’aide de SpamAssassin
l’un des moyens de lutter contre le spam est de scanner les boîtes aux lettres par un outil, à la recherche de certains modèles associés au spam.
L’une des meilleures solutions est SpamAssassin, qui est open-source.,
Vous pouvez l’installer comme ceci:
$ dnf -y install spamassassin
Puis démarrer le service et l’activer au démarrage:
$ systemctl start spamassassin$ systemctl enable spamassassin
une Fois que vous avez installé, vous pouvez vérifier la configuration:
/etc/mail/spamassassin/local.cf
fichier.
SpamAssassin détermine si un e-mail est un spam ou non en fonction du résultat des différents scores de scripts.
Si le message a un score plus élevé, cela signifie une plus grande possibilité que le courrier soit du spam.,
dans le fichier de configuration, le paramètre required_hits 5 indique que SpamAssassin marquera un e-mail comme spam si son score est de cinq ou plus.
l’option report_safe prend les valeurs 0, 1 ou 2. S’il est défini sur 0, cela signifie que l’e-mail marqué comme spam est envoyé tel quel, en modifiant uniquement les en-têtes pour montrer qu’il s’agit de spam.
Si elle prend la valeur 1 ou 2, SpamAssassin génère un nouveau message de rapport, et il envoie le message au destinataire.,
La valeur 1 signifie que le message de spam est codé en tant que message de contenu/rfc822, tandis que si la valeur est 2, cela signifie que le message est codé en tant que texte/contenu simple.
Le text/plain est plus sûr car certains clients de messagerie exécutent le message/rfc822 et pourraient infecter l’ordinateur client.
Maintenant, nous devons l’intégrer dans Postfix. La façon la plus simple de le faire est probablement d’utiliser procmail.
Nous allons créer un fichier nommé
/etc/procmailrc
et ajoutez le contenu suivant:
:0 hbfw| /usr/bin/spamc
Ensuite, nous éditons fichier de configuration de Postfix /etc/postfix/main.,cf and change
mailbox_command
mailbox_command = /usr/bin/procmail
Enfin, redémarrez les services Postfix et SpamAssassin:
$ systemctl restart postfix$ systemctl restart spamassassin
Cependant, SpamAssassin ne reconnaît parfois pas les messages de spam qui ont conduit à des boîtes aux lettres remplies de messages de spam.
Heureusement, vous pouvez filtrer les messages avant qu’ils n’entrent dans le serveur Postfix à l’aide de listes Blackhole en temps réel (RBL). Cela diminuera la charge sur votre serveur de messagerie et gardera votre serveur de messagerie propre.
Ouvrez le fichier de configuration du serveur Postfix/etc/postfix / main.,cf et modifiez l’option smtpd_recipient_restrictions et ajoutez les options suivantes comme ceci:
Puis redémarrez votre serveur postfix:
$ systemctl restart postfix
Les RBL ci-dessus sont les plus courants; vous pouvez trouver plus de listes sur le Web et les essayer.
Sécurisation de la connexion SMTP
Il est préférable de transférer votre trafic SMTP sur TLS pour le protéger de l’attaque Man In The Middle (MITM).
Tout d’abord, nous devons générer le certificat et la clé à l’aide de la commande openssl:
Ajoutez ensuite l’option suivante au fichier de configuration Postfix/etc/postfix / main.,cf:
Enfin, redémarrez votre service postfix:
$ systemctl restart postfix
Maintenant, vous devez choisir le protocole TLS sur votre client lors de la connexion au serveur.
Vous recevrez un avertissement lorsque vous envoyez un mail la première fois après avoir modifié le paramètre car le certificat n’est pas signé.
utilisation des certificats Let’s Encrypt
Let’s Encrypt est un fournisseur de certificats SSL gratuit qui vous permet de crypter votre trafic.
Au lieu d’utiliser des certificats auto-signés qui incitent vos utilisateurs à leur faire confiance, vous pouvez utiliser cette bonne solution.,
tout d’Abord, installez letsencrypt:
$ yum install letsencrypt
Ou si vous utilisez distro basée sur Debian, vous pouvez utiliser la commande suivante:
$ apt-get install letsencrypt
Ensuite, exécutez letsencrypt comme ceci:
$ letsencrypt certonly --standalone -d yourdomain.com
Vous devez remplacer yourdomain.com avec votre domaine.
Après avoir répondu aux questions sur l’e-mail de contact, le domaine du serveur de messagerie et la licence, tout devrait être OK maintenant.,
Les certificats seront de:
/etc/letsencrypt/live/yourdomain.com/
Une dernière chose que vous avez à faire, c’est faire de postfix utilisation de ces certificats, vous pouvez utiliser les commandes suivantes:
N’oubliez pas de remplacer yourdomain.com avec votre domaine.
Enfin, redémarrez votre serveur postfix:
$ systemctl restart postfix
Bases du protocole POP3 et IMAP
Jusqu’à présent, nous avons vu comment le serveur de messagerie SMTP envoie et reçoit des e-mails sans problème, mais considérons les situations suivantes:
- Les utilisateurs ont besoin de copies locales,
- le format de fichier mbox n’est pas pris en charge. Le format mbox est utilisé par de nombreux agents utilisateurs de messagerie comme mailx et mutt.
- Les utilisateurs ne peuvent pas rester connectés à un réseau rapide pour récupérer une copie locale à lire hors ligne.
- certains serveurs de messagerie ne donnent pas accès aux répertoires de spool de messagerie partagés pour des raisons de sécurité.
pour gérer ces cas, vous devez utiliser les protocoles d’accès au courrier.
Les deux protocoles d’accès au courrier les plus courants sont Post Office Protocol (POP) et Internet Message Access Protocol (IMAP).,
L’idée derrière POP est très simple: un serveur de messagerie Linux central reste en ligne tout le temps et reçoit et stocke des e-mails pour tous les utilisateurs. Tous les e-mails reçus sont mis en file d’attente sur le serveur jusqu’à ce qu’un utilisateur les saisit.
Lorsqu’un utilisateur souhaite envoyer un e-mail, le client de messagerie le relaie via le serveur de messagerie Linux central via SMTP normalement.
Notez que le serveur SMTP et le serveur POP peuvent être sur le même système sans aucun problème. La plupart des serveurs aujourd’hui.
Des fonctionnalités telles que la conservation d’une copie principale de l’e-mail d’un utilisateur sur le serveur étaient manquantes, ce qui a conduit au développement d’IMAP.,
en utilisant IMAP, votre serveur de messagerie Linux prend en charge trois modes d’accès:
- Le mode en ligne est similaire à un accès direct au système de fichiers au serveur de messagerie Linux.
- Le mode hors ligne est similaire au fonctionnement de POP, où le client est déconnecté du réseau sauf lors de la saisie d’un e-mail. Dans ce mode, le serveur ne conserve normalement pas de copie de l’e-mail.
- Le mode déconnecté fonctionne en permettant aux utilisateurs de conserver des copies en cache de leurs e-mails, et le serveur conserve une copie de l’e-mail.,
Il existe plusieurs implémentations pour IMAP et POP; la plus populaire est le serveur Dovecot, qui fournit les deux protocoles.
POP3, POP3S, IMAP et IMAP écoutent sur les ports 110, 995, 143 et 993 respectivement.
Installation de Dovecot
La plupart des distributions Linux sont fournies avec Dovecot préinstallé., Cependant, vous pouvez installer Dovecot dans les distributions basées sur Red Hat comme ceci:
$ dnf -y install dovecot
Les distributions basées sur Debian fournissent les fonctionnalités IMAP et POP3 dans deux paquets distincts, vous pouvez les installer comme ceci:
$ apt-get -y install dovecot-imapd dovecot-pop3d
Il vous demandera de créer des certificats auto-signés pour utiliser IMAP et POP3 sur SSL / TLS. Sélectionnez Oui et entrez le nom d’hôte de votre système lorsque vous y êtes invité.,
Ensuite, vous pouvez exécuter le service et l’activer au démarrage comme ceci:
$ systemctl start dovecot$ systemctl enable dovecot
Configurer Dovecot
Le fichier principal de configuration de Dovecot est
/etc/dovecot/dovecot.conf
fichier.
Certaines distributions Linux mettre la configuration sous
/etc/dovecot/conf.d/
le répertoire et l’utilisation de la directive include pour inclure les paramètres dans les fichiers.
Vous pouvez utiliser la liste suivante de paramètres à configurer Dovecot:
protocoles: les protocoles que vous voulez soutenir.
protocols = imap pop3 lmtp
lmtp signifie protocole de transfert de courrier.,
listen: adresses IP à écouter.
listen = *, ::
L’astérisque signifie que toutes les interfaces ipv4 et :: toutes les interfaces ipv6
userdb: base de données utilisateur pour l’authentification des utilisateurs.
userdb {driver = pam}
passdb: base de données de mots de passe pour authentifier les utilisateurs.
passdb {driver = passwd}
mail_location: cette entrée dans /etc/dovecot/conf.D / 10-courrier.fichier conf:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Secure Dovecot
Dovecot est livré avec des certificats SSL génériques et des fichiers de clés., Regardez ce fichier:
/etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/pki/dovecot/certs/dovecot.pemssl_key = </etc/pki/dovecot/private/dovecot.pem
Lorsqu’un utilisateur essaie de se connecter au serveur dovecot, il affichera un avertissement parce que les certificats ne sont pas signés, vous pouvez acheter un certificat auprès d’une autorité de certification, si vous voulez.
Ou si vous utilisez Let’s Encrypt certificates, vous pouvez les pointer à la place:
ssl_cert = </etc/letsencrypt/live/yourdomain.com/fullchain.pemssl_key = </etc/letsencrypt/live/yourdomain.com/privkey.pem
N’oubliez pas d’ouvrir les ports dovecot server dans votre pare-feu iptables en ajoutant des règles iptables pour les ports 110, 995, 143, 993, 25.
Puis enregistrer les règles.,
ou si vous utilisez firewalld, vous pouvez faire ce qui suit:
et encore une fois, pour le dépannage, vous vérifiez les fichiers journaux/var/log /messages,/var/log /maillog et/var/log / mail.les fichiers journaux.
Linux mail server est l’un des serveurs les plus faciles à utiliser, en particulier le serveur de messagerie Postfix.
j’espère que vous trouverez le post utile et intéressant. Garder de revenir.
je vous Remercie.
Fondateur de LikeGeeks. Je travaille comme administrateur système Linux depuis 2010., Je suis responsable de la maintenance, de la sécurisation et du dépannage des serveurs Linux pour plusieurs clients à travers le monde. J’adore écrire des scripts shell et Python pour automatiser mon travail.
Laisser un commentaire