Académique Documents
Professionnel Documents
Culture Documents
sur CentOS
Introduction
Il existe des tas de façons différentes de mettre en place un serveur de mails. Ce tutoriel décrit
simplement une procédure permettant de faire fonctionner correctement un serveur mail
correspondant aux critères et besoins suivants :
Les logiciels
Commençons par installer les outils :
chkconfig postfix on
chkconfig dovecot on
chkconfig spamassassin on
Le certificat SSL
Si vous n'en avez pas, générez un certificat SSL.
Configuration de Postfix
Modifier la configuration par défaut avec les options suivantes dans le
fichier /etc/postfix/main.cf :
A noter : Je reprends ces paramètres car ils fonctionnent. Certains d'entre eux ne sont peut être
pas parfaits, ou parfaitement adapté à vos besoins.
myhostname = mail.$mydomain
mydomain = domain.tld
myorigin = $myhostname
inet_interfaces = all
inet_protocols = ipv4
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = mail/
mailbox_command = /usr/bin/procmail
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_client_restrictions = permit_mynetworks,permit
smtpd_recipient_restrictions =
permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
virtual_alias_domains = domain2.tld
virtual_alias_maps = hash:/etc/postfix/virtual
Maintenant, il faut associer les adresses mail aux utilisateurs. On va déjà envoyer les mails
systèmes à arthur en modifiant le fichier/etc/aliases :
root: arthur
@domain.tld arthur
@domain2.tld arthur
pierre@domain.tld pierre@caramail.com
# Plusieurs utilisateurs
# etc
newaliases
postmap /etc/postfix/virtual
Pour cela, on va créer un certificat SSL pour l'occasion. Commencez par le dossier :
mkdir /etc/postfix/tls
cd /etc/postfix/tls
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -
days 3650
smtpd_use_tls=yes
smtpd_tls_security = may
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtpd_tls_key_file = /etc/postfix/tls/smtpd.key
smtpd_tls_cert_file = /etc/postfix/tls/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/tls/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_loglevel = 1
smtp_tls_note_starttls_offer = yes
Configuration de Dovecot
On a déjà fait une bonne partie du boulot, reste maintenant à configurer Dovecot, notre serveur
IMAP.
# Décommenter
protocols = imap
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
mail_location =
maildir:~/mail:LAYOUT=maildir++:INDEX=~/mail/index:CONTROL=~/mail/control
ssl_key = </etc/pki/tls/private/server.key
SpamAssassin et Procmail
Dans la configuration précédente de Postfix, on a fait le choix de rediriger les nouveaux
messages vers procmail. Ca signifie que pour tous vous utilisateurs systèmes (ici, on a
seulement arthur), vous allez devoir créer un fichier .procmailrc qui explique au système ce
qu'il doit faire des emails.
De plus, c'est également dans ce fichier de configuration qu'on passer les emails entrants à la
moulinette anti-spam de SpamAssassin.
# Prelimiaries
SHELL=/bin/bash
MAILDIR=$HOME/mail/
DEFAULT=$MAILDIR
ORGMAIL=$MAILDIR
LOGFILE=/var/log/procmailrc.log
VERBOSE=yes
LOGABSTRACT=all
:0fw
| /usr/bin/spamc
:0:
* ^X-Spam-Status: Yes.*
${MAILDIR}.Spam/
:0
Cette configuration est très basique, je vous invite à consulter l'ami Google si vous voulez
personaliser ça.
Dans l'état actuel, SpamAssassin va filtrer les emails selon ses filtres internes. Si vous voulez
que le système prenne en compte les messages que vous marquez comme étant du spam
(comportement GMail), consultez le tutoriel Marquer comme spam automatiquement avec
SpamAssassin.
Autorisations parefeu
Plutôt que de modifier à la main le fichier /etc/sysconfig/iptables, on va utiliser
l'outil system-config-firewall-tui (un coup de yum install system-config-firewall-
tui si nécessaire).
Courrier (SMTP)
IMAP à travers SSL
Vérifiez quand même dans le fichier /etc/sysconfig/iptables, les ports suivants sont bien
ouverts:
Mais globalement ce que vous devez faire, c'est modifier votre Zone DNS :
Ajouter une entrée de type A (IPv4) pour faire pointer le domaine principal et ses sous
domaines vers votre serveur (parfois l'interface demande une *, parfois aucun sous
domaine).
Ajouter une entrée de type A (IPv4) pour faire pointer le sous domaine mail vers votre
serveur (facultatif, mais ça sécurise si vous jouez avec par la suite).
Ajouter une entrée de type MX (mail) vers le sous domaine (Record A) que vous avez
appelé mail.
Notez que la diffusion des DNS peut prendre un peu de temps, surtout si vous avez du
cache DNS sur votre OS.
Exemples :