Serveur mail (Debian 6.6) 1/5 : Installation et configuration de Postfix

Cette série de documentation, va permettre d’installer un serveur de mail Postfix, Dovecot, Roundcube sécurisé avec SSL. Postfix est un serveur SMTP, c’est lui qui permet d’envoyer et de recevoir les mails. Nous allons tout d’abord créé un groupe vmail qui sera utilisé pour la gestion des boites mails virtuelles

1
# groupadd vmail -g 2222

Ensuite nous créons un utilisateur vmail qui sera utilisé pour la gestion des boites mails virtuelles et qui appartiendra au groupe vmail avec un uid 2222

1
# useradd vmail -r -g 2222 -u 2222 -d /var/vmail -m -c "mail user"

Installation de Postfix

Pour installer Postfix, nous allons taper la commande suivante :

1
# apt-get install postfix sasl2-bin libsasl2-modules

L’assistant de configuration de Postfix va se lancer, choisir « Pas de configuration » comme configuration type du serveur de messagerie. Ne pas tenir compte du message d’alerte concernant l’activation de SASL, nous le ferons ultérieurement.

Configuration de postfix

Comme nous avons choisi l’option « Pas de configuration » lors de l’installation de Postfix, nous allons copier le fichier de configuration fourni avec le paquet, via la commande suivante :

1
# cp /usr/share/postfix/main.cf.dist /etc/postfix/main.cf

On va éditer le fichier de configuration de Postfix « main.cf » via la commande suivante :

1
# vi /etc/postfix/main.cf

Nous allons indiquer à Postfix d’écouter sur l’ensemble des interfaces de la machine. Pour cela, on décommente la ligne 118 :

1
inet_interfaces = all

Nous allons indiquer à Postfix la liste des domaines gérer par le serveur. Pour cela, on décommente la ligne 165 :

1
mydestination = $myhostname, localhost.$mydomain, localhost

On modifie la valeur de la variable « alias_maps » (ligne 388) comme suit :

1
alias_maps = hash:/etc/postfix/aliases

On décommente et modifie la valeur de la variable « alias_database » (ligne 399) comme suit :

1
alias_database = $alias_maps

Afin de ne pas afficher le nom du serveur SMTP, nous allons commenter la ligne 552 :

1
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)

Nous devons paramétrer la variable « sendmail_path » et lui donner la valeur « /usr/sbin/sendmail » comme indiqué ci-dessous (ligne 626) :

1
sendmail_path = /usr/sbin/sendmail

Nous devons paramétrer la variable « newaliases_path » et lui donner la valeur « /usr/bin/newaliases » comme indiqué ci-dessous (ligne 631) :

1
newaliases_path = /usr/bin/newaliases

Nous devons paramétrer la variable « mailq_path » et lui donner la valeur « /usr/bin/mailq » comme indiqué ci-dessous (ligne 636) :

1
mailq_path = /usr/bin/mailq

Nous devons paramétrer la variable « setgid_group » et lui donner la valeur « postdrop » comme indiqué ci-dessous (ligne 642) :

1
setgid_group = postdrop

Nous devons paramétrer la variable « html_directory » et lui donner la valeur « no » comme indiqué ci-dessous (ligne 646) :

1
html_directory = no

Nous devons paramétrer la variable « manpage_directory » et lui donner la valeur « /usr/share/man » comme indiqué ci-dessous (ligne 650) :

1
manpage_directory = /usr/share/man

Nous devons paramétrer la variable « readme_directory » et lui donner la valeur « /usr/share/doc/postfix » comme indiqué ci-dessous (ligne 655) :

1
sample_directory = /usr/share/postfix

Nous devons paramétrer la variable « readme_directory » et lui donner la valeur « /usr/share/doc/postfix » comme indiqué ci-dessous (ligne 659) :

1
readme_directory = /usr/share/doc/postfix

On ajoute les lignes suivantes à la fin du fichier :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
inet_protocols = ipv4
relay_domains = *

virtual_alias_maps = hash:/etc/postfix/vmail_aliases
virtual_mailbox_domains = hash:/etc/postfix/vmail_domains
virtual_mailbox_maps = hash:/etc/postfix/vmail_mailbox

virtual_mailbox_base = /var/vmail
virtual_minimum_uid = 2222
virtual_transport = virtual
virtual_uid_maps = static:2222
virtual_gid_maps = static:2222

smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, reject_unknown_sender_domain, reject_non_fqdn_sender, reject_unverified_recipient
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, reject_invalid_hostname, reject_non_fqdn_hostname, reject_rbl_client bl.spamcop.net, reject_rbl_client cbl.abuseat.org, reject_rbl_client zen.spamhaus.org, permit

Comme le serveur aura la possibilité de gérer plusieurs domaine, nous allons créer un fichier de configuration pour les domaines virtuels :

1
# vi /etc/postfix/vmail_domains

On y rentre la suite, il doit y avoir un domaine par ligne :

1
mon-domaine.fr            OK

Comme le serveur aura la possibilité de gérer plusieurs domaines et plusieurs boites par domaine, nous allons créer un fichier de configuration pour les boites mails virtuelles :

1
# vi /etc/postfix/vmail_mailbox

On y rentre la suite, il doit y avoir une adresse mail avec son répertoire de stockage (Une adresse par ligne) :

1
user@mon-domaine.fr          mon-domaine.fr/user/

On créé un fichier de configuration pour les alias :

1
# vi /etc/postfix/vmail_aliases

On y rentre la suite, il doit y avoir un alias par ligne :

1
user@mon-domaine.fr           user@mon-domaine.fr

On génère les tables de correspondance pour les domaines virtuels, les boites virtuelles, et les alias via les commandes suivantes :

1
2
3
4
5
# postmap /etc/postfix/vmail_domains
# postmap /etc/postfix/vmail_mailbox
# postsmap /etc/postfix/vmail_aliases
# touch /etc/postfix/aliases
# postalias /etc/postfix/aliases

Maintenant que le domaine, la boite mail ainsi que l’alias est créé, nous allons activer le SMTP dans Postfix. Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/postfix/master.cf /etc/postfix/master.cf.ori

Nous allons éditer le fichier « master.cf », via la commande suivante :

1
# vi +/submission /etc/postfix/master.cf

et décommenter la ligne 12 comme ci-dessous :

1
submission inet n - - - - smtpd