WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Réduction des coà»ts d'investissement avec la mise en place d'un environnement de virtualisation en production à  la DTAI

( Télécharger le fichier original )
par Cheikh Saadbouh Tall
Ecole Supérieure de Technologie et de Management de Dakar - Diplôme d'Ingénieur Technologue en Génie Logiciel et Téléinformatique 2006
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

PARTIE 4 : MISE EN OEUVRE

Partie 4

I. Environnement technique : matériels et logiciels

Pour tester l'environnement que nous souhaitons virtualiser, nous avons téléchargé et installé une version de démonstration d'ESX Server 3.2.0 depuis le site de VMware www.vmware.com. Certaines des fonctionnalités citées ci-dessus ne sont pas testées. En effet ils ne sont pas disponibles en version demo.

Voici les objectifs pratiques que nous nous sommes fixés :

· Installer ESX Server

· Créer les 4 serveurs virtuels sur une seule machine physique.

· Installer un serveur de mail SMTP sur une Debian avec Postfix comme serveur de messagerie.

· Installer un webmail via le projet Horde.

· Installer un serveur DNS sous Windows 2003, déployer Active Directory.

· Installer un serveur de fichier sous Windows 2003 Server.

1-1. Matériels

Pour s'assurer que la base matérielle correspond aux attentes d'un serveur de virtualisation, seulement une gamme restreinte de serveurs est certifiée pour ESX. Bien que le système d'exploitation ESX Server soit basé sur BSD et RedHat, cette restriction s'explique aisément par les besoins physiques:

· La configuration que nous utilisons

Général

Type

Serveur

Utilisation recommandée

PME, grandes entreprises

Facteur de forme

Montage en rack - 5U

Évolutivité des serveurs

Bidirectionnel

Nombre de baies pour unités échangeables à chaud

8

Largeur

22 cm

Profondeur

64 cm

Hauteur

46.8 cm

Processeur

Processeurs 4 CPU x 2,333 GHz

 
 

Nombre maxi

4

Évolutivité

Évolutif

Carte mère

Jeu de puces

Intel 5000Z

Contrôleur de stockage

Type

RAID - intégré - PCI Express x4

Type d'interface du contrôleur

Serial ATA-150 / SAS

Nom du contrôleur de stockage

Smart Array E200i

Second contrôleur de stockage

Type

1 x IDE - intégré

Type d'interface du contrôleur

IDE/ATA

Stockage

Disque dur

265 Go

Moniteur

Type de moniteur

Aucun(e)

Contrôleur graphique

Type

Intégré

Processeur graphique

ATI ES1000

Mémoire vidéo

SDRAM

Réseaux

Réseaux

Adaptateur réseau - PCI Express x4 - intégré

Contrôleur(s) Ethernet

HP NC373i

Protocole de liaison de données

Ethernet, Fast Ethernet, Gigabit Ethernet

Caractéristiques

Wake on LAN (WoL), prise en charge ACPI

Conformité aux normes

IEEE 802.3, IEEE 802.3u, IEEE 802.3ab

Extension/connectivité

Nombre total de baies d'extension (disponibles)

4 ( 4 ) x accessible de face - 5.25" x 1/2H 8 ( 8 ) x hot-swap - 3.5" x 1/3H

Nombre total de connecteurs d'extension (disponibles)

3 ( 3 ) x PCI Express x8 ( mode x4 ) 2 ( 2 ) x PCI-X / 100 MHz 1 ( 1 ) x PCI-X / 133 MHz 8 ( 8 ) x mémoire - DIMM 240 broches 2 ( 1 ) x processeur

Interfaces

