Configuration · 4 min read · Dec 31, 2025

Hébergement Virtuel Comment faire Avec Virtualmin Sur CentOS 5.1 - Page 3

Configuration

Configuration de Postfix

Introduction

Nous allons configurer postfix avec les fonctionnalités suivantes :

  • Hébergement virtuel
  • Prévention UCE
  • Anti-virus
  • Authentification SMTP
  • TLS
  • RBLs
  • SPF
  • Atténuation des attaques

L’ajout de comptes et de domaines sera configuré via virtualmin bien que cela puisse également être fait manuellement. La configuration est conçue pour être économe en ressources afin de pouvoir fonctionner sur des machines qui ne sont pas surdimensionnées, permettant ainsi une meilleure utilisation des ressources. Pour être économe en ressources, nous n’utilisons pas de bases de données externes pour stocker les informations des utilisateurs virtuels comme le font la plupart des autres guides, ainsi que des milters pour le contrôle des spams et des virus au lieu de faire fonctionner amavisd-new.

Les Bases

Pour commencer, nous allons configurer les bases telles que le nom d’hôte, l’origine du mail, les réseaux, le répertoire de spool des cartes de hachage. Toutes ces options de configuration doivent être ajoutées à /etc/postfix/main.cf sauf indication contraire. Des fichiers de configuration d’exemple sont disponibles en téléchargement à la fin de cette page.

command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mydomain = example.com
myorigin = $mydomain
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
canonical_maps = hash:/etc/postfix/canonical
sender_canonical_maps = hash:/etc/postfix/canonical
recipient_canonical_maps = hash:/etc/postfix/canonical
virtual_alias_maps = hash:/etc/postfix/virtual
mail_spool_directory = /var/spool/mail

Maildir

Nous allons utiliser le format maildir beaucoup amélioré par rapport au format mbox par défaut :

home_mailbox = Maildir/

SASL

Pour effectuer l’authentification SMTP, nous allons utiliser SASL, cependant nous n’utiliserons pas le Cyrus SASL car cela nécessite de faire fonctionner le démon saslauthd, nous allons plutôt utiliser dovecot sasl puisque nous allons faire fonctionner dovecot pour IMAP et POP3, tuant ainsi deux oiseaux d’une pierre.

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

TLS

Nous avons besoin de TLS pour garantir que les mots de passe en texte clair ne sont pas transmis sur le réseau lors de l’authentification SMTP, les serveurs qui prennent en charge TLS peuvent également communiquer avec ce serveur via une connexion sécurisée.

Des instructions sur la création de votre certificat de serveur signé par cacert.org peuvent être trouvées ici.

  • Définir la source aléatoire TLS :
tls_random_source = dev:/dev/urandom
  • Activer le TLS serveur :
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/pki/postfix/key.pem
smtpd_tls_cert_file = /etc/pki/postfix/server.pem
smtpd_tls_CAfile = /etc/pki/postfix/root.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache
  • Activer le TLS client :
smtp_use_tls = yes
smtp_tls_key_file = /etc/pki/postfix/key.pem
smtp_tls_cert_file = /etc/pki/postfix/server.pem
smtp_tls_CAfile = /etc/pki/postfix/root.crt
smtp_tls_session_cache_database = btree:/var/spool/postfix/smtp_tls_cache
smtp_tls_note_starttls_offer = yes

Prévention des Spams

  • Exiger un EHLO / HELO valide :
smtpd_helo_required = yes
  • Prévenir les attaques de collecte d’adresses e-mail :
disable_vrfy_command = yes
  • Changer les codes de rejet en permanent (par défaut, postfix émet des codes d’erreur 4xx qui impliquent un échec temporaire, nous avons besoin de 5xx pour des erreurs permanentes) :
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
unknown_local_recipient_reject_code = 550
  • Configurer la vérification de l’adresse de l’expéditeur :
address_verify_map = btree:/var/spool/postfix/verify
smtpd_sender_restrictions = hash:/etc/postfix/sender_access
  • Créer /etc/postfix/sender_access et ajouter :
#exemple /etc/postfix/sender_access contient des domaines souvent usurpés
aol.com     reject_unverified_sender
hotmail.com reject_unverified_sender
yahoo.com reject_unverified_sender
gmail.com reject_unverified_sender
bigfoot.com reject_unverified_sender
  • Atténuer les attaques provenant de zombies et de clients défectueux :
smtpd_error_sleep_time = 5s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
  • N’autoriser le pipelining que pour les clients authentifiés :
smtpd_data_restrictions = reject_unauth_pipelining
  • Installer postfix-policyd-spf-perl et activer le support SPF :
wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.005.tar.gz  
tar xzvf postfix-policyd-spf-perl-2.005.tar.gz  
cd postfix-policyd-spf-perl-2.005  
cp postfix-policyd-spf-perl /etc/postfix/

Ajouter ceci à /etc/postfix/master.cf :

spfpolicy unix  -       n       n       -       -       spawn user=nobody argv=/usr/bin/perl /etc/postfix/postfix-policyd-spf-perl
  • Ajouter le support DKIM :

Des instructions sur l’ajout du support DKIM peuvent être trouvées ici.

  • Ajouter le support domainkeys :

Des instructions sur l’ajout du support domainkeys peuvent être trouvées ici.

  • Faire fonctionner le tout dépend de l’option smtpd_recipient_restrictions, donc nous la définissons ci-dessous :
smtpd_recipient_restrictions =
        permit_mynetworks
        permit_sasl_authenticated
        reject_unauth_destination
        check_recipient_access hash:/etc/postfix/access
        reject_unknown_recipient_domain
        reject_unknown_sender_domain
        reject_unverified_recipient
        reject_non_fqdn_recipient
        reject_non_fqdn_sender
        reject_invalid_hostname
        reject_rbl_client list.dsbl.org
        reject_rbl_client zen.spamhaus.org
        reject_rbl_client l1.spews.dnsbl.sorbs.net
        reject_rbl_client combined.njabl.org
        reject_rbl_client bl.spamcop.net
        reject_rhsbl_sender dsn.rfc-ignorant.org
        reject_rhsbl_sender bogusmx.rfc-ignorant.org
        reject_rhsbl_sender rhsbl.sorbs.net
        reject_rhsbl_client dsn.rfc-ignorant.org
        reject_rhsbl_client bogusmx.rfc-ignorant.org
        reject_rhsbl_client rhsbl.sorbs.net
        check_policy_service unix:private/spfpolicy

Milters [SpamAssassin & ClamAV]

Pour votre classification de spam utilisant spamassassin et le scan de virus utilisant clamav, nous allons utiliser l’interface milter de postfix au lieu d’utiliser le démon amavisd-new qui consomme beaucoup de ressources. C’est une manière très efficace de le faire car nous n’avons même pas besoin de faire fonctionner clamd, le milter clamav effectue le scan lui-même.

smtpd_milters = unix:/var/clamav/clmilter.socket unix:/var/run/spamass.sock
non_smtpd_milters = unix:/var/clamav/clmilter.socket unix:/var/run/spamass.sock

Créer des fichiers DB

postmap /etc/postfix/canonical  
postmap /etc/postfix/access  
postmap /etc/postfix/virtual  
postmap /etc/postfix/sender_access

Fichiers de Configuration d’Exemple

  • main.cf
  • master.cf
  • canonical
  • virtual
Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.