installation d’un serveur mail sous ubuntu server...

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

Upload: vothien

Post on 10-Sep-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

1 BERNIER François –http://astronomie-astrophotographie.fr

Installation d’un serveur MAIL sous Ubuntu Server 12.10

Page 2: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

2 BERNIER François –http://astronomie-astrophotographie.fr

TabledesmatièresInstallation 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–MiseenŒuvreTopologieetversionsutilisées ..................................................................... 8 

3‐Installationetconfigurationdesdifférentslogiciels .......................................................... 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

Page 3: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

3 BERNIER François –http://astronomie-astrophotographie.fr

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.

Page 4: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

4 BERNIER François –http://astronomie-astrophotographie.fr

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.

Page 5: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

5 BERNIER François –http://astronomie-astrophotographie.fr

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.

Page 6: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

6 BERNIER François –http://astronomie-astrophotographie.fr

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

Page 7: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

7 BERNIER François –http://astronomie-astrophotographie.fr

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

Page 8: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

8 BERNIER François –http://astronomie-astrophotographie.fr

2–MiseenŒuvreTopologieetversionsutilisé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.

Page 9: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

9 BERNIER François –http://astronomie-astrophotographie.fr

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

Page 10: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

10 BERNIER François –http://astronomie-astrophotographie.fr

• 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

Page 11: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

11 BERNIER François –http://astronomie-astrophotographie.fr

3‐Installationetconfigurationdesdifférentslogiciels

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 :

Page 12: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

12 BERNIER François –http://astronomie-astrophotographie.fr

Page 13: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

13 BERNIER François –http://astronomie-astrophotographie.fr

Page 14: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

14 BERNIER François –http://astronomie-astrophotographie.fr

Page 15: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

15 BERNIER François –http://astronomie-astrophotographie.fr

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…

Page 16: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

16 BERNIER François –http://astronomie-astrophotographie.fr

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 <$ 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 /etc/ldap/schema/core.schema

include /etc/ldap/schema/cosine.schema

include /etc/ldap/schema/nis.schema

include /etc/ldap/schema/inetorgperson.schema

include /etc/ldap/schema/authldap.schema

EOF

Page 17: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

17 BERNIER François –http://astronomie-astrophotographie.fr

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>).

Page 18: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

18 BERNIER François –http://astronomie-astrophotographie.fr

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.

Page 19: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

19 BERNIER François –http://astronomie-astrophotographie.fr

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

Page 20: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

20 BERNIER François –http://astronomie-astrophotographie.fr

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/

Page 21: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

21 BERNIER François –http://astronomie-astrophotographie.fr

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

Page 22: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

22 BERNIER François –http://astronomie-astrophotographie.fr

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: [email protected]

mailbox: ghost.fr/ francois.bernier /

sn: bernier

uid: francois.bernier

Page 23: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

23 BERNIER François –http://astronomie-astrophotographie.fr

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.

Page 24: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

24 BERNIER François –http://astronomie-astrophotographie.fr

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 !

Page 25: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

25 BERNIER François –http://astronomie-astrophotographie.fr

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.

Page 26: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

26 BERNIER François –http://astronomie-astrophotographie.fr

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 internet2.3. root@localhost4. hostname.domaine.TLD5. hostname.domaine.TLD, hostname, localhost.domaine.TLD, localhost6. 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.

Page 27: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

27 BERNIER François –http://astronomie-astrophotographie.fr

# 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

Page 28: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

28 BERNIER François –http://astronomie-astrophotographie.fr

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

Page 29: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

29 BERNIER François –http://astronomie-astrophotographie.fr

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

Page 30: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

30 BERNIER François –http://astronomie-astrophotographie.fr

Il faudra bien entendu modifier les fichiers pour qu’ils soient en correspondance avec votreré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 [email protected] 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

Page 31: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

31 BERNIER François –http://astronomie-astrophotographie.fr

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

Page 32: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

32 BERNIER François –http://astronomie-astrophotographie.fr

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

Page 33: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

33 BERNIER François –http://astronomie-astrophotographie.fr

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

Page 34: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

34 BERNIER François –http://astronomie-astrophotographie.fr

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

# authtest [email protected]

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.

Page 35: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

35 BERNIER François –http://astronomie-astrophotographie.fr

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 [email protected]

1. Taper ici le corps du message puis entrée une fois fini. Exemple : BLABLA2. 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 [email protected]

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=<[email protected]>

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

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

Mar 18 22:09:36 Ubuntu-SERVER-64 postfix/virtual[5109]: 0305AE41E7: to=<[email protected]>, 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

Page 36: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

36 BERNIER François –http://astronomie-astrophotographie.fr

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://[email protected]/webmail/

Vous arrivez sur la page d’identification de Squirrelmail

Page 37: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

37 BERNIER François –http://astronomie-astrophotographie.fr

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.

Page 38: Installation d’un serveur MAIL sous Ubuntu Server 12astronomie-astrophotographie.fr/COMPUTING/Administration-Débian... · Installation d’un serveur MAIL sous Ubuntu Server 12.10

AdministrationRéseauLinux–MAILServer

38 BERNIER François –http://astronomie-astrophotographie.fr

Sources :

http://www.linuxtopia.org/online_books//network_administration_guides/ldap_administration/appendix-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