Administration Réseau Linux - MAIL Server - Installation d'un serveur MAIL sous Ubuntu Server 12.10

 
Administration Réseau Linux - MAIL Server - Installation d'un serveur MAIL sous Ubuntu Server 12.10
Administration Réseau Linux – MAIL Server

Installation d’un serveur MAIL sous Ubuntu Server 12.10

 1
     BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux - MAIL Server - Installation d'un serveur MAIL sous Ubuntu Server 12.10
Administration Réseau Linux – MAIL Server

Table des matières
Installation d’un serveur MAIL sous Ubuntu Server 12.10 ................................................................... 1
1 - Fonctionnement du courrier électronique.................................................................................... 4
Description de l'architecture de fonctionnement ................................................................................... 4
Mail Transfert Agent ou MTA ............................................................................................................... 5
Serveur du protocole entrant .................................................................................................................. 5
Mail Delivery Agent ou MDA ............................................................................................................... 6
Mail User Agent ou MUA ..................................................................................................................... 6
2 – Mise en Œuvre Topologie et versions utilisées ..................................................................... 8
3 ‐ Installation et configuration des différents logiciels .......................................................... 11

3 - 1 - Installation d’OpenLDAP                                        ................................................................................... 11

3 - 2 Installation De Courier-Imap                                     ................................................................................... 15
3 - 3 Configuration de LDAP.............................................................................................................. 16

3 - 4 Installation et configuration de Postfix                                         ................................................................... 26
3 - 5 Paramétrage de Courier ............................................................................................................... 31
3 - 6 Envoi d’un mail depuis la ligne de commande pour activer ....................................................... 35
l’utilisateur1. ........................................................................................................................................ 35

4 -Test avec Squirrelmail                                       ........................................................................................... 36
Sources

           2
                 BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux - MAIL Server - Installation d'un serveur MAIL sous Ubuntu Server 12.10
Administration Réseau Linux – MAIL Server

Le courrier électronique, aussi simple soit-il à utiliser, repose sur un fonctionnement plus compliqué
que celui du web. Pour la plupart des utilisateurs son fonctionnement est transparent, ce qui signifie
qu'il n'est pas nécessaire de comprendre comment le courrier électronique fonctionne pour pouvoir
l'utiliser.

Néanmoins, la courte introduction ci-dessous permet d'en comprendre le principe et donne les moyens
à un utilisateur de savoir comment configurer au mieux son client de messagerie ou de saisir les
mécanismes fondamentaux du spam.

       3
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux - MAIL Server - Installation d'un serveur MAIL sous Ubuntu Server 12.10
Administration Réseau Linux – MAIL Server

1 - Fonctionnement du courrier électronique
Un système de messagerie électronique est l'ensemble des éléments contribuant à transmettre un
courriel( courrier électronique : message transmis via un réseau informatique) de l'émetteur au
récepteur. Il y a quatre éléments fondamentaux. Ce sont:

- le Mail Transfert Agent ou MTA
- le serveur du protocole entrant
- le Mail Delivery Agent ou MDA
- le Mail User Agent ou MUA

Description de l'architecture de fonctionnement

Les différents éléments du système de messagerie sont agencés selon une architecture logique, pour
en assurer le fonctionnement.
Nous représentons cette architecture par le schéma suivant:

Ce schéma présente le transfert d'un courriel d'un expéditeur à un destinataire.

       4
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux - MAIL Server - Installation d'un serveur MAIL sous Ubuntu Server 12.10
Administration Réseau Linux – MAIL Server

1 - L'expéditeur communique son courriel via le MUA.
2 - Le MUA transmet ce courriel au MTA (la plupart des MUA intègre des clients SMTP).
3 et 4- Le MTA du système de l'émetteur établit un canal de transmission avec le MTA du système du
destinataire, par émissions successives de requêtes bidirectionnelles.
5 - Une fois le canal établit, le courriel est transmis d'un système à un autre par les MTA.
6 - Dans le système du destinataire, Le MTA transmet le courrier reçu au serveur IMAP ou POP3.
7, 8 et 9 - Le MDA récupère le courriel du serveur IMAP / POP 3, et le met à disposition du MDA.
10 - Le MDA dépose le courriel dans la boîte aux lettres du destinataire qui pourra le consulter à tout
moment, sur authentification.

Mail Transfert Agent ou MTA

