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



Documents pareils
M2-ESECURE Rezo TP3: LDAP - Mail

CASE-LINUX MAIL. Introduction. CHARLES ARNAUD Linux MAIL

Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à Lille. Mars

Installation du DNS (Bind9)

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

Installer un serveur de messagerie sous Linux

Déploiement d'un serveur ENT

INSTALLATION ET CONFIGURATION DE OPENLDAP

Installation d un Serveur de Messagerie

Outils Logiciels Libres

Installation GLPI-OCSNG-SSL Linux Debian Sarge

Mise en place d un Webmail

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

OpenLDAP, un outil d administration Réseau. Une implémentation d OpenLDAP

BONY Simon IR1. Services Réseaux TP3. BONY Simon

Procédures informatiques administrateurs Création d un serveur FTP sous Linux

Configuration d'un annuaire LDAP

L auto-hébergement. Sébastien Dufromentel, Clément Février ALDIL, Conférence jeudi du libre. 7 février 2013

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

LDAP et carnet d'adresses mail

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

Installer un serveur de messagerie avec Postfix

S E C U R I N E T S C l u b d e l a s é c u r i t é i n f o r m a t i q u e I N S A T. Tutoriel Postfix

Installation d un serveur de messagerie en local. Télécommunications & réseaux. Nom-prénom: Fiche contrat

DNS et Mail. LDN 15 octobre DNS et Mail. Benjamin Bayart, Fédération FDN. DNS - fichier de zone. DNS - configuration

IUT Charlemagne, NANCY. Serveur Mail Sécurisé. CROUVEZIER Thibaut, FOLTZ Guillaume, HENRIOT François, VOISINET Florian

Installer un domaine DNS

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

Imprimantes et partage réseau sous Samba avec authentification Active Directory

Préparation d un serveur Apache pour Zend Framework

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

Installation d'un serveur sftp avec connexion par login et clé rsa.

Description de la maquette fonctionnelle. Nombre de pages :

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Mise en place d un serveur de messagerie

Documentation technique Nagios

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

Pack Evolix Serveur Mail Documentation d'utilisation

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

BIND : installer un serveur DNS

Module 7 : Configuration du serveur WEB Apache

LDAP : pour quels besoins?

SECURIDAY 2012 Pro Edition

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Instructions Mozilla Thunderbird Page 1

But de cette présentation. Contrôleur de domaine avec Samba (rédigé pour Ubuntu Server) Introduction. Samba: principes

Guide administrateur AMSP

LINUX REDHAT, SERVICES RÉSEAUX/INTERNET

Dossier d analyse et de comparaison 2012

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

RTN / EC2LT Réseaux et Techniques Numériques. Ecole Centrale des Logiciels Libres et de Télécommunications

Bind, le serveur de noms sous Linux

Maintenir Debian GNU/Linux à jour

Authentification des utilisateurs avec OpenLDAP

CONFIGURATION DU SERVEUR DE MAILS EXIM. par. G.Haberer, A.Peuch, P.Saade

Gestion d identités PSL Installation IdP Authentic

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Transport Layer Security (TLS) Guide de mise en œuvre. Version: 1.0

Les différentes méthodes pour se connecter

Couche application. La couche application est la plus élevée du modèle de référence.

sshgate Patrick Guiran Chef de projet support

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Once the installation is complete, you can delete the temporary Zip files..

OpenLDAP. Astuces pour en faire l'annuaire d'entreprise idéal THÈME TECHNIQUE - ADMINISTRATION SYSTÈME. Jonathan CLARKE - jcl@normation.

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

MANUEL DE CRÉATION ET DE CONFIGURATION DES BOÎTES CHEZ ALL2ALL (POUR LE GESTIONNAIRE) v1.3

TAGREROUT Seyf Allah TMRIM

Serveur de messagerie sous Debian 5.0

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel.

OFFICE OUTLOOK QUICK START GUIDE

WEB page builder and server for SCADA applications usable from a WEB navigator

Architecture PKI en Java

Installation et configuration de Vulture Lundi 2 février 2009

Linux. Sécuriser un réseau. 3 e édition. l Admin. Cahiers. Bernard Boutherin Benoit Delaunay. Collection dirigée par Nat Makarévitch

Configuration du nouveau Bureau Virtuel (BV) collaboratif de Lyon I

CASE-LINUX MAIL - ROUNDCUBE

Accès aux ressources informatiques de l ENSEEIHT à distance

Contenu. Cocher : Network Policy and Access Services > Next > Next. Cocher : Network Policy Server > Next > Install

SOMMAIRE ÉTAPES OBLIGATOIRES. Récupérer le connecteur... 3

sommaire ÉTAPES OBLIGATOIRES Récupérer le connecteur... 3

Installation de GFI MailSecurity en mode passerelle

0.1 Mail & News : Thunderbird

Services Réseaux - Couche Application. TODARO Cédric

Domain Name System. Schéma hiérarchique. Relation

PROCÉDURE D AIDE AU PARAMÉTRAGE

LOSLIER Mathieu. Filière Informatique et Réseau 1 ère année. TP DNS. Responsable : LOHIER Stephane. Chargé de TD : QUIDELLEUR Aurélie

Installation de GFI MailEssentials

Description : Les candidats doivent être capables de conserver l'heure système et synchroniser l'horloge via le protocole NTP

Phase 1 : Introduction 1 jour : 31/10/13

Cisco Certified Network Associate

Tutoriel d'utilisation du logiciel Thunderbird version 2.0

Configuration de plusieurs serveurs en Load Balancing