1 x affichage / vidéo - VGA - HD D-Sub (HD-15) 15 broches 1 x clavier - générique - mini-DIN 6 broches (style PS/2) 1 x souris - générique - mini-DIN 6 broches (style PS/2) 1 x série - RS-232 - D-Sub (DB-9) 9 broches 1 x réseau - Ethernet 10Base-T/100Base-TX/1000Base-T - RJ-45 1 x gestion - HP iLO - RJ-45 6 x USB - USB à 4 broches, type A ( 2 à l'avant )

Divers

Caractéristiques

Mot de passe système, mot de passe à la mise sous tension, verrouillage de la configuration du disque, contrôle des E/S disquette, contrôle des E/S du port parallèle, contrôle des E/S du port série

Conformité aux normes

ACPI 2.0

Type de tarification

CTO

Alimentation

Type de périphérique

Alimentation - branchement à chaud

Alimentation redondante

En option

Plan d'action pour système d'alimentation redondante

1+1 (avec source d'alimentation en option)

Qté installée

1

Qté max supportée

2

Tension requise

CA 120/230 V ( 50/60 Hz )

Puissance fournie

1000 Watt

Système d'exploitation / Logiciels

SE certifié

Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server, Red Hat Linux, SuSe Linux, SCO OpenServer 5.0.7, Microsoft Windows Server 2003 Enterprise Edition, Microsoft Windows Server 2003 Web Edition,ESX SERVER ,Microsoft Windows Server 2003 Standard Edition, UnixWare 7.1.3, Novell NetWare 6.5, Microsoft Windows Small Business Server 2003, UnixWare 7.1.4, SCO OpenServer 6, Novell Open Enterprise Server, Microsoft Windows Server 2003 R2 Enterprise Edition, Microsoft Windows Server 2003 R2 Standard Edition

Caractéristiques d'environnement

Température de fonctionnement mini

10 °C

Température de fonctionnement maxi

35 °C

Taux d'humidité en fonctionnement

10 - 90%

TAB 4-1. Caractéristiques détaillées - HEWLETT-PACKARD ProLiant ML350 G5

La configuration utilisée peut paraître importante, mais la virtualisation avec un serveur ESX a pour objectif de remplacer une série de serveurs.

Nous utilisons ici la version Démonstration de ESX SERVER 3.2.0.

ESX offre l'utilisation de processeur multicoeur avec la base d'une licence par processeur. L'activation de l'option SMP ouvre la possibilité d'utiliser deux processeurs pour une machine virtuelle.

1-2. Logiciels

Vmware Infrastructure est disponible sur trois architectures logicielles différentes, dont celle qui nous intéresse, la version Entreprise Edition.

Pour pouvoir l'installer, nous avons besoin de deux choses : le système d'exploitation ESX Server et un serveur certifié, celui dont nous disposons en est un.

II. Mise en place d'un ESX SERVER et d'un Serveur de Messagerie virtualisé

2-1. Mise en place d'ESX SERVER

Après avoir insérer le CD-Rom du serveur ESX 3, nous obtenons l'écran ci-dessous, appuyons sur la touche « entrer » du clavier pour continuer l'installation.

Nous ne disposons pas du CD original. Nous avons téléchargé la version d'évaluation du serveur ESX par Internet, donc nous avons procédé au test du CD.

 On obtient alors l'écran suivant

L'installation se fait à l'aide d'un assistant, cliquons sur le bouton suivant

Sélectionnons la langue du clavier, puis cliquons sur suivant :

A l'écran suivant nous devrons sélectionner le type de souris qui est directement raccordé à notre serveur ESX ou à notre Switch KVM. Puis accepter le contrat de licence. L'écran ci-dessous permet de créer les partitions du serveur ESX.

Il propose un partitionnement par défaut, cependant nous allons sélectionner l'option avancée afin de gérer nous même la taille de chaque partition.

L'écran si dessous permet de sélection la partition sur laquelle le serveur ESX va booter, il est conseillé de laisser l'option par défaut : avec la première partition système. Cliquons ensuite sur suivant :

Nous serons alors face à un écran vous proposant de créer des partitions de la machine virtuelle

Pour que le Serveur ESX fonctionne, il faudra créer comme sous linux, les répertoires suivants :

Type

Système de fichier

Taille

/boot

Ext3

101 Mo

 

Vmkcore

101 Mo

/

Ext3

4009 Mo

 

Swap

509 Mo

/tmp

Ext3

2047 Mo

/var

Ext3

2047 Mo

/home

Ext3

2047 Mo

/opt

Ext3

1027 Mo

 

Vmfs3

408057 Mo (espace disque restant)

 
 
 

Le système de fichier Vmfs3 permet de stocker les machines virtuelles, nous avons la possibilité de les stocker sur un support SAN ou NAS,  dans ce cas la création du système de fichier  Vmfs3 est inutile.

Chaque VM est encapsulée dans un ou plusieurs fichiers et stockée dans le VMFS.
Les fichiers peuvent être gérés par un ESX et visibles par un autre. Ce système de fichier possède les propriétés suivantes :

· Système de fichier cluster, les fichiers des machines virtuelles sont stockés dans des volumes partagés en Fibre Channel ou iSCSI SAN.

· Plusieurs serveurs ESX peuvent accéder à plusieurs volumes VMFS en même temps.

· Rajout ou suppression des volumes VMFS sur les serveurs ESX sans redémarrage.

· SCSI Réservation, préserve l'intégrité du volume VMFS lors des lectures/écritures.

· VMFS est testé, certifié et optimisé pour de nombreux systèmes de stockages

· Facilité de gestion avec la découverte automatique des volumes VMFS.

Sélectionnons ensuite la région 

Entrer le mot de passe de l'administrateur

L'assistant affiche ensuite le récapitulatif de la configuration du serveur ESX. Cliquons sur suivant pour lancer l'installation.

Nous pouvons maintenant procéder à la création des machines virtuelles.

.2-2. Mise en place d'un serveur de messagerie virtualisé

Nous voulons ici créer un serveur SMTP principal qui recevra nos mails et les enverra au reste du monde. Nous souhaitons pouvoir envoyer des e-mails depuis ce serveur depuis n'importe où. Dans cette configuration il y aura de l'authentification SMTP.

Nous utiliserons comme système la distribution Debian Stable et comme serveur de messagerie Postfix.

Création d'une nouvelle machine virtuelle : serveur de messagerie

En sélectionnant l'option « custom » nous pourrons personnaliser les différentes options de la machine virtuelle.

Indiquons le nom de la nouvelle machine virtuelle, puis sélectionnons suivant 

Spécifions un datastore, puis sélectionnons suivant :

Sélectionnons le système d'exploitation que nous désirons installer, puis cliquons sur suivant :

Sélectionnons le nombre de processeur que nous voudrons affecter a cette machine, puis suivant :

L'assistant proposera automatiquement la taille de ram par défaut (512 Mo) pour la VM, cependant vous pouvons augmenter la taille de la ram si nous utilisons des applications lourdes.

Nous devons spécifier ici le nombre de carte réseau:

La VM doit avoir un disque dur, on va donc créer un disque dur virtuel:

Spécifions la taille du disque :

ESX serveur, grâce à son architecture, nous permet de connecter directement les machines virtuelles aux disques SAN. Il s'agit d'une option importante, qui n'est pas disponible sur les autres technologies de virtualisation. Pour rappel, ces autres technologies permettent au serveur hôte de stocker les disques virtuels sur leurs propres disques SAN. On peut donc s'attendre, avec la technologie ESX, à un gain de performance. ESX offre, également, de la même manière que VS et GES, la possibilité de stocker les disques en utilisant des fichiers stockés en local dans un répertoire de la machine hôte.

Insérons le CD ROM de Debian dans le serveur ESX, puis démarrons la machine virtuelle.

2.2.1. INSTALLATION DE POSTFIX + ANTIVIRUS/ANTISPAM + WEBMAIL IMP

Postfix est certainement un des meilleurs serveurs d'e-mail existant, c'est pourquoi mon choix se porte sur celui-ci. Le sujet des e-mails est un sujet compliqué ou les documentations sont nombreuses et confusent assez souvent.

Commençons par installer Postfix et ce qui sera nécessaire à l'authentification SMTP.

a)Installation des paquets

Après une installation de Debian 3.1 Stable, on peut entamer l'installation des outils qui nous seront nécessaires pour le fonctionnement d'un serveur POSTFIX accompagné d'un WEBMAIL et des outils ANTISPAM et ANTIVIRUS.

apt-get install vim

apt-get install postfix

apt-get install postfix-mysql

apt-get install postfix-doc

apt-get install mysql-client

apt-get install mysql-server

apt-get install courier-authdaemon

apt-get install courier-authmysql

apt-get install courier-pop

apt-get install courier-pop-ssl

apt-get install courier-imap

apt-get install courier-imap-ssl

apt-get install postfix-tls

apt-get install libsasl2

apt-get install libsasl2-modules

apt-get install libsasl2-modules-sql

apt-get install openssl

apt-get install apache

apt-get install apache-ssl

apt-get install php5

apt-get install php5-cgi

apt-get install php5-imap

apt-get install php5-pear-log

apt-get install phpmyadmin

apt-get install php5-pear

apt-get install php5-pear-log

apt-get install php5-domxml

apt-get install php-mail-mime

apt-get install amavisd-new

apt-get install spamassassin

apt-get install clamav

apt-get install clamav-daemon

apt-get install zoo

apt-get install unzip

apt-get install unarj

Quelques précisions :

§ POSTFIX est le serveur de messagerie que nous désirons installer et configurer. C'est lui qui aura la tâche de réception des emails et leur redistribution dans les boîtes mail.

§ MySQL est le système de base de données que nous allons utiliser pour recenser les domaines gérés par POSTFIX ainsi que les utilisateurs, les redirections et les mots de passes.

§ COURIER est un système alternatif à POSTFIX. Nous n'utiliserons ici que ses fonctionnalités de POP3/IMAP pour autoriser les utilisateurs à accéder à leurs comptes email.

§ SASL si un utilisateur se connecte depuis une IP autre que celle de notre réseau, SASL se chargera d'activer l'identification de l'utilisateur par identifiant et mot de passe à notre serveur SMTP.

§ AMAVIS est un filtre ANTIVIRUS et ANTISPAM de POSTFIX. Il est aussi connu sous le nom de SPAMASSASSIN.

§ Les outils de décompression comme ZOO UNZIP et UNARJ sont utiles pour l'antivirus qui pourra ainsi vérifier dans les archives envoyés par email s'ils ne contiennent pas de virus.

§ PHPMYADMIN est utile pour vérifier les informations entrées dans la base de données. Utile également pour l'ajout des informations dans la base MySQL

§ APACHE et PHP nous servirons pour le webmail IMP de HORDE.

b) Configuration du serveur MySQL