C'est un agent qui permet d'acheminer le courriel d'un serveur à un autre. Le MTA de l'émetteur route
le mail sur le MTA du récepteur.
Il implémente un protocole sortant. Notons que les protocoles sortants permettent de gérer la
transmission du courrier entre les systèmes de messagerie. Le protocole sortant généralement utilisé
est le Simple Mail Transfert Protocol ou SMTP .

SMTP peut être traduit comme protocole simple de transfert de courriel. Il est de la famille des
protocoles basés sur TCP/IP. Il utilise généralement le port 25.
Le mécanisme de fonctionnement de SMTP est qu'il commence d'abord par vérifier l'existence de
l'expéditeur et du ou des destinataire (s), indiqués dans l'entête du message, puis il transmet le contenu.
La transmission s'effectue sur un canal de communication établi entre l'émetteur et le destinataire par
émission bidirectionnelle de requêtes basées sur des commandes.
Il existe plusieurs serveurs MTA qui implémentent SMTP. Parmi les plus connus, il y a Postfix, Exim,
Qmail et Sendmail.

Serveur du protocole entrant

Les protocoles entrants permettent la réception et la distribution du courriel. Les plus généralement
utilisés sont : Post Office Protocol version 3 (POP3) et Internet Message Access Protocol (IMAP), qui
sont tous deux basées sur TCP/IP .
Dans son fonctionnement, POP3 va récupérer le courriel sur un serveur de messagerie.

IMAP est une version améliorée de POP3 qui intègre les opérations suivantes:
 la gestion de plusieurs accès simultanés
 la gestion de plusieurs boîtes aux lettres
 la synchronisation des courriels entre le serveur et le client (les courriels ne sont pas effacés sur le
serveur de messagerie comme le fait POP3 )
 le tri du courrier selon des critères.
Il existe une version sécurisée d’IMAP : IMAPS qui intègre le protocole SSL (Secure Socket Layer).
Dans le système de messagerie, il est nécessaire d'avoir un serveur qui implémente un protocole
entrant.

        5
            BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux - MAIL Server - Installation d'un serveur MAIL sous Ubuntu Server 12.10
Administration Réseau Linux – MAIL Server

Mail Delivery Agent ou MDA

Il s'agit d'un agent qui est en charge de la gestion des boîtes aux lettres. Il est chargé de livrer le courriel
dans la boîte à messages du destinataire. Pour cela, il est souvent considéré comme le point final d'un
système de messagerie.
Dans le MDA , on peut filtrer les courriels; et même supprimer les spams par des anti-spams (comme
spamassassin) et contrôler les virus par des antivirus.
Il existe plusieurs serveurs MDA, les plus courants sont procmail, maildrop ,courier et cyrus.

Mail User Agent ou MUA

Le MUA est un logiciel client de messagerie qui fournit un environnement pour la gestion du courriel
(envoi, saisie, réception, suppression, etc.). Il est très proche du MDA.
Tout comme les autres agents, il existe également plusieurs MUA .
 Un MUA avec une interface Web, est appelé Webmail.

Choix des serveurs Utilisés

Pour notre serveur de messagerie, nous utiliserons les logiciels suivants :

     COMPOSANTS                                                 SERVEURS

     MTA (Mail Transfert Agent)                                Postfix

     Serveur IMAP (Serveur du protocole entrant)               Courier-imap

     MDA (Mail Delivery Agent)                                 Courier-imap

     MUA (Mail User Agent)                                     Squirrelmail (Webmail)

     ANNUAIRE UTILISATEUR                                      LDAP et PHPLdapadmin

        6
            BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux - MAIL Server - Installation d'un serveur MAIL sous Ubuntu Server 12.10
Administration Réseau Linux – MAIL Server

Le schéma de principe est le suivant :

- LDAP est le logiciel permettant de gérer les utilisateurs et les groupes pour des clients systèmes
(droits utilisateurs systèmes dans un domaine AD) ou pour des logiciels. Dans cette doc, nous nous
intéresserons à la deuxième possibilité. LDAP nous servira de base de données pour gérer les
utilisateurs.
- Courier est un logiciel permettant de proposer le service IMAP pour la livraison des mails aux
utilisateurs de la base de données.
-Postfix, quant à lui, est un logiciel permettant de proposer le service SMTP pour l’envoi des mails
par les utilisateurs de la base de données.
- Squirrelmail permet de fournir aux utilisateurs une interface WEB conviviale pour gérer leur
messagerie.
 Il sera possible, par la suite de paramétrer des clients de messagerie locaux pour les comptes créés
dans LDAP

       7
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux - MAIL Server - Installation d'un serveur MAIL sous Ubuntu Server 12.10
Administration Réseau Linux – MAIL Server

