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 |
PARTIE 4 : MISE EN OEUVREI. 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. 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
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. 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 :
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. · 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. 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 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 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 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. |
|