Après l'installation du paquet MySQL-Server, le mot de passe de l'utilisateur root est à définir.

mysqladmin -u root password motdepasse-root

Ensuite, il nous faut créer la base MySQL nommée `postfix_db'.

mysqladmin -u root -p create postfix_db

Il faut également créer un utilisateur appelé `postfix' avec un mot de passe au choix (ici ce sera `passer').

echo "grant select on postfix_db.* to postfix@127.0.0.1 identified \

by 'passer';" | mysql -u root -p

Pour prendre en compte les modifications des utilisateurs MySQL il faut effectuer un flush de celle-ci.

echo "flush privileges;" | mysql -u root -p

Enfin, il faut importer la structure des tables de la base `postfix_db' pour que POSTFIX puisse fonctionner.

echo "CREATE TABLE domains ( \

domain varchar(50) NOT NULL, \ PRIMARY KEY (domain) ) \ TYPE=MyISAM; \

CREATE TABLE forwardings ( \ source varchar(80) NOT NULL, \ destination TEXT NOT NULL, \ PRIMARY KEY (source) ) \ TYPE=MyISAM;\

CREATE TABLE users ( \ email varchar(80) NOT NULL, \ password varchar(20) NOT NULL, \ PRIMARY KEY (email) \) TYPE=MyISAM; " | mysql -u root -p postfix_db

c) Configuration de POSTFIX pour MySQL

Nous devons créer des fichiers de configuration pour indiquer les informations de connexion à la base MySQL de POSTFIX. Ici nous retrouvons entre autres, les identifiants et mots de passes pour accéder à MySQL, mais également les requêtes à effectuer par POSTFIX pour retrouver un utilisateur et ainsi de suite.

/etc/postfix/mysql-virtual_domains.cf

user = postfix

password = passer

dbname = postfix_db

table = domains

select_field = 'virtual'

where_field = domain hosts = 127.0.0.1

/etc/postfix/mysql-virtual_forwardings.cf

user = postfix

password = passer

dbname = postfix_db

table = forwardings

select_field = destination

where_field = source

hosts = 127.0.0.1

/etc/postfix/mysql-virtual_mailboxes.cf

user = postfix

password = passer

dbname = postfix_db

table = users

select_field = CONCAT(SUBSTRING_INDEX(email,'@',

-1),'/',SUBSTRING_INDEX(email,'@',1),'/')

where_field = email

hosts = 127.0.0.1

/etc/postfix/mysql-virtual_email2email.cf

user = postfix

password=passer

dbname = postfix_db

table = users

select_field = email

where_field = email

hosts = 127.0.0.1

d) Création de la configuration Virtual Mail

Pour éviter de devoir créer sur le système un utilisateur par compte email, nous optons pour la création d'un répertoire VMAIL dans lequel seront stockés tous les utilisateurs, sans que nous ayons à les ajouter sur l'OS. Nous définissons volontairement l'UID et le GID d'utilisateur et du groupe VMAIL à 5000.

groupadd -g 5000 vmail

useradd -g vmail -u 5000 vmail -d /home/vmail -m

e) Configuration de POSTFIX

POSTFIX a été relativement complexe à configurer. Il existe une multitude de fonctions, de commandes et de paramètres à personnaliser. Nous retrouvons ci-dessous notre fichier de configuration.

Nous définissons ici le chemin vers les différents fichiers de configuration que nous avons créé auparavant, nous permettant l'accès à la base de données MySQL.

En fin de fichier, les paramètres `content_filter' et `receive_override_options' indiquent les adresses et options pour transmettre les emails vers AMAVIS pour un traitement ANTIVIRUS et ANTISPAM.