2 – Mise en Œuvre Topologie et versions utilisées

L’installation sera effectuée sous Ubuntu Server 12.10

La version du serveur Apache sera la 2.2 devra être préalablement installée sur le serveur

# aptitude install apache2

Prés requis

 Un DNS fonctionnel dans lequel est déclaré le serveur qui héberge LDAP-Postfix-Courier-
Squirrelmail.

Il faut également que l’enregistrement du champ MX pointe vers le serveur LDAP (le champ MX
permet de relayer les mails dans le domaine) !

Il faudra donc modifier le fichier de zone et de zone inverse du serveur DNS.

       8
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux - MAIL Server - Installation d'un serveur MAIL sous Ubuntu Server 12.10
Administration Réseau Linux – MAIL Server

Pour plus d’informations vous pouvez consulter mon guide d’installation du serveur Bind9.

         Penser à adapter les fichiers de configuration à votre propre infrastructure !!!

Dans le cas suivant, le même serveur héberge le DNS, le WWW et le SMTP

Fichier de zone :

Fichier de zone inverse :

                Penser à incrémenter le n° de serial dans les 2 fichiers de zone !!!

Redémarrer le Serveur Bind9

# Sudo service bind9 restart

       9
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux - MAIL Server - Installation d'un serveur MAIL sous Ubuntu Server 12.10
Administration Réseau Linux – MAIL Server

• Editer le fichier /etc/hosts pour déclarer la correspondance @IP-Serveur/nom FQDN

 Faire pointer le fichier resolv.conf sur le DNS dans lequel est déclaré le serveur MAIL

     10
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

3 ‐ Installation et configuration des différents logiciels

3 - 1 - Installation d’OpenLDAP

# apt-get install slapd ldap-utils phpldapadmin

 Cette ligne de commande installe LDAP, Phpldapadmin ainsi que toutes les dépendances
(librairies et logiciels) nécessaires au fonctionnement des logiciels précités.

Pendant l’installation, le mot de passe de l’administrateur sera demandé.

Noter ce mot de passe pour la suite.

Paramétrage de LDAP

Configuration de base

# dpkg-reconfigure slapd

 La commande dpkg-reconfigure permet de (re)configurer grâce à un assistant CLI (Command
Line Assistant is a Graphical User Interface GUI) le paquet indiqué (si un assistant de configuration est
disponible…)

Il suffit de répondre aux questions posées par le système :

      11
            BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

12
     BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

13
     BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

14
     BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

Ensuite il faut installer courier afin de pouvoir importer le schéma de celui-ci dans LDAP. La
configuration de courier se fera par la suite mais le fait de l’installer est obligatoire pour récupérer le
schéma que l’on va intégrer à LDAP.

3 - 2 Installation De Courier-Imap

# apt-get install courier-base courier-authdaemon courier-
imap courier-authlib-ldap courier-pop courier-ldap fam

LDAP utilise les modules de Courier pour l’authentification des utilisateurs de la messagerie. Il est
donc impératif de ne pas sauter cette étape car sinon il sera impossible d’aller plus avant.

Ne pas créer les répertoires nécessaires à l’administration web…

      15
            BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

3 - 3 Configuration de LDAP

Les fichiers de configuration de LDAP sont tous dans le répertoire /etc/ldap/. La partie configuration
de LDAP devrait se faire normalement sans trop de soucis, les choses sérieuses commencent avec
l’interfaçage de Postfix/Courier avec LDAP !

Importation du schéma de courier dans LDAP

Nous allons maintenant intégrer le schéma de courier dans LDAP :

# zcat /usr/share/doc/courier-authlib-ldap/authldap.schema.gz >
/etc/ldap/schema/authldap.schema

La commande zcat (comme gunzip ou tar) permet de décompresser l’archive « authldap.schema.gz »
au format gz. Ensuite nous faisons une redirection de la sortie standard dans le fichier
« authldap.schema »

Manque de chance, le schéma est « buggué »... On corrige rapidement avec la commande suivante :

# sed -i 's@$ mailhost@ @' /etc/ldap/schema/authldap.schema

La commande sed –i est utilisée pour effectuer des changements dans des fichiers textes de
manière récursive. Ici, la chaîne de caractère  sera remplacée par < > c’est-à-dire
rien !

On peut ensuite générer la configuration des schémas LDAP. La configuration d’OpenLDAP se fait
directement dans l’annuaire dans l’arbre spécial .