JES Report Broker. Campus Technologies. SAE de CHALEMBERT 1 Rue Blaise PASCAL JAUNAY-CLAN info@campustec.

Transcription:

Installation d un serveur MAIL sous Ubuntu Server 12.10 1

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

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

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

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

Mail Delivery Agent ou MDA Administration Réseau Linux MAIL Server 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 MTA (Mail Transfert Agent) SERVEURS 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

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

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

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

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

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

12

13

14

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 courierimap 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

3-3 Configuration de LDAP Administration Réseau Linux MAIL Server 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 <$ mailhost> 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 <cn=config>. Voici la démarche pour intégrer un nouveau schéma : # cat > /etc/ldap/slapd.conf << EOF include include include include include /etc/ldap/schema/core.schema /etc/ldap/schema/cosine.schema /etc/ldap/schema/nis.schema /etc/ldap/schema/inetorgperson.schema /etc/ldap/schema/authldap.schema EOF 16

Avec cette commande, nous allons rediriger la sortie standard (indicateur > après cat) jusqu à l indicateur << EOF (End Of File) dans le fichier slapd.conf # rm -R /etc/ldap/slapd.d/cn\=config/cn\=schema/* # slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/ ATTENTION : si vous rencontrez un code erreur du type : 5144ef9e /etc/ldap/slapd.conf: line 1: <include> extra cruft after <file>. slaptest: bad configuration directory! Vérifier la syntaxe dans le fichier slapd.conf et remplacer les espaces par une tabulation Puis relancer la ligne de commande : # slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/ # chown openldap:openldap /etc/ldap/schema/ -R # chown openldap:openldap /etc/ldap/slapd.d/ -R # /etc/init.d/slapd restart Dans l ordre : on créé un fichier contenant les schémas qu on veut intégrer on efface la configuration par défaut de LDAP on utilise slaptest pour recréer la configuration avec le nouveau schéma on remet les droits dans le bon sens et on redémarre pour être sûr que la configuration soit bien prise en compte (ce qui est normalement facultatif, dans la mesure où les changements sont pris en compte à chaud par LDAP lorsqu on exécute <slaptest>). 17

Génération des mots de passes cryptés pour l administrateur LDAP et pour le premier utilisateur du serveur de messagerie. # slappasswd -s <votre_mot_de_passe> -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

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 <dc=> 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

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 <cn=admin>) 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

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

La base de donnée aliases est aussi une Unité Organisationnelle (<ou=aliases>). Création du premier utilisateur du service de messagerie. Créer d abord un mot de passe pour cet utilisateur : # slappasswd -s <votre_mot_de_passe> -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

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

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

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

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

# 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

# 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

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 << EOF server_host = localhost server_port = 389 search_base = dc=domaine,dc=tld query_filter = (&(objectclass=courierdomainalias)(virtualdomain=%s)) result_attribute = virtualdomain bind = yes bind_dn = cn=admin,dc=domaine,dc=tld bind_pw = <mot_de_passe_en_clair_admin_ldap> version = 3 EOF # cat > /etc/postfix/ldap-accounts.cf << EOF server_host = localhost server_port = 389 search_base = dc=domaine,dc=tld query_filter = (& (objectclass=couriermailaccount)(mail=%s)) result_attribute = mailbox bind = yes bind_dn = cn=admin,dc=domaine,dc=tld bind_pw = <mot_de_passe_en_clair_admin_ldap> version = 3 EOF # cat > /etc/postfix/ldap-aliases.cf << EOF server_host = localhost search_base = dc=domaine,dc=tld query_filter = (&(objectclass=couriermailalias) (mail=%s)) result_attribute = maildrop bind = yes bind_dn = cn=admin,dc=domaine,dc=tld bind_pw = <mot_de_passe_en_clair_admin_ldap> version = 3 EOF 29

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 << EOF # Dovecot LDA dovecot unix - n n - - pipe flags=drhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f \${sender} -d \${user}@\${nexthop} -a \${recipient} EOF Vérification de base de postfix : On vérifie qu il n y a pas d erreur de syntaxe et on recharge la configuration : # postfix check # postfix reload Si tout est bien configuré postfix devrait répondre «refreshing the Postfix mail system»! Pour vérifier que Postfix communique bien avec le serveur OpenLDAP, utilisez l'utilitaire postmap. # postmap -q utilisateurmessagerie@domaine.tld ldap:/etc/postfix/ldap-accounts.cf Devrait faire un récapitulatif de tous les paramètres liés à l utilisateur de messagerie créé précédemment! # service postfix restart Relance le service postfix et prend en compte les modifications. Par la suite on préfèrera la commande # postfix reload Car elle n interrompt pas le service SMTP!, puis ensuite exécuter : # service postfix stop # newaliases # service postfix start 30

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

# 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 LDAP_CRYPTPW clearpassword 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

# # 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

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

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=<root@ubuntu-server-64.ghost.fr> Mar 18 22:09:36 Ubuntu-SERVER-64 postfix/cleanup[5107]: 0305AE41E7: message-id=<20130318210936.0305ae41e7@ubuntu-server-64.ghost.fr> Mar 18 22:09:36 Ubuntu-SERVER-64 postfix/qmgr[4674]: 0305AE41E7: from=<root@ubuntu-server-64.ghost.fr>, size=376, nrcpt=1 (queue active) Mar 18 22:09:36 Ubuntu-SERVER-64 postfix/virtual[5109]: 0305AE41E7: to=<francois.bernier@ghost.fr>, 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

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

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

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-openldapet-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