/etc/postfix/main.cf

smtpd_banner = $myhostname ESMTP $mail name (Debian/GNU)

biff = no

append_dot_mydomain = no

myhostname = srv.mail.local

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

myorigin = /etc/mailname

mydestination= srv.mail.local,localhost.localdomain, srv.local, localhost.mail.local, localhost

relayhost =

mynetworks = 127.0.0.0/8 10.1.0.0/16

mailbox_size_limit = 0

recipient_delimiter = +

inet_interfaces = all

virtual_alias_domains =

virtual_alias_maps=mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf

virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf

virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf

virtual_mailbox_base = /home/vmail

virtual_uid_maps = static: 5000

virtual_gid_maps = static: 5000

smtpd_sasl_auth_enable = yes

broken_sasl_auth_clients = yes

smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authentificated, reject_unauth_destination

smtpd-use_tls = yes

smtpd_use_tls = yes

content_filter=amavis:[127.0.0.1]:10024

receive_override_options = no_address_mappings

Concernant le fichier smtpd.conf, nous devons activer le plugin MySQL pour qu'il puisse être interfacé avec notre serveur de base de données. C'est la variable `auxprop_plugin' qui nous le permet.

/etc/postfix/sasl/smtpd.conf

pwcheck_method: auxprop auxprop_plugin: sql

mech_list: plain login cram-md5 digest-md5

sql_engine: mysql

sql_hostnames: 127.0.0.1

sql_user: postfix

sql_passwd: passer

sql_database: postfix_db

sql_select: select password from users where email='%u@%r'

Enfin, il ne nous reste plus qu'à configurer les informations générales de POSTFIX dans le fichier de configuration `master.cf'.

/etc/postfix/master.cf

#

# Postfix master process configuration file. For details on the format

# of the file, see the master (5) manual page (command: "man 5 master").

#

# ==========================================================================

# service type private unpriv chroot wakeup maxproc command + args

# (yes) (yes) (yes) (never) (100)

==========================================================================

smtp inet n - - - - smtpd

#submission inet n - - - - smtpd

# -o smtpd_enforce_tls=yes

# -o smtpd_sasl_auth_enable=yes

# -o smtpd_client_restrictions=permit_sasl_authenticated,reject

#smtps inet n - - - - smtpd

# -o smtpd_tls_wrappermode=yes

# -o smtpd_sasl_auth_enable=yes

# -o smtpd_client_restrictions=permit_sasl_authenticated,reject

#628 inet n - - - - qmqpd

pickup fifo n - - 60 1 pickup

cleanup unix n - - - 0 cleanup

qmgr fifo n - n 300 1 qmgr

#qmgr fifo n - - 300 1 oqmgr

tlsmgr unix - - - 1000? 1 tlsmgr

rewrite unix - - - - - trivial-rewrite

bounce unix - - - - 0 bounce

defer unix - - - - 0 bounce

trace unix - - - - 0 bounce

verify unix - - - - 1 verify

flush unix n - - 1000? 0 flush

proxymap unix - - n - - proxymap

smtp unix - - - - - smtp

# When relaying mail as backup MX, disable fallback_relay to avoid MX loops