Voici la démarche pour intégrer un nouveau schéma :

# cat > /etc/ldap/slapd.conf
Administration Réseau Linux – MAIL Server

Avec cette commande, nous allons rediriger la sortie standard (indicateur > après cat) jusqu’à
l’indicateur
Administration Réseau Linux – MAIL Server

Génération des mots de passes cryptés pour l’administrateur LDAP et pour le premier utilisateur du
serveur de messagerie.

# slappasswd -s  -h {SSHA} |base64

Il est conseillé de créer des mots de passes différents pour l’administrateur et pour les utilisateurs.
Cette étape est très importante pour la suite car à la création de chaque utilisateur, il faudra
« hasher » son mot de passe.

 Le hashage de mot de passe est l'une des pratiques de sécurité les
   plus basiques qui doit être effectuée. Sans cela, chaque mot de
 passe stocké peut être volé si le support de stockage (typiquement
une base de données) est compromis. Ce mot de passe peut alors être
 immédiatement utilisé pour accéder frauduleusement non seulement à
      votre application mais aussi sur d'autres applications si
         l'utilisateur utilise le même mot de passe ailleurs.
  En appliquant un hashage sur le mot de passe avant de le stocker,
  vous rendez la tâche d'un attaquant très difficile pour connaitre
  le mot de passe original, et vous avez toujours la possibilité de
          comparer le mot de passe hashé à une chaîne reçue.
  Il est important de noter que le hashage ne fait que protéger les
 mots de passe dans la base, pas leur éventuelle interception alors
 qu'ils sont envoyés à l'application par l'utilisateur, via du code
          malicieux injecté dans l'application, par exemple.

Création de l’arborescence du domaine.
        LDAP utilise des fichiers textes avec l’extension *.ldif pour intégrer les branches du schéma
de l’organisation. Il faut essayer de se figurer un organigramme représentant les différentes tables
nécessaires au fonctionnement d’un serveur de messagerie.

Ces fichiers sont à créer dans le répertoire /etc/ldap

Définition du domaine racine de l’organisation :

Nous allons créer un fichier *.ldif dans lequel nous allons définir la racine de l’organisation dans
LDAP. Une fois que la configuration de l’arborescence de LDAP effectuée, il est recommandé de ne
pas garder de copie de ces fichiers (*.ldif) dans un répertoire présent sur le serveur.

      18
            BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

Il vaut mieux utiliser un client SSH pour faire un backup de la configuration de LDAP .

Enfin donnez un nom parlant au fichiers afin de les retrouver (org.ldif) , (admin.ldif)…. !

 Pour rappel : Penser à adapter les fichiers de configuration à votre propre infrastructure !!!

dn:,dc=ghost,dc=fr ##si vous avez un ou des sous domaine ,vous
devez ajouter un ou des champs dc=…, ##

objectClass: top

objectClass: dcObject

objectClass: organization

dc: ##si vous avez un ou des sous domaine ce champ doit être
renseigné,sinon supprimer la ligne ##

o: ghost.fr

dn : indique le nom du domaine en indiquant tous les sous domaines composant le domaine FQDN.
Dans une adresse internet, du type www.google.fr les séparateurs des sous domaines sont des points.
Ici, les séparateurs sont  et chaque sous domaine doit être séparé par une virgule. Attention, les
fichiers *.ldif sont sensibles à la casse, aux espaces avant et après les chaînes de caractères et aux
sauts de lignes !

Les champs dc=…, sont valables pour tous les fichiers de configuration. Il faudra donc à chaque fois
déclarer tous les sous domaines si vous en avez :

EX : si groupe5.info-msj.net alors  dc=groupe5,dc=info-msj,dc=net

      19
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

Intégration de l’utilisateur Administrateur (de LDAP) à l’organisation.

dn: cn=admin,dc=ghost,dc=fr

objectClass: simpleSecurityObject

objectClass: organizationalRole

cn: admin

description: LDAP administrator

userPassword: {SSHA}
e1NTSEF9U0FLN0MrbHFJaGU5dndOVWVqbGo5NEx4d2svTUpEQUYK

Ici, nous définissons le nom canonique de l’Administrateur de LDAP (champ ) on peut
décider de nommer l’administrateur comme on le veut.

 Notez que le mot de passe est « hashé » (voir slappasswd plus haut) et que l’on indique le type de
hash (ici {SSHA} ). L’utilisateur créé ici, est utilisé par Courier et Postfix pour lier (bind en
anglais) ces services avec LDAP.

Utiliser le code « hasché » généré plus haut avec slappasswd

