Paramètres de sécurité de base
Avant d'aborder les mesures de sécurité avancées, nous devons nous assurer que les paramètres de base sont corrects. Cela inclut la limitation de l'accès au serveur Postfix. Dans le fichier /etc/postfix/main.cf
vous devriez ajouter ou adapter les lignes suivantes :
inet_interfaces = loopback-only mynetworks = 127.0.0.0/8 [::1]/128
Ces paramètres limitent l'accès à l'hôte local et empêchent l'utilisation abusive du serveur comme relais ouvert. Un relais ouvert peut être utilisé par des spammeurs pour envoyer des e-mails non sollicités, ce qui peut fortement nuire à la réputation de votre serveur. Il est donc crucial de mettre en place cette protection de base.
Activer le cryptage TLS
L'utilisation de TLS (Transport Layer Security) est indispensable pour garantir la confidentialité des communications par e-mail. Ajoutez les lignes suivantes dans le main.cf
-dans le fichier de données :
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_security_level = may smtp_tls_security_level = may
Ces paramètres activent TLS pour les connexions entrantes et sortantes. Assurez-vous d'utiliser des certificats SSL valides, idéalement d'une autorité de certification (AC) fiable. Un TLS correctement implémenté protège vos e-mails contre les écoutes et les manipulations pendant la transmission. Pour plus d'informations sur la configuration TLS, consultez la [documentation Postfix] officielle(https://www.postfix.org/TLS_README.html).
Configurer l'authentification SASL
La Simple Authentication and Security Layer (SASL) offre une couche de sécurité supplémentaire. Ajoutez ces lignes à la main.cf
s'ajoutent :
smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname
Cette configuration suppose que vous utilisez Dovecot comme fournisseur SASL. Ajustez les paramètres en conséquence si vous utilisez un autre fournisseur. L'authentification SASL empêche les utilisateurs non autorisés d'envoyer des e-mails via votre serveur, ce qui augmente considérablement la sécurité.
Protection contre les attaques par déni de service
Pour protéger votre serveur contre la surcharge, vous pouvez fixer des limites de connexion. Ajoutez ces lignes à la main.cf
s'ajoutent :
smtpd_client_connection_rate_limit = 50 smtpd_client_message_rate_limit = 100 anvil_rate_time_unit = 60s
Ces paramètres limitent le nombre de connexions et de messages qu'un client peut envoyer par minute. Cette limitation permet d'éviter que votre serveur ne soit surchargé par des demandes massives ou des courriers indésirables. Il s'agit d'une étape importante pour garantir la disponibilité de votre serveur de messagerie.
Mettre en œuvre des restrictions HELO/EHLO
De nombreux expéditeurs de spam utilisent des noms d'hôtes HELO/EHLO non valides ou falsifiés. Les paramètres suivants permettent de bloquer de telles connexions :
smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname
Ces règles exigent un nom d'hôte HELO/EHLO valide et refusent les connexions avec des noms de domaine non valides ou pas entièrement qualifiés. Il est ainsi plus difficile pour les spammeurs d'envoyer des courriels falsifiés, car ils doivent fournir des informations HELO/EHLO correctes.
Introduire des restrictions sur les chaînes
Pour éviter l'utilisation abusive de votre serveur, vous pouvez définir des restrictions pour les expéditeurs :
smtpd_sender_restrictions = permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining
Ces règles rejettent les e-mails provenant d'adresses d'expéditeur non entièrement qualifiées ou de domaines d'expéditeur inconnus. Cela réduit la probabilité que votre serveur soit utilisé pour du spam ou du phishing, tout en améliorant la qualité globale des e-mails reçus.
Configurer les restrictions des destinataires
Comme pour les restrictions de l'expéditeur, vous pouvez également définir des règles pour les destinataires :
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_non_fqdn_recipient, reject_unknown_recipient_domain
Ces paramètres empêchent que votre serveur soit utilisé comme relais pour des destinations non autorisées et refusent les e-mails envoyés à des adresses de destinataires non valides. Cela renforce encore la sécurité de votre serveur tout en garantissant l'intégrité des communications par e-mail.
Mettre en œuvre le greylisting
Le greylisting est une méthode efficace pour réduire le spam. Installez d'abord le paquet Postgrey :
sudo apt install postgrey
Ajoutez ensuite la ligne suivante à la main.cf
s'ajoutent :
smtpd_recipient_restrictions = ... (paramètres existants) check_policy_service unix:private/postgrey
Cette configuration transmet d'abord les e-mails entrants au service Postgrey, qui génère des rejets temporaires pour les expéditeurs inconnus. Les serveurs de messagerie qui envoient des courriers légitimes tentent à nouveau la livraison après un délai, ce qui permet d'exclure efficacement les expéditeurs de spam qui n'essaient souvent d'envoyer qu'une seule fois.
Activer la vérification du SPF
Le Sender Policy Framework (SPF) permet d'éviter l'usurpation d'adresse électronique. Installez d'abord le paquet nécessaire :
sudo apt install postfix-policyd-spf-python
Ajoutez ensuite ces lignes à la main.cf
s'ajoutent :
policyd-spf_time_limit = 3600s smtpd_recipient_restrictions = ... (paramètres existants) check_policy_service unix:private/policyd-spf
Cette configuration active la vérification SPF pour les e-mails entrants. SPF vérifie si l'e-mail a été envoyé par un serveur autorisé pour le domaine spécifié, ce qui aide à prévenir l'usurpation et à augmenter la crédibilité de vos communications par e-mail.
Mettre en œuvre la signature DKIM
DomainKeys Identified Mail (DKIM) ajoute une signature numérique aux e-mails sortants. Installez d'abord OpenDKIM :
sudo apt install opendkim opendkim-tools
Ensuite, configurez OpenDKIM et ajoutez ces lignes à la liste de diffusion. main.cf
s'ajoutent :
milter_protocol = 2 milter_default_action = accept smtpd_milters = unix:/var/run/opendkim/opendkim.sock non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock
Ces paramètres activent la signature DKIM pour les e-mails sortants. DKIM augmente la sécurité en garantissant que les e-mails n'ont pas été modifiés à leur insu et renforce la confiance dans l'authenticité des messages.
Mettre en place des politiques DMARC
Domain-based Message Authentication, Reporting and Conformance (DMARC) s'appuie sur SPF et DKIM. Ajoutez un enregistrement DNS DMARC pour votre domaine et installez OpenDMARC :
sudo apt install opendmarc
Configurez l'OpenDMARC et ajoutez cette ligne à la liste de diffusion. main.cf
s'ajoutent :
smtpd_milters = ... (paramètres existants), inet:localhost:8893
Cette configuration active la vérification DMARC pour les e-mails entrants. DMARC permet aux propriétaires de domaines de définir des politiques sur la manière dont les serveurs de réception doivent gérer les échecs de vérification SPF ou DKIM, et fournit des rapports détaillés sur l'authentification du courrier électronique.
Mises à jour et surveillance régulières
La sécurité est un processus continu. Veillez à mettre régulièrement à jour votre système Postfix :
sudo apt update sudo apt upgrade
Surveillez également les journaux Postfix pour toute activité suspecte :
tail -f /var/log/mail.log
Des mises à jour régulières comblent les failles de sécurité connues et améliorent la stabilité de votre serveur de messagerie. La surveillance continue des logs vous permet de détecter rapidement toute activité inhabituelle et d'y réagir rapidement.
Mesures d'amélioration de la sécurité
Outre les mesures de sécurité de base et avancées, il existe des mesures supplémentaires que vous pouvez prendre pour renforcer encore la sécurité de votre serveur Postfix :
Configuration du pare-feu
Assurez-vous que votre pare-feu n'a ouvert que les ports nécessaires pour le serveur de messagerie. Il s'agit typiquement du port 25 (SMTP), du port 587 (soumission) et du port 993 (IMAP via SSL). Utilisez des outils tels que ufw
ou iptables
Pour contrôler l'accès à ces ports et bloquer les connexions indésirables, vous pouvez utiliser la fonction "bloquer les connexions indésirables".
Systèmes de détection d'intrusion (IDS)
Mettre en place un système de détection d'intrusion comme Fail2Ban
L'outil de détection des échecs de connexion permet de détecter les échecs de connexion répétés et de bloquer automatiquement les adresses IP qui ont un comportement suspect. Cela réduit le risque d'attaques par force brute sur votre serveur de messagerie.
Sauvegardes et restauration
Effectuez des sauvegardes régulières de vos fichiers de configuration et de vos données importantes. En cas d'incident de sécurité, vous pouvez ainsi restaurer rapidement et minimiser les interruptions de service. Stockez les sauvegardes dans un endroit sûr et vérifiez régulièrement l'intégrité des données de sauvegarde.
Gestion des utilisateurs et des droits
Gérez les comptes d'utilisateurs avec soin et n'attribuez que les droits nécessaires. Utilisez des mots de passe forts et envisagez d'implémenter l'authentification à facteurs multiples (MFA) pour sécuriser davantage l'accès au serveur de messagerie.
Meilleures pratiques pour la maintenance de Postfix
La maintenance continue de votre serveur Postfix est essentielle pour maintenir sa sécurité et ses performances. Voici quelques bonnes pratiques :
- Vérifier régulièrement la configuration : Vérifiez régulièrement votre
main.cf
et d'autres fichiers de configuration pour s'assurer que toutes les mesures de sécurité sont correctement mises en œuvre. - Analyse du journal : Utilisez des outils d'analyse automatisée de vos journaux de messagerie pour identifier rapidement les anomalies et les incidents de sécurité potentiels.
- Mises à jour du logiciel : Mettez régulièrement à jour non seulement Postfix, mais aussi tous les composants dépendants comme Dovecot, OpenDKIM et OpenDMARC.
- Surveillance et alertes : Mettez en place un système de surveillance qui vous avertit en cas d'activité inhabituelle ou de messages d'erreur.
Éviter les erreurs fréquentes de configuration de Postfix
Lors de la configuration de Postfix pour maximiser la sécurité, il y a des erreurs fréquentes qui doivent être évitées :
- Relais ouvert : Assurez-vous que votre serveur n'est pas configuré en tant que relais ouvert en utilisant la
inet_interfaces
etmynetworks
-Définir correctement les paramètres. - Certificats TLS non valides : Utilisez toujours des certificats SSL valides et à jour afin d'utiliser efficacement le cryptage TLS.
- Absence d'authentification : Activez l'authentification SASL afin d'éviter toute utilisation abusive de votre serveur.
- Limites de taux insuffisantes : Fixer des limites de connexion raisonnables afin d'éviter les attaques par déni de service.
- Absence de SPF/DKIM/DMARC : Mettre en place des méthodes complètes d'authentification des e-mails pour garantir l'intégrité et l'authenticité des e-mails.
Résumé
La configuration de Postfix pour une sécurité maximale nécessite une planification minutieuse et une maintenance régulière. En mettant en œuvre les mesures décrites dans cet article, vous pouvez améliorer considérablement la sécurité de votre serveur de messagerie. N'oubliez pas que la sécurité est un processus continu. Tenez-vous au courant des nouvelles menaces et des meilleures pratiques afin de toujours protéger au mieux votre serveur Postfix. Utilisez les ressources et les communautés disponibles pour vous former et rester à la pointe de la technologie.
Pour de plus amples informations et des instructions détaillées, consultez la [documentation Postfix] officielle (https://www.postfix.org/documentation.html) et d'autres sources fiables dans le domaine de la sécurité du courrier électronique.