relay unix - - - - - smtp

-o fallback_relay=

# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5

showq unix n - - - - showq

error unix - - - - - error

discard unix - - - - - discard

local unix - n n - - local

virtual unix - n n - - virtual

lmtp unix - - - - - lmtp

anvil unix - - - - 1 anvil

scache unix - - - - 1 scache

#

# ====================================================================

# Interfaces to non-Postfix software. Be sure to examine the manual

# pages of the non-Postfix software to find out what options it wants.

#

# Many of the following services use the Postfix pipe(8) delivery

# agent. See the pipe(8) man page for information about ${recipient}

# and other message envelope options.

# ====================================================================

#

# maildrop. See the Postfix MAILDROP_README file for details.

# Also specify in main.cf: maildrop_destination_recipient_limit=1

f) Configuration du POP3/IMAP

Il faut désormais autoriser les modules d'authentification à accéder à la base de données MySQL. Ceci se fait au travers des fichiers de configurations énumérés ci-dessous.

/etc/courier/authdaemonrc

authmodulelist="authmysql"

authmodulelistorig="authcustom authcram authuserdb authldap authpgsql authmysql authpam"

daemons=5

version=""

authdaemonvar=/var/run/courier/authdaemon

Dans le fichier qui suit, nous indiquons les informations de connexion au serveur MySQL ainsi que le chemin vers le répertoire VMAIL que nous avons créé précédemment.

/etc/courier/authmysqlrc

MYSQL_SERVER 127.0.0.1

MYSQL_USERNAME postfix

MYSQL_PASSWORD passer

MYSQL_PORT 0

MYSQL_OPT 0

MYSQL_DATABASE postfix_db

MYSQL_USER_TABLE users

MYSQL_CLEAR_PWFIELD password

MYSQL_UID_FIELD 5000

MYSQL_GID_FIELD 5000

MYSQL_LOGIN_FIELD email

MYSQL_HOME_FIELD «/home/vmail"

MYSQL_MAILDIR_FIELD CONCAT (SUBSTRING_INDEX(email,'@',-

1),'/', SUBSTRING_INDEX (email,'@',1),'/')

g) Ajout des domaines & adresses email dans POSTFIX

Nous arrivons au stade où il est bon de commencer à remplir la base de données MySQL avec des valeurs de test pour pouvoir débuguer un maximum notre configuration. Nous décidons d'ajouter un domaine intitulé `mail.local' ainsi qu'une adresse email `toto1@mail.local' qui s'authentifiera avec le mot de passe `passer'.

echo "INSERT INTO \`domains\` (\`domain\`) VALUES \ ('mail.local');" | mysql -u root -p postfix_db

echo "INSERT INTO \`users\` (\`email\`,\`password\`) \ VALUES ('toto1@mail.local','passer');" | mysql \ -u root -p postfix_db

h) Configuration AMAVIS/SPAMASSASSIN

AMAVIS est destiné à faire le filtrage du SPAM et des VIRUS sur les mails que traitera POSTFIX. Pour qu'il fonctionne convenablement, ouvrons le fichier `amavisd.conf' et vérifions les valeurs des variables énoncées ci- dessous. La variable @lookup_sql_dsn doit être impérativement modifiée avec nos informations de connexion à la base de données MySQL. N'oublions pas de garder l'adresse `127.0.0.1' sur le port `3306'

/etc/amavis/amavisd.conf

$mydomain = 'localhost';

@bypass_virus_checks_acl = qw( . );

@bypass_spam_checks_acl = qw( . );

@lookup_sql_dsn=( ['DBI:mysql:postfix_db;host=127.0.0.1;port=3306', 'postfix', `passer'] );

$sql_select_policy = 'SELECT "Y" as local FROM domains WHERE

CONCAT("@",domain) IN (%k)';

$final_virus_destiny = D_DISCARD;

$final_banned_destiny = D_REJECT;

$final_spam_destiny = D_PASS;

$sa_tag_level_deflt = -1000;

$sa_tag2_level_deflt = 5.0;

$sa_kill_level_deflt = 10;

$sa_spam_subject_tag = '***SPAM*** ';

$sa_local_tests_only = 0;

Enfin, il faut créer l'utilisateur qu'AMAVIS va utiliser pour effectuer ses traitements. Nous le créons ainsi sous le nom de `clamav' dans le groupe `amavis'.

adduser clamav amavis

i) Droits d'accès aux fichiers

Il est nécessaire au bon fonctionnement de POSTFIX de lui accorder des droits d'accès à ses fichiers de configuration. Cette phase est la plus critique dans l'ensemble de l'installation de POSTFIX.

chown root:postfix -R /etc/postfix chmod 750 -R /etc/postfix

Pour appliquer tous les changements effectués sur les fichiers de configuration de POSTFIX, AMAVIS et les démons d'authentification, il faut redémarrer ceux-ci.

Redémarrage service AMAVIS :

/etc/init.d/amavis restart

Redémarrage du démon d'authentification :

/etc/init.d/courier-authdaemon restart

Redémarrage de POSTFIX :

/etc/init.d/postfix restart

Notre configuration est maintenant prête à être utilisée. Il ne nous reste plus qu'à installer HORDE et IMP qui nous permettrons d'accéder à nos mails via un webmail ergonomique.

§ Première phase de tests

Nous allons vérifier que jusque là, nous n'avons aucun problème de configuration.

Pour tester le service nous allons ouvrir deux consoles en `root' sur le serveur. Dans la première, nous allons entrer la commande suivante :

tail -f /var/log/mail.log

Celle-ci nous permettra de suivre en direct ce qui se passe sur notre serveur POSTFIX. Dans la seconde console nous allons effectuer un envoi d'email. Celui-ci se fait en quelques étapes. Les commandes à envoyer sont représentées avec le caractère `>' et les réponses du serveur sont représentées par le caractère `<'.

La première est la connexion en TELNET au port 25 de la machine hébergeant le service POSTFIX. Ici, il s'agit de `localhost'.

telnet localhost 25

< 220 srv.mail.local ESMTP Postfix

Ensuite, nous devons dire `bonjour' à POSTFIX en lui indiquant d'où nous provenons. Dans notre exemple nous lui disons que nous provenons du domaine

`mail.local'.

> ehlo mail.local

< 250-srv.mail.local

< 250-PIPELINING

< 250-SIZE 10240000

< 250-VRFY

< 250-ETRN

< 250-STARTTLS

< 250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5

< 250-AUTH=LOGIN PLAIN DIGEST-MD5 CRAM-MD5

< 250 8BITMIME

Après, nous devons donner l'adresse email de l'émetteur du mail. Nous ferons un envoi depuis `toto1@mail.local'.

< 250 Ok

Puis nous lui disons à qui nous voulons envoyer un message. Ici, ce sera sur mon compte gmail.

> rcpt to:<cctall@gmail.com>

< 250 Ok

Il ne nous reste plus qu'à indiquer les données que nous souhaitons envoyer.

> data

< 354 End data with <CR><LF>.<CR><LF>

> test de message

> .

< 250 Ok: queued as CAC7A9E08B

Enfin, nous quittons la connexion au serveur.

> quit

< 221 Bye

< Connection closed by foreign host.

Voila ce qui s'affiche sur le fichier de log : s'il y a une erreur de configuration il sera visible sur ce fichier

postfix/smtpd[14861]: BF6509E08C: client=localhost.localdomain[127.0.0.1]

postfix/cleanup[14858]:BF6509E08C:messageid=<20060412032647

CAC7A9E08B@srv.mail.local>

postfix/qmgr[14731]: BF6509E08C: from=<46500@gmail.com>, size=769, nrcpt=1 (queue active)

amavis[12814]: (12814-02) Passed, <46500@gmail.com> ->

<toto1@mail.local>, Message-ID:

<20060412032647.CAC7A9E08B@srv.mail.local>, Hits: -

postfix/smtp[14859]:CAC7A9E08B:to=<toto1@srv.mail.local>, relay=127.0.0.1[127.0.0.1], delay=135, status=sent (250 2.6.0 Ok, id=12814-02, from MTA: 250 Ok: queued as BF6509E08C)

postfix/qmgr[14731]: CAC7A9E08B: removed

postfix/smtpd[14861]: disconnect from localhost.localdomain[127.0.0.1]

postfix/virtual[14865]:BF6509E08C:to=<toto1@mail.local>,relay=virtual, delay=0, status=sent (delivered to maildir)

postfix/qmgr[14731]: BF6509E08C: removed

postfix/smtpd[14852]: disconnect from localhost.localdomain[127.0.0.1]

j) Configuration de PHP et des modules adéquats

Nous avons installé PHP via apt-get tout à l'heure. Il faut maintenant configurer les modules nécessaires à PHP pour que le webmail ainsi que phpMyAdmin puissent avoir accés à l'interpréteur PHP et entre autres, aux modules de base de données MySQL. Il faudra donc ajouter les lignes suivantes dans la section `[PHP]' des trois fichiers énoncés ci-dessous.

/etc/php5/apache/php.ini

/etc/php5/cli/php.ini

/etc/php5/cgi/php.ini

extension=mysql.so

extension=domxml.so

Une fois ces modifications effectuées, sauvegardons nos fichiers et redémarrons le service APACHE.

/etc/init.d/apache2 restart

Nous n'avons plus qu'à tester si PHP fonctionne bien avec APACHE. Pour ce faire, il nous suffit d'accéder en HTTP à l'adresse de la machine dans le répertoire de phpMyAdmin

http://10.1.1.165/phpmyadmin/

Connectons-nous sur la base de données mysql via phpmyadmin en entrant le nom de l'administrateur de la base créée ci-dessous :

Cliquons sur exécuter pour accéder à la base de données :

Nous parvenons maintenant à administrer la base de données postfix via une console web.

En cliquant sur « afficher » sur la ligne « users » nous porrons affichez l'ensemble des comptes utilisateurs crées. Ce qui donne ceci :

2-2-2. Installation du webmail HORDE

Un webmail est une application web qui permet à un utilisateur de se connecter à sa boîte aux lettres depuis n'importe quel endroit possédant une connexion Internet et un navigateur web (Internet Explorer par exemple).

Le framework HORDE est disponible en libre téléchargement à partir de www.horde.org Il est nécessaire à l'utilisation de notre webmail IMP, également produit de HORDE.

La première étape consiste à télécharger le tarball adéquat. A l'heure de l'écriture de ce mémoire, nous en sommes à la version 3.1.1. L'installation doit se faire dans le répertoire racine du serveur APACHE

cd /usr/share

wget http://ftp.horde.org/pub/horde/horde-3.1.1.tar.gz

tar zxvf horde-3.1.1.tar.gz

mv horde-3.1.1 horde

Maintenant il faut renommer les fichiers templates en fichiers de configuration standard. Il faudra donner les droits d'écriture sur les fichiers de configuration. Ceux-ci seront à retirer par la suite, à la fin de l'installation et configuration.

cd horde/config

for f in *.dist; do cp $f `basename $f .dist`; done

chmod 777 /usr/share/horde/config/conf.php [ACCESSOIRE]

chown www-data:www-data -R /usr/share/horde

Il faut ajouter à la base MySQL les informations concernant HORDE. Le dump à insérer créé la base, les tables et l'utilisateur nommé `horde' avec comme mot de passe `horde'.

mysql -u root -p < /usr/share/horde/scripts/sql/create.mysql.sql

Il faut désormais modifier les fichiers de configuration de HORDE. Nous avons effectué une configuration par défaut mais fonctionnelle pour faciliter la tâche.

/usr/share/horde/config/conf.php

<?php

$conf['debug_level'] = E_ERROR;

$conf['max_exec_time'] = 0;

$conf['use_ssl'] = 2;

$conf['server']['name'] = $_SERVER['SERVER_NAME'];

$conf['server']['port'] = $_SERVER['SERVER_PORT'];

$conf['compress_pages'] = true;

$conf['umask'] = 077;

$conf['session']['name'] = 'Horde';

$conf['session']['cache_limiter'] = 'nocache';

$conf['session']['timeout'] = 0;

$conf['cookie']['domain'] = $_SERVER['SERVER_NAME'];

$conf['cookie']['path'] = '/';

$conf['sql']['persistent'] = false;

$conf['sql']['hostspec'] = '127.0.0.1';

$conf['sql']['username'] = 'horde';

$conf['sql']['password'] = 'horde';

$conf['sql']['port'] = 3306;

$conf['sql']['protocol'] = 'tcp';

$conf['sql']['database'] = 'horde';

$conf['sql']['charset'] = 'iso-8859-1';

$conf['sql']['phptype'] = 'mysql';

$conf['auth']['admins'] = array('Administrator');

$conf['auth']['checkip'] = true;

$conf['auth']['checkbrowser'] = true;

$conf['auth']['alternate_login'] = false;

$conf['auth']['redirect_on_logout'] = false;

$conf['auth']['params']['username'] = 'Administrator';

$conf['auth']['params']['requestuser'] = false;

$conf['auth']['driver'] = 'imap';

$conf['signup']['allow'] = false;

$conf['log']['priority'] = PEAR_LOG_NOTICE;

$conf['log']['ident'] = 'HORDE';

$conf['log']['params'] = array();

$conf['log']['name'] = '/tmp/horde.log';

$conf['log']['params']['append'] = true;

$conf['log']['type'] = 'file';

$conf['log']['enabled'] = true;

$conf['log_accesskeys'] = false;

$conf['prefs']['driver'] = 'none';

$conf['datatree']['driver'] = 'null';

$conf['group']['driver'] = 'datatree';

$conf['cache']['default_lifetime'] = 1800;

$conf['cache']['params']['dir'] = Horde::getTempDir();

$conf['cache']['params']['gc'] = 86400;

$conf['cache']['driver'] = 'file';

$conf['token']['driver'] = 'none';

$conf['mailer']['params']['sendmail_path'] = '/usr/lib/sendmail';

$conf['mailer']['params']['sendmail_args'] = '-oi';

$conf['mailer']['type'] = 'sendmail';

$conf['vfs']['params']['vfsroot'] = '/tmp';

$conf['vfs']['type'] = 'file';

$conf['sessionhandler']['type'] = 'none';

$conf['geoip']['datafile'] = 'fr';

$conf['problems']['email'] = 'postmaster@mail.local;

$conf['problems']['maildomain'] = 'mail.local;

$conf['problems']['tickets'] = false;

$conf['menu']['apps'] = array('imp');

$conf['menu']['always'] = false;

$conf['menu']['links']['help'] = 'all';

$conf['menu']['links']['help_about'] = true;

$conf['menu']['links']['options'] = 'authenticated';

$conf['menu']['links']['problem'] = 'all';

$conf['menu']['links']['login'] = 'all';

$conf['menu']['links']['logout'] = 'authenticated';

$conf['hooks']['permsdenied'] = false;

$conf['hooks']['username'] = false;

$conf['hooks']['preauthenticate'] = false;

$conf['hooks']['postauthenticate'] = false;

$conf['hooks']['authldap'] = false;

$conf['portal']['fixed_blocks'] = array();

$conf['accounts']['driver'] = 'null';

$conf['imsp']['enabled'] = false;

$conf['kolab']['enabled'] = false;

?>

Modifions les informations suivantes pour que HORDE utilise IMP pour l'identification par défaut.

/usr/share/horde/config/prefs.php

$_prefs['initial_application'] = array(

'value' => 'imp',

'locked' => false,

'shared' => true,

'type' => 'select',

'desc' => sprintf(_("What application should %s display after

login?"), $GLOBALS['registry']->get('name'))

);

Pour pouvoir accéder à horde, nous devons créer un Alias dans APACHE. Il nous suffit de créer le fichier suivant :

/etc/apache/conf.d/horde.conf

Alias /horde /usr/share/horde

Redémarrons APACHE pour prendre en compte les modifications.

/etc/init.d/apache restart

a) Configuration d'APACHE pour le Virtual host

le webmail sera accédé depuis `http://srv.mail.local/horde-webmail/imp/login.php. Il faut pour cela créer un VirtualHost dans APACHE.

Créons le fichier suivant :

/etc/apache/conf.d/imp.conf

<VirtualHost *:80>

ServerAdmin info@mail.local

ServerName webmail.mail.local

DocumentRoot /usr/share/horde/imp

ErrorLog /var/log/apache/webmail-error_log

CustomLog /var/log/apache/webmail-access_log combined

<Directory" /usr/share/horde/imp">

AllowOverride All

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

Redémarrons APACHE pour prendre en compte les modifications.

/etc/init.d/apache restart

b) Installation et configuration d'IMP

Tout comme HORDE, IMP est librement distribué sur le site www.horde.org. A l'heure de l'écriture de ce mémoire, nous en sommes à la version 3.4.1. Les étapes d'installation et de configuration sont similaires à celles de HORDE, indiquées dans la partie précédente.

cd /usr/share/horde

wget ftp://ftp.horde.org/pub/imp/imp-h3-4.1.tar.gz tar zxvf imp-h3-4.1.tar.gz

mv imp-h3-4.1 imp

Comme précédemment, nous renommons les fichiers templates en fichiers de configuration standard.

cd imp/config/

for foo in *.dist; do cp $foo `basename $foo .dist`; done

Voici le fichier de configuration de IMP:

/usr/share/horde/imp/config/conf.php

<?php

$conf['utils']['gnupg_keyserver'] = array('wwwkeys.pgp.net');

$conf['utils']['gnupg_timeout'] = '10';

$conf['menu']['apps'] = array();

$conf['user']['allow_view_source'] = true;

$conf['user']['allow_resume_all'] = false;

$conf['user']['allow_resume_all_in_drafts'] = false;

$conf['user']['select_sentmail_folder'] = false;

$conf['user']['allow_folders'] = true;

$conf['user']['alternate_login'] = false;

$conf['user']['redirect_on_logout'] = false;