Définition d’une organisation virtuelle ayant une messagerie.

dn: o=maboite, dc=ghost,dc=fr

objectClass: CourierDomainAlias

objectClass: organization

objectClass: top

o: maboite

virtualdomain: ghost.fr

virtualdomainuser: ghost.fr/

      20
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

Nous indiquons ici à LDAP la correspondance avec le schéma de Courier. Courier est utilisé pour
l’authentification des utilisateurs dans la base de données de LDAP.

Définition de la base de données users.

Nous allons créer une unité organisationnelle pour gérer les utilisateurs. Voir ici :

http://fr.wikipedia.org/wiki/Active_Directory#Unit.C3.A9_organisationnelle

dn: ou=users,o=maboite,dc=ghost,dc=fr

objectClass: organizationalUnit

objectClass: top

ou: users

Cette unité organisationnelle sera utilisée comme groupe qui appliquera les mêmes droits à tous les
utilisateurs qui dépendent d’elle.

Définition de la base de données aliases.

dn: ou=aliases,o=maboite,dc=ghost,dc=fr

objectClass: organizationalUnit

objectClass: top

ou: aliases
      21
            BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

La base de donnée aliases est aussi une Unité Organisationnelle ().

Création du premier utilisateur du service de messagerie.

Créer d’abord un mot de passe pour cet utilisateur :

# slappasswd -s  -h {SSHA} |base64

Et utiliser le codec crypté à la ligne user password

Ce fichier constitue le modèle que l’on va réutiliser à chaque création d’utilisateur du service de
messagerie. Il est donc primordial de bien comprendre comment la syntaxe de ce fichier fonctionne !

dn: cn=francois.bernier,ou=users,o=maboite,dc=ghost,dc=fr

objectClass: inetOrgPerson

objectClass: organizationalPerson

objectClass: person

objectClass: CourierMailAccount

objectClass: top

cn: francois.bernier

gidNumber: 0

givenName: francois

homeDirectory: /home/vmail/

mail: francois.bernier@ghost.fr

mailbox: ghost.fr/ francois.bernier /

sn: bernier

uid: francois.bernier

      22
            BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

uidNumber: 0

quota: 500

userPassword: {SSHA}
e1NTSEF9U0FLN0MrbHFJaGU5dndOVWVqbGo5NEx4d2svTUpEQUYK

Importation des fichiers *.ldif précédemment créés dans ldap avec la commande ldapadd :

Voici comment s’organise la syntaxe de cette commande :

# ldapadd –cxD "cn=admin,dc=ghost,dc=fr" –W –f
/chemin_absolu_du_fichier_ldif_à_intégrer

Attention, le mot de passe demandé est le mot de passe de l’administrateur de la base de données et
pas celui de l’utilisateur que l’on veut ajouter !

Vous devez exécuter cette commande pour chacun des fichiers que vous avez générés
précédemment.

     23
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

Paramétrage de Phpldapadmin

        Nous utiliserons Phpldapadmin (interface web d’administration de LDAP) pour vérifier que
la configuration rentrée précédemment est correcte. Pour ce faire, il suffit d’éditer le fichier
/etc/phpldapadmin/config.php comme suit :

Chercher la ligne :

$servers->setValue('server','base',array('dc=example,dc=com));

Et la modifier ainsi :

$servers->setValue('server','base',array('dc=ghost,dc=fr'));

Chercher la ligne :

$servers->setValue('login','bind_id','cn=Manager,
dc=example,dc=com’);

Et la modifier ainsi :

$servers->setValue('login','bind_id','cn=admin,dc=ghost,dc=fr');

-------------------------------------------------------------------------------------------------------------------------

Nous allons maintenant créer un lien symbolique entre le répertoire d’installation du site
phpldapadmin et le répertoire par défaut d’Apache2 :

# ln -s /usr/share/phpldapadmin/ /var/www/ldap

Une fois ces modifications effectuées, nous pourrons nous « logguer » dans phpldapadmin en
tapant dans votre navigateur web :

http://@IP_du_serveur_LDAP/phpldapadmin

EX : http://172.25.205.250/ phpldapadmin

En cliquant sur connexion, vous devriez obtenir l’interface de connexion de phpldapadmin avec
l’utilisateur admin pré-rempli !

       24
             BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

On s’authentifie avec le mot de passe administrateur créé précédemment.

Si l’arborescence déployée du domaine ressemble à ceci, la configuration se présente bien.

      25
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

3 - 4 Installation et configuration de Postfix

Installation et configuration de Postfix

Installation

# apt-get install postfix postfix-ldap postfix-pcre

Pendant l’exécution de cette commande, il y aura un nouvel assistant de configuration.
Voici les réponses à apporter aux questions posées :

1.     Site internet
2.
3.     root@localhost
4.     hostname.domaine.TLD
5.     hostname.domaine.TLD, hostname, localhost.domaine.TLD, localhost
6.     non

(Executer # dpkg-reconfigure postfix si la configuration a mal été saisie).

Ne sont définies ici que les options de base de Postfix, les autres options sont à définir dans le fichier
/etc/postfix/main.cf

Création de l’utilisateur système utilisé par Postfix pour gérer les utilisateurs du service de
messagerie.

    Avant d'aller plus loin, nous devons créer l'utilisateur, le groupe et le répertoire qui seront utilisés
par Postfix pour manipuler les messages.

# groupadd -g 5000 vmail
# useradd -u 5000 -g 5000 -d /home/vmail -s /bin/false -m vmail

Bien entendu, cet utilisateur ne doit en aucun cas avoir la possibilité d’accéder à un shell ! En cas de
piratage du service postfix, les dégâts seraient considérables.

Après avoir créé l’utilisateur, nous allons créer les répertoires nécessaires aux utilisateurs de la
messagerie.

      26
            BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

# mkdir –p /home/vmail/domaine/

# cd /home/vmail/domaine/

# maildirmake utilisateur1

# maildirmake -f Sent utilisateur1

# maildirmake -f Queue utilisateur1

# maildirmake -f junkmail utilisateur1r

# maildirmake -f virus utilisateur1

# maildirmake -f Drafts utilisateur1

# maildirmake -f Trash utilisateur1

Nous allons maintenant donner les droits d’écriture à « courier » :

# chown –R vmail:vmail /home/vmail

Configuration du service SMTP

Les configurations à effectuer sont à faire dans : /etc/postfix/main.cf.

Il est conseillé de faire un backup du fichier original avant de se lancer dans la config ! Voici un
exemple commenté de ce fichier :

See /usr/share/postfix/main.cf.dist for a commented, more complete
version

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

      27
            BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

# Config générale du serveur SMTP
myhostname = hostname.domaine.TLD
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = hostname.domaine.TLD, hostname, localhost.domaine.TLD,
localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 @IPréseau/24
mailbox_command = procmail -a "$EXTENSION"
home_mailbox = Maildir/
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
luser_relay =

#la directive suivante correspond à la liste des domaines pris en charge.
virtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cf
# le répertoire /home/vmail stockera les boites mail des utilisateurs
virtual_mailbox_base = /home/vmail
#la directive suivante correspond à a liste des utilisateurs déclarés
virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf
virtual_minimum_uid = 100
virtual_gid_maps = static:5000
virtual_uid_maps = static:5000
#la directive suivante correspondà a liste des alias (redirections).
virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf
unknown_local_recipient_reject_code = 450

 Pour rappel : Penser à adapter les fichiers de configuration à votre propre infrastructure !!!

     28
          BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

Il nous faut ensuite créer les 3 fichiers ldap-domains.cf, ldap-accounts.cf, ldap-aliases.cf :

Copier les commandes suivantes sur votre terminal :

# cat > /etc/postfix/ldap-domains.cf  /etc/postfix/ldap-accounts.cf  /etc/postfix/ldap-aliases.cf
Administration Réseau Linux – MAIL Server

    Il faudra bien entendu modifier les fichiers pour qu’ils soient en correspondance avec votre
     réseau !

Enfin nous allons modifier la fin du fichier master.cf :

# cat >> /etc/postfix/master.cf
Administration Réseau Linux – MAIL Server

3 - 5 Paramétrage de Courier

Maintenant il ne nous reste plus qu’à paramétrer correctement Courier pour qu’il prenne en charge
l’authentification avec LDAP. Le répertoire de configuration de courier est : /etc/courier

Il faut tout d’abord indiquer à courier qu’il doit communiquer avec LDAP. Pour ce faire, nous
allons modifier le fichier /etc/courier/authdaemonrc.

Remplacer la ligne :

authmodulelist="authpam"
Par :

authmodulelist="authldap"

Voici à présent la partie la plus sensible de la configuration de courier, le paramétrage général du
serveur IMAP. Pour ce faire, nous allons modifier le fichier : /etc/courier/authldaprc. Attention, ce
fichier est sensible à la casse, aux espaces… Voici mon fichier :
# indiquer le nom FQDN du serveur LDAP
LDAP_URI              ldap://ldap.groupe5.info-msj.net

#indique à courier la version de LDAP
LDAP_PROTOCOL_VERSION   3

##NAME: LDAP_BASEDN:0
#
# la base du nom de domaine avec une syntaxe à la LDAP

LDAP_BASEDN                     dc=groupe5, dc=info-msj, dc=net

##NAME: LDAP_BINDDN:0
# information nécessaires à l’authentification de courier via LDAP
# You may or may not need to specify the following.  Because you've got
# a password here, authldaprc should not be world-readable!!!

LDAP_BINDDN                     cn=admin, dc=groupe5, dc=info-msj, dc=net
LDAP_BINDPW                     ******
LDAP_TIMEOUT                    5

##NAME: LDAP_MAIL:0
# indique le champ mail de LDAP
# Here's the field on which we query

LDAP_MAIL                       mail

# The following default domain will be appended, if not explicitly
specified.
# le domaine FQDN géré par LDAP

      31
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server
# LDAP_DOMAIN           example.com
LDAP_DOMAIN             groupe5.info-msj.net
##NAME: LDAP_GLOB_IDS:0
# The following two variables can be used to set everybody's uid and gid.
# This is convenient if your LDAP specifies a bunch of virtual mail accounts
# The values can be usernames or userids:
# utilisateur/groupe système de courier
LDAP_GLOB_UID           vmail
LDAP_GLOB_GID           vmail

##NAME: LDAP_HOMEDIR:0
# le champ qui indique à LDAP où sont stockés les repertoires utilisateurs
# We will retrieve the following attributes
#
# The HOMEDIR attribute MUST exist, and we MUST be able to chdir to it

LDAP_HOMEDIR               homeDirectory

# The MAILDIR attribute is OPTIONAL, and specifies the location of the
# mail directory.  If not specified, ./Maildir will be used
# Voici le champs qui indique à LDAP le repertoire des utilisateurs

LDAP_MAILDIR               mailbox

##NAME: LDAP_DEFAULTDELIVERY:0
#
# Courier mail server only: optional attribute specifies custom mail
delivery
# instructions for this account (if defined) -- essentially overrides
# DEFAULTDELIVERY from ${sysconfdir}/courierd

LDAP_DEFAULTDELIVERY       defaultDelivery

# FULLNAME is optional, specifies the user's full name
# indique la syntaxe de l’indicateur qui precise à LDAP le nom canonique de
# l’utilisateur qui aura le droit d’établir le lien entre LDAP et courier

LDAP_FULLNAME              cn

##NAME: LDAP_PW:0
#
# CLEARPW is the clear text password.  CRYPT is the crypted password.
# ONE OF THESE TWO ATTRIBUTES IS REQUIRED.  If CLEARPW is provided, and
# libhmac.a is available, CRAM authentication will be possible!

#LDAP_CLEARPW              clearPassword
LDAP_CRYPTPW               userPassword

##NAME: LDAP_ENUMERATE_FILTER:0
#
# {EXPERIMENTAL}
# Optional custom filter used when enumerating accounts for authenumerate,
# in order to compile a list of accounts for shared folders. If present,
# this filter will be used instead of LDAP_FILTER.

    32
         BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server
#
# LDAP_ENUMERATE_FILTER
(&(objectClass=CourierMailAccount)(!(disableshared=1)))

##NAME: LDAP_DEREF:0
#
# Determines how aliases are handled during a search.  This option is
available
# only with OpenLDAP 2.0
#
# LDAP_DEREF can be one of the following values:
# never, searching, finding, always. If not specified, aliases are
# never dereferenced.

LDAP_DEREF                       never

##NAME: LDAP_TLS:0
#
# Set LDAP_TLS to 1 to use the Start TLS extension (RFC 2830). This is
# when the server accepts a normal LDAP connection on port 389 which
# the client then requests 'upgrading' to TLS, and is equivalent to the
# -ZZ flag to ldapsearch. If you are using an ldaps:// URI then do not
# set this option.
#
# For additional LDAP-related options, see the authdaemonrc config file.

LDAP_TLS                         0

##NAME: LDAP_EMAILMAP:0
#

 Pour rappel : Penser à adapter les fichiers de configuration à votre propre infrastructure !!!
                    Les éléments à modifier dans ce fichier sont en Rouge

De préférence faites un copier-coller de ce fichier pour éviter les erreurs de syntaxe.

Une fois la configuration de Courier-authdaemon terminée, n'oubliez pas de le redémarrer.

# /etc/init.d/courier-authdaemon restart

      33
            BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

Pour tester la configuration de Courier exécutez la commande suivante :

# authtest utilisateur1@domaine.TLD

Votre premier utilisateur créé

Qui devrait vous renvoyer les données du compte utilisateur

Modification du mot de passé de l’utilisateur1 dans phpldapadmin

Il y a un bug avec la création du mot de passe des utilisateurs dans LDAP.

Pour y remédier, nous allons modifier le passwd de l’utilisateur1 dans phpldapadmin :

Dans l’interface de gestion de LDAP sélectionner l’utilisateur1 (cn=utilisateur1) puis valeurs par
défaut. Dans le champ mot de passe, retaper le mot de passe puis valider les changements tout en bas
de la fenêtre.

      34
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

3 - 6 Envoi d’un mail depuis la ligne de commande pour activer
        l’utilisateur1.

Taper la commande suivante pour envoyer un mail :

# mail –s test utilisateur1@domaine.TLD

   1. Taper ici le corps du message puis entrée une fois fini. Exemple : BLABLA
   2. Taper un point puis entrée pour indiquer la fin du texte.
   3. Dans le champ CCI indiquer une @mail si vous voulez envoyer le mail en copie ou taper
       entrée.
Ou bien la commande suivante :

# echo testing | mail –s test utilisateur1@domaine.TLD

Nous avons envoyé un mail à l’utilisateur1. Le sujet du mail est test, le corps du texte BLABLA et
nous pouvons choisir ou non de l’envoyer en copie à un autre utilisateur.

Après envoi du mail faisons un petit tour dans les fichiers de logs pour vérifier que tout a
correctement fonctionné :

# cat /var/log/mail.log

Mar 18 22:09:36 Ubuntu-SERVER-64 postfix/pickup[4675]: 0305AE41E7: uid=0
from=

Mar 18 22:09:36 Ubuntu-SERVER-64 postfix/cleanup[5107]: 0305AE41E7:
message-id=

Mar 18 22:09:36 Ubuntu-SERVER-64 postfix/qmgr[4674]: 0305AE41E7:
from=, size=376, nrcpt=1 (queue active)

Mar 18 22:09:36 Ubuntu-SERVER-64 postfix/virtual[5109]: 0305AE41E7:
to=, relay=virtual, delay=0.1,
delays=0.09/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to maildir)

Message bien envoyé au destinataire

      35
            BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

4 -Test avec Squirrelmail
Créer un lien symbolique pour squirrelmail dans /var/www

# ln -s /usr/share/squirrelmail/ /var/www/webmail

Dans un navigateur web taper l’adresse IP ou le nom du serveur MAIL suivie de /webmail pour
accéder au client de messagerie par l’interface web de Squirrelmail.

http://172.25.205.250/webmail/

http://ubuntu-server-64@ghost.fr/webmail/

Vous arrivez sur la page d’identification de Squirrelmail

      36
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

Vous n’avez plus qu’à vous « logger » sur le compte utilisateur auquel vous avez envoyé un email

Le message de test envoyé est bien présent dans les messages reçus.

     37
           BERNIER François –http://astronomie-astrophotographie.fr
Administration Réseau Linux – MAIL Server

Sources :

http://www.linuxtopia.org/online_books//network_administration_guides/ldap_administration/appendi
x-common-errors_Common_causes_of_LDAP_errors.html

http://www.php.net/manual/fr/function.ldap-bind.php

http://php.net/manual/fr/faq.passwords.php

http://www.trstech.net/alain/ldap-dns.pdf

http://cesar.com.univ-mrs.fr/IMG/pdf/formation_ldap_hybride.pdf

http://www.jopa.fr/index.php/2009/07/28/alias-forward-postfix-openldap/

http://www.commentcamarche.net/contents/courrier-electronique/

http://j2c.org/informatique/linux/postfix.php

http://www.postfix.org/postmap.1.html

http://articles.mongueurs.net/magazines/linuxmag65.html

http://www.bizeul.net/?2005/05/27/7-serveur-de-messagerie-multi-domaines-avec-postfix-openldap-
et-courier

http://www.tariel.eu/spip.php?article13

http://www.tariel.eu/spip.php?article14

http://doc.ubuntu-fr.org/serveur_mail_avec_postfix_et_courier-imap_bis

      38
            BERNIER François –http://astronomie-astrophotographie.fr
Vous pouvez aussi lire
Diapositive suivante ... Annuler