$conf['server']['server_list'] = 'hidden';

$conf['server']['sort_limit'] = '0';

$conf['server']['cache_folders'] = false;

$conf['server']['cache_msgbody'] = false;

$conf['mailbox']['show_attachments'] = false;

$conf['mailbox']['show_preview'] = false;

$conf['mailbox']['show_xpriority'] = false;

$conf['fetchmail']['show_account_colors'] = false;

$conf['fetchmail']['size_limit'] = '4000000';

$conf['msgsettings']['filtering']['words'] = './config/filter.txt';

$conf['msgsettings']['filtering']['replacement'] = '****';

$conf['spam']['reporting'] = false;

$conf['notspam']['reporting'] = false;

$conf['msg']['prepend_header'] = true;

$conf['msg']['append_trailer'] = true;

$conf['compose']['allow_cc'] = true;

$conf['compose']['allow_bcc'] = true;

$conf['compose']['allow_receipts'] = true;

$conf['compose']['special_characters'] = true;

$conf['compose']['use_vfs'] = false;

$conf['compose']['link_all_attachments'] = false;

$conf['compose']['link_attachments_notify'] = true;

$conf['compose']['link_attachments'] = true;

$conf['compose']['add_maildomain_to_unexpandable'] = false;

$conf['compose']['attach_size_limit'] = '0';

$conf['compose']['attach_count_limit'] = '0';

$conf['hooks']['vinfo'] = false;

$conf['hooks']['signature'] = false;

$conf['hooks']['trailer'] = false;

$conf['hooks']['fetchmail_filter'] = false;

$conf['hooks']['mbox_redirect'] = false;

$conf['hooks']['mbox_icon'] = false;

$conf['hooks']['spam_bounce'] = false;

$conf['maillog']['use_maillog'] = true;

$conf['tasklist']['use_tasklist'] = true;

$conf['notepad']['use_notepad'] = true;

?>

Pour finir, il ne nous reste plus qu'à configurer les serveurs utilisés par IMP pour se connecter à l'IMAP. Tout ceci se fait dans le fichier `conf.php' d'IMP. Ci-dessous notre fichier de configuration :

/var/www/horde/imp/config/servers.php

<?

$servers['imap'] = array(

'name' => 'IMAP Server',

'server' => 'srv.mail.local,

'hordeauth' => false,

'protocol' => 'imap/ssl/novalidate-cert',

'port' => '993',

'maildomain' => 'mail.local,

'smtphost' => 'srv.mail.local,

'smtpport' => 25,

'realm' => '',

'preferred' => '1',

);

?>

Nous pouvons maintenant tenter une connexion au webmail pour voir si nous avons reçu nos emails de test. http://srv.mail.local/horde-webmail/imp/login.php

Ce qui nous donne l'écran de login ci-dessous :

Cela fonctionne parfaitement, le webmail est installé avec succès.

On entre les informations de login de notre compte de test : toto1@mail.local avec son mot de passe « passer ». Nous accédons bien à lire les messages reçus :

Fin de l'installation du serveur de messagerie postfix avec le webmail Horde.

précédent sommaire suivant