====== Installer Horde Groupware Webmail Edition sur Debian 4.0 Etch ou 5.0 Lenny ====== {{:horde-color.gif|}} Par Pierre-Yves Landuré — Dernière modification 14/05/2009 21:55 http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-horde-groupware-webmail-edition-sur-une-debian-4-0-etch Le projet Horde vise a créer un groupware libre. Il est basé sur PHP et propose l'un des meilleurs WebMail du moment. Cet article vous guide lors de son installation sur Debian 4.0 Etch ou 5.0 Lenny. Installation Le projet Horde est constitué de plusieurs logiciels qui ensemble forment un groupware très complet. Ces logiciels sont disponibles soit séparément, soit dans le bundle Horde Groupware Webmail Edition. C'est ce dernier que nous allons installer dans ce guide. En premier lieu, nous installons les ===== pré-requis ===== /usr/bin/apt-get install libapache2-mod-php5 php5-gd php5-mysql php5-mcrypt php5-imap php5-tidy php5-cli php-pear Afin que Horde fonctionne sans soucis, nous augmentons la limite d'utilisation mémoire du module PHP d'Apache 2 : /bin/sed -i -e 's/memory_limit = .*/memory_limit = 128M/' /etc/php5/apache2/php.ini De plus, vous pouvez augmenter les performances de Horde en installant memcached : apt-get install memcached php5-memcache Nous mettons à jour l'installation de PEAR : /usr/bin/pear channel-update pear.php.net /usr/bin/pear upgrade-all Nous installons maintenant les extensions PEAR et PECL recommandées par Horde. En premier lieu, nous installons les logiciels nécessaires à la compilation de l'extension : /usr/bin/apt-get install libmagic-dev libgeoip-dev make php5-dev Et nous compilons et installons les extensions PECL : * fileinfo : Cette extension permet d'améliorer la gestion des pièces jointes. /usr/bin/pecl install fileinfo /bin/echo "extension=fileinfo.so" | /usr/bin/tee /etc/php5/conf.d/fileinfo.ini * lzf : Cette extension permet de réduire la taille des sessions (et donc l'occupation mémoire du serveur). /usr/bin/pecl install lzf /bin/echo "extension=lzf.so" | /usr/bin/tee /etc/php5/conf.d/lzf.ini * geoip : Cette extension améliore la géolocalisation des adresses IP. Cependant, du à des problèmes de version, elle n'est pas installable simplement sur Etch. Si vous utilisez ce guide sur Debian 5.0 Lenny, vous n'êtes pas soumis à cette limitation : if [ "$(/bin/cat /etc/debian_version)" != "4.0" ]; then /usr/bin/pecl install geoip /bin/echo "extension=geoip.so" | /usr/bin/tee /etc/php5/conf.d/geoip.ini fi * idn : Cette extension apporte le support des noms de domaines internationalisés. Cependant, à l'heure ou j'écris ce guide, cette extension est encore en Beta. Une fois ces extensions installées, redémarrez votre serveur Apache pour les prendre en compte : /etc/init.d/apache2 force-reload Nous renseignons la dernière version de Horde Groupware Webmail Edition : VERSION=1.2.2 Nous téléchargeons Horde Groupware Webmail Edition : /usr/bin/wget http://ftp.horde.org/pub/horde-webmail/horde-webmail-$VERSION.tar.gz \ --output-document=/tmp/horde-webmail-$VERSION.tar.gz Nous décompressons le fichier téléchargé : /bin/tar --directory /opt -xzf /tmp/horde-webmail-$VERSION.tar.gz Nous renommons le dossier ainsi obtenu : /bin/mv /opt/horde-webmail-$VERSION /opt/horde-webmail Et nous le rendons disponible via le serveur HTTP : /bin/ln -s /opt/horde-webmail /var/www/ Remarque : Si vous souhaitez que Horde soit disponible à la racine d'un domaine dédié (pour obtenir une URL du type http://mail.domaine.com/), vous trouverez les informations nécessaires à la mise en place d'une telle configuration dans mon guide Installer et configurer Apache2 sur Debian 4.0 Etch. Nous pouvons maintenant passer à la configuration de ce logiciel. ===== Configuration de Horde ===== Remarque : Horde nécessite l'accès à une base de donnée. Si vous le souhaitez, vous pouvez installer un serveur MySQL ou créer une base de donnée sur un tel serveur en suivant mon guide MySQL sur Debian 4.0 Etch ou 5.0 Lenny. La configuration de Horde est assez complexe tellement sont nombreux les paramètres. Je vous invite donc à lire la documentation de Horde pour que votre système soit configuré aux petits oignons. Ce guide se contente de mettre en place une configuration fonctionnelle, mais basique. Pour ce faire nous allons utiliser le petit script fourni avec Horde : /usr/bin/php /opt/horde-webmail/scripts/setup.php Répondez aux questions posées par ce script. Remarque : Dans la section "Configure database settings", choisissez "mysqli" comme type de base de données. Important : si votre serveur IMAP n'est pas sur le serveur ou est installé Horde, ou s'il nécessite une identification par TLS, vous devez modifier la configuration de IMP : /usr/bin/vim /opt/horde-webmail/imp/config/servers.php Plusieurs valeurs sont possibles pour l'entrée 'protocol' : * imap/notls : Connexion à IMAP non chiffrée (en clair). * imap/tls : Connexion à IMAP chiffrée, avec un certificat SSL valide. * imap/tls/novalidate-cert : Connexion à IMAP chiffrée, avec un certificat SSL non valide (par exemple, signé avec une authorité locale, ou CACert.org). Source : Merci à Daniel E. Markle pour son article Horde/IMAP and IMAP/TLS. Pour information, voici la configuration que j'utilise pour brancher Horde avec un serveur Cyrus IMAP installé à l'aide du guide Installer le serveur IMAP Cyrus sur Debian 4.0 Etch et 5.0 Lenny. $servers['imap'] = array( 'name' => 'IMAP Server', 'server' => 'cyrus.domain.xen', 'hordeauth' => false, 'protocol' => 'imap/tls/novalidate-cert', 'port' => 143, 'quota' => array( 'driver' => 'imap', 'params' => array(), ), 'acl' => array( 'driver' => 'rfc2086', ), ); Une fois la configuration terminée, vous pouvez vérifier qu'il ne manque rien en visitant : * http://localhost/horde-webmail/test.php Remarque : Ne tenez pas compte de l'erreur sur la limite mémoire. 128 Mo devraient suffire. Domaine d'email par défaut Nous allons maintenant configurer l'email de contact utilisé lorsqu'un utilisateur rencontre des problème, et le domaine des email des utilisateurs de Horde, lorsque ce dernier ne peut le détecter. Pour ce faire, renseignez les valeurs à appliquer : CONTACT_MAIL=contact@votre-domaine.com DEFAULT_MAIL_DOMAIN=votre-domaine.com Appliquez maintenant ces paramètres : /bin/sed -i -e "s/^\(.*problems.*email.*=\).*;/\1 '${CONTACT_MAIL}';/" \ -e "s/^\(.*problems.*maildomain.*=\).*;/\1 '${DEFAULT_MAIL_DOMAIN}';/" \ /opt/horde-webmail/config/conf.php * Fichier log Nos modifions l'emplacement du fichier log de horde : /bin/mkdir --parent /var/log/horde /bin/chown www-data:www-data /var/log/horde /bin/chmod 0750 /var/log/horde /bin/sed -i -e 's/\/tmp\/horde\.log/\/var\/log\/horde\/horde\.log/' /opt/horde-webmail/config/conf.php Nous mettons en place la rotation de ces fichiers log : /bin/cp /opt/horde-webmail/scripts/horde.logrotate /etc/logrotate.d/horde Et nous l'adaptons à notre besoin : /bin/sed -i -e 's|/var/log/horde\.log|/var/log/horde/horde.log|' /etc/logrotate.d/horde * Cache mémoire En premier lieu, assurez vous d'avoir installer le cache mémoire : apt-get install memcached php5-memcache /etc/init.d/apache2 force-reload Nous activons le support de memcached : /bin/sed -i -e 's/^\(.*memcache.*enabled.*=\).*;/\1 true;/' /opt/horde-webmail/config/conf.php Et nous le configurons : /bin/sed -i -e "/^\(.*conf.*memcache.*enabled.*=\).*/i\ \$conf['memcache']['hostspec'] = array('localhost');\n\ \$conf['memcache']['port'] = array('11211');\n\ \$conf['memcache']['weight'] = array();\n\ \$conf['memcache']['persistent'] = false;\n\ \$conf['memcache']['compression'] = false;\n\ \$conf['memcache']['large_items'] = true;" /opt/horde-webmail/config/conf.php * Emplacement du cache Nous créons un dossier de cache sécurisé pour Horde : /bin/mkdir /var/cache/horde /bin/chown www-data:root /var/cache/horde /bin/chmod 0700 /var/cache/horde Et nous configurons Horde afin qu'il l'utilise : /bin/sed -i -e "/^\(.*conf.*umask.*=\).*/a\ \$conf['tmpdir'] = '/var/cache/horde';" /opt/horde-webmail/config/conf.php De même, nous configurons le nettoyage régulier des fichiers caches générés par Horde : /bin/cp /opt/horde-webmail/scripts/temp-cleanup.cron /etc/cron.daily/horde-temp-cleanup /bin/chmod +x /etc/cron.daily/horde-temp-cleanup /bin/sed -i -e 's/^\(TMP_DIR=\).*/\1\/var\/cache\/horde/' /etc/cron.daily/horde-temp-cleanup * Envoi des emails d'alerte Nous configurons maintenant l'envoi des emails d'alertes par Horde : /bin/echo "# /etc/cron.d/horde : crontab fragment for horde # Horde Alarms */5 * * * * /usr/bin/php /opt/horde-webmail/scripts/alarms.php" \ | /usr/bin/tee /etc/cron.d/horde * Outil d'administration des sessions Si vous souhaitez que l'outil d'administration des sessions de Horde soit fonctionnel, exécutez la ligne de commande suivante : /bin/chown www-data /var/lib/php5 Attention : Ceci peut engendrer des problèmes de sécurité, aussi je ne le recommande pas. Gestion des pièces jointes Si vous souhaitez pouvoir visionner vos pièces jointes directement dans Horde sans avoir à les télécharger, voici la ligne de commande vous permettant d'installer les logiciels nécessaires : /usr/bin/apt-get install unrtf libwpd-tools xlhtml source-highlight ppthtml rpm wv enscript Une fois ceci fait, nous corrigeons la configuration des chemins vers ces utilitaires dans Horde : sed -i -e 's/\/usr\/local\/bin\/xlhtml/\/usr\/bin\/xlhtml/' \ -e 's/\/usr\/local\/bin\/ppthtml/\/usr\/bin\/ppthtml/' \ /opt/horde-webmail/config/mime_drivers.php Enfin, nous activons les outils rendu disponibles : sed -i -e "s/\/\/ \('deb'\)/\1/g" \ -e "s/\/\/ \('enscript'\)/\1/g" \ -e "s/\/\/ \('msword'\)/\1/g" \ -e "s/\/\/ \('msexcel'\)/\1/g" \ -e "s/\/\/ \('mspowerpoint'\)/\1/g" \ -e "s/\/\/ \('rpm'\)/\1/g" \ -e "s/\/\/ \('rtf'\)/\1/g" \ -e "s/\/\/ \('srchighlite'\)/\1/g" \ -e "s/\/\/ \('webcpp'\)/\1/g" \ -e "s/\/\/ \('wordperfect'\)/\1/g" \ /opt/horde-webmail/config/mime_drivers.php Enfin, nous indiquons à Horde ou se trouve la base de donnée des informations Mime : /bin/sed -i -e "/^\(.*conf.*sessionhandler.*type.*=\).*/a\ \$conf['mime']['magic_db'] = '/usr/share/file/magic';" /opt/horde-webmail/config/conf.php ===== Configuration de IMP ===== Afin de rendre la lecture des emails plus agréable, nous allons améliorer la configuration par défaut d'IMP : Affichage en ligne des messages HTML Par défaut, vous devez télécharger les messages au format HTML afin de pouvoir les lire. Ce n'est pas très agréable. Les lignes de commande suivantes modifient cette configuration : /bin/sed -i -e '/.*mime_drivers.*imp.*html.*=.*array.*/{n;d}' /opt/horde-webmail/imp/config/mime_drivers.php /bin/sed -i -e "/.*mime_drivers.*imp.*html.*=.*array.*/a\ 'inline' => true," /opt/horde-webmail/imp/config/mime_drivers.php ==== Adaptation aux défauts de Thunderbird ==== Afin d'adapter les dossiers utilisé par Horde à ceux utilisé par Thunderbird, nous allons modifier quelques options : * Le dossier des courriers envoyés : /bin/sed -i -e "/.*_prefs.*'sent_mail_folder'.*/,/^\([^\/]*'value'\).*/{s|^\([^/]*'value'\).*|\1 => 'INBOX/Sent',|}" \ /opt/horde-webmail/imp/config/prefs.php * Le dossier des brouillons : /bin/sed -i -e "/.*_prefs.*'drafts_folder'.*/,/^\([^\/]*'value'\).*/{s|^\([^/]*'value'\).*|\1 => 'INBOX/Drafts',|}" \ /opt/horde-webmail/imp/config/prefs.php * Le dossier de la corbeille : /bin/sed -i -e "/.*_prefs.*'trash_folder'.*/,/^\([^\/]*'value'\).*/{s|^\([^/]*'value'\).*|\1 => 'INBOX/Trash',|}" \ /opt/horde-webmail/imp/config/prefs.php * Le dossier des indésirables : /bin/sed -i -e "/.*_prefs.*'spam_folder'.*/,/^\([^\/]*'value'\).*/{s|^\([^/]*'value'\).*|\1 => 'INBOX/Junk',|}" \ /opt/horde-webmail/imp/config/prefs.php ==== Adaptation aux défauts de Outlook ==== Si vous n'utilisez pas Thunderbird, mais Outlook, voici les lignes de commande à utiliser : * Le dossier des courriers envoyés : /bin/sed -i -e "/.*_prefs.*'sent_mail_folder'.*/,/^\([^\/]*'value'\).*/{s|^\([^/]*'value'\).*|\1 => '\&AMk-l\&AOk-ments envoy\&AOk-s',|}" \ /opt/horde-webmail/imp/config/prefs.php * Le dossier des brouillons : /bin/sed -i -e "/.*_prefs.*'drafts_folder'.*/,/^\([^\/]*'value'\).*/{s|^\([^/]*'value'\).*|\1 => 'Brouillons',|}" \ /opt/horde-webmail/imp/config/prefs.php * Le dossier de la corbeille : /bin/sed -i -e "/.*_prefs.*'trash_folder'.*/,/^\([^\/]*'value'\).*/{s|^\([^/]*'value'\).*|\1 => '\&AMk-l\&AOk-ments supprim\&AOk-s',|}" \ /opt/horde-webmail/imp/config/prefs.php ==== Prévisualisation des pièces jointes ==== Afin de rendre disponible la prévisualisation en ligne des pièces jointe, exécutez la commande suivante : /bin/sed -i -e 's/^\(.*mailbox.*show_preview.*=\).*;/\1 true;/' /opt/horde-webmail/imp/config/conf.php ==== Activation du cache ==== Afin que l'affichage des messages soit plus réactif, il vous faut activer l'utilisation du cache par IMP. Pour ce faire, exécutez la commande suivante : /bin/sed -i -e 's/^\(.*mboxcache.*use_mboxcache.*=\).*;/\1 true;/' /opt/horde-webmail/imp/config/conf.php Et de le configurer : /bin/sed -i -e "/^\(.*conf.*mboxcache.*use_mboxcache.*=\).*/i\ \$conf['mboxcache']['use_compress'] = false;\n\ \$conf['mboxcache']['preview_size'] = 1000;\n\ \$conf['mboxcache']['lifetime'] = 2592000;" /opt/horde-webmail/imp/config/conf.php De même, pour cacher la liste des messages : /bin/sed -i -e 's/^\(.*mlistcache.*use_mlistcache.*=\).*;/\1 true;/' /opt/horde-webmail/imp/config/conf.php /bin/sed -i -e "/^\(.*conf.*mlistcache.*use_mlistcache.*=\).*/i\ \$conf['mlistcache']['lifetime'] = 604800;" /opt/horde-webmail/imp/config/conf.php Affichage de la priorité et de la présence de pièces jointes dans la liste des messages Pour afficher la priorité et la présence de pièces jointes dans la liste des messages, utilisez la commande suivante (l'activation du cache est recommandée) : /bin/sed -i -e 's/^\(.*mailbox.*show_attachments.*=\).*;/\1 true;/' \ -e 's/^\(.*mailbox.*show_xpriority.*=\).*;/\1 true;/' \ /opt/horde-webmail/imp/config/conf.php Mise en cache du JavaScript et du CSS Afin d'accélérer le chargement des pages, il est possible de créer des fichiers Javascripts et CSS allégé. C'est ce que fait cette configuration : * Pour le cache JavaScript : /bin/sed -i -e 's/^\(.*server.*cachejs.*=\).*;/\1 true;/' /opt/horde-webmail/imp/config/conf.php /bin/sed -i -e "/^\(.*conf.*server.*cachejs.*=\).*/i\ \$conf['server']['cachejsparams']['timeout'] = 86400;\n\ \$conf['server']['cachejsparams']['mtime'] = false;" /opt/horde-webmail/imp/config/conf.php * Pour le cache CSS : /bin/sed -i -e 's/^\(.*server.*cachecss.*=\).*;/\1 true;/' /opt/horde-webmail/imp/config/conf.php /bin/sed -i -e "/^\(.*conf.*server.*cachecss.*=\).*/i\ \$conf['server']['cachecssparams']['timeout'] = 86400;\n\ \$conf['server']['cachecssparams']['mtime'] = false;" /opt/horde-webmail/imp/config/conf.php Remarque : Si DIMP est présent, vous pouvez activer le cache du JavaScript et CSS pour cette interface : * Pour le cache JavaScript : /bin/sed -i -e 's/^\(.*server.*cachejs.*=\).*;/\1 true;/' /opt/horde-webmail/dimp/config/conf.php /bin/sed -i -e "/^\(.*conf.*server.*cachejs.*=\).*/i\ \$conf['server']['cachejsparams']['timeout'] = 86400;\n\ \$conf['server']['cachejsparams']['mtime'] = false;" /opt/horde-webmail/dimp/config/conf.php * Pour le cache CSS : /bin/sed -i -e 's/^\(.*server.*cachecss.*=\).*;/\1 true;/' /opt/horde-webmail/dimp/config/conf.php /bin/sed -i -e "/^\(.*conf.*server.*cachecss.*=\).*/i\ \$conf['server']['cachecssparams']['timeout'] = 86400;\n\ \$conf['server']['cachecssparams']['mtime'] = false;" /opt/horde-webmail/dimp/config/conf.php ===== Finitions ===== Vous trouverez dans cette sections diverses petites choses qui sans être obligatoires, amélioreront grandement votre Horde. Dimp comme application par défaut Dans la configuration standard de Horde, Imp est l'application par défaut. Si vous souhaitez utiliser Dimp sans trop vous fouler, voici la ligne de commande à appliquer pour en faire le défaut de Horde : /bin/sed -i -e "/\$_COOKIE\['default_imp_view'\]/,/\$browser->isMobile().*'imp'/{ s/^\(.*$browser->isMobile().*\)'imp'\(.*\)\$/\1'dimp'\2/ ;}" /opt/horde-webmail/imp/login.php * Fortunes Pour avoir un message d'accueil sympa lorsque vous vous identifiez. Commencez par installer le logiciel nécessaire : /usr/bin/apt-get install fortunes-fr Et configurez Horde pour l'utiliser : /bin/sed -i -e "/^\(.*conf.*portal.*fixed_blocks.*=\).*/a\ \$conf['fortune']['exec_path'] = '/usr/games/fortune';" /opt/horde-webmail/config/conf.php * Correction orthographique Afin de disposer d'un correcteur d'orthographe lors de la rédaction de vos messages, commencez par installer aSpell : /usr/bin/apt-get install aspell-en aspell-fr Et configurez IMP pour l'utiliser : /bin/sed -i \ -e "s/^\(.*spell.*driver.*=\).*;/\1 'aspell';/" \ -e "/^\(.*conf.*spell.*driver.*=\).*/i\ \$conf['spell']['path'] = '/usr/bin/aspell';" /opt/horde-webmail/imp/config/conf.php * Encryption Si vous souhaitez disposer du support de GnuPG pour crypter vos messages, commencez par installer GnuPG si besoin : /usr/bin/apt-get install gnupg Et configurez IMP pour l'utiliser : /bin/sed -i -e "/^\(.*conf.*utils.*gnupg_keyserver.*=\).*/i\ \$conf['utils']['gnupg'] = '/usr/bin/gpg';" /opt/horde-webmail/imp/config/conf.php De même, nous configurons Mnemo pour l'utiliser : /bin/sed -i -e "/^\(.*conf.*menu.*print.*=\).*/i\ \$conf['utils']['gnupg'] = '/usr/bin/gpg';" /opt/horde-webmail/mnemo/config/conf.php * Utilisation de OpenSSL Bon, la j'ai pas très bien compris à quoi cela pouvait servir... mais si cette fonctionnalité vous intéresse, voici comment l'activer. En premier lieu, installez OpenSSL : /usr/bin/apt-get install openssl ca-certificates Et configurez IMP pour l'utiliser : /bin/sed -i -e "/^\(.*conf.*utils.*gnupg_timeout.*=\).*/a\ \$conf['utils']['openssl_cafile'] = '/etc/ssl/certs';\n\ \$conf['utils']['openssl_binary'] = '/usr/bin/openssl';" /opt/horde-webmail/imp/config/conf.php * Autres Voici une liste non exhaustive de ce que je ne documente pas dans ce guide, mais que vous pouvez trouver dans l'interface de configuration de Horde : * Récupération de la météo sur weather.com * Géolocalisation des adresses IP * API de recherche Google * API de Google Maps Je vous invite a explorer la configuration de Horde si ces outils vous intéressent. Configuration pour Cyrus Imap Si vous disposez d'un serveur Cyrus Imap, vous souhaitez probablement que Horde vous permette de configurer vos filtres de messages via Sieve. Pour ce faire, nous devons installer un paquet PEAR supplémentaire : /usr/bin/pear install Net_Sieve Une fois ceci fait, vous devez modifier le backend sieve de Ingo : /usr/bin/vim /opt/horde-webmail/ingo/config/backends.php Vous trouverez dans ce fichier un backend nommé 'sieve'. Il vous suffit normalement d'adapter les informations 'preferred' et 'hostspec' à vos besoins, puis de supprimer ou commenter les autres backends pour permettre à Ingo d'utiliser Sieve comment moteur de filtrage. Il vous faut aussi modifier le parmètre 'hordeauth', il faut le passer de "true" à "'full'" : 'hordeauth' => 'full', * Liste noire des utilisateurs Si vous souhaitez disposer d'une mécanique d'interdiction d'utilisation de Horde pour certain utilisateurs, vous pouvez le faire en utilisant le hook "preauthenticate". Pour ce faire, en premier lieu, autorisez l'utilisation de ce hook: /bin/sed -i -e "s/^\(.*hooks.*preauthenticate.*=\).*;/\1 true;/" /opt/horde-webmail/config/conf.php Ajoutez ensuite un paramètre de configuration pour la liste noire des utilisateurs : /bin/sed -i -e "/^\(.*auth.*driver.*=\).*/a\ \$conf['auth']['blacklist'] = array( /* 'my_blacklisted_login', */ );" /opt/horde-webmail/config/conf.php Et enfin, ajoutez la fonction de hook personnalisée au fichier hooks.php : echo " // Here is an _horde_hook_preauthenticate that allow you to black list logins. if (! function_exists('_horde_hook_preauthenticate')) { function _horde_hook_preauthenticate(\$userID, \$credential, \$realm) { return ! in_array(\$userID, \$GLOBALS['conf']['auth']['blacklist']); } }" | /usr/bin/tee -a /opt/horde-webmail/config/hooks.php Par la suite, vous pouvez ajouter un nouveau login à la liste noire avec les commandes suivantes. Commencez par renseignez le login à blacklister : LOGIN=blacklisted_user Et exécutez la commande suivante pour l'ajouter à la liste noire : /bin/sed -i -e "s/^\(.*auth.*blacklist.*=.*\));.*/\1 '$LOGIN',);/" /opt/horde-webmail/config/conf.php Utilisation avec reverse proxy Si vous souhaitez utiliser Horde derrière un reverse proxy Apache, voici les modifications à effectuer (pour un serveur intermédiaire utilisant le HTTPS et donc Horde est la racine): * dans le fichier /opt/horde-webmail/config/conf.php : $conf['use_ssl'] = 1; $conf['server']['name'] = $_SERVER['SERVER_NAME']; $conf['server']['port'] = 443; Résolution des problèmes Si vous rencontrez des problèmes avec votre configuration de Horde, il est possible qu'augmenter le niveau de verbosité des fichiers journaux vous aide. Pour ce faire, utilisez cette ligne de commande : /bin/sed -i -e 's/^\(.*log.*priority.*=\).*;/\1 PEAR_LOG_DEBUG;/' \ /opt/horde-webmail/config/conf.php Vous pouvez alors observer le fichier journal de Horde à l'aide de la commande : /usr/bin/tail -n 50 -f /var/log/horde/horde.log Une fois le problème diagnostiqué correctement, vous pouvez revenir au niveau normal de verbosité du fichier journal à l'aide de cette commande : /bin/sed -i -e 's/^\(.*log.*priority.*=\).*;/\1 PEAR_LOG_NOTICE;/' \ /opt/horde-webmail/config/conf.php * Sécurisation Attention : n'effectuez cette étape que lorsque votre Horde est parfaitement configuré. Mais avant de le rendre accessible aux internautes. Afin de rendre Horde plus robuste aux attaques, nous allons modifier les permissions des fichiers de configuration : /usr/bin/find /opt/horde-webmail -type f -wholename "*config/*" | /usr/bin/xargs /bin/chown -R root:www-data /usr/bin/find /opt/horde-webmail -type f -wholename "*config/*" | /usr/bin/xargs /bin/chmod 0440 Nous désactivons les fichiers test.php : /usr/bin/find /opt/horde-webmail -type f -name "test.php" | /usr/bin/xargs /bin/chmod a-rwx Nous restreignons l'accès aux scripts de configuration à l'utilisateur root : /usr/bin/find /opt/horde-webmail -type d -name "scripts" | /usr/bin/xargs /bin/chown -R root:root /usr/bin/find /opt/horde-webmail -type d -name "scripts" | /usr/bin/xargs /bin/chmod -R go-rwx Et pour faire bonne mesure, nous interdisons la modification de l'ensemble du code source de Horde : /bin/chmod -R ugo-w /opt/horde-webmail Nous désactivons l'affichage de code PHP aux utilisateurs lors d'erreurs : /bin/echo "# Secure PHP for horde expose_php = Off display_errors = Off log_errors = On register_globals = Off " | tee /etc/php5/conf.d/horde.ini Et nous redémarrons Apache 2 pour prendre en compte cette configuration : /etc/init.d/apache2 force-reload Je vous recommande également d'utiliser Horde à travers une connexion HTTPS afin que les mots de passe des comptes email ne circulent pas en clair sur le réseau. Amélioration de la sécurité à l'aide d'Apache Si vous le souhaitez, il est possible d'améliorer encore la sécurité de votre installation Horde en configurant proprement Apache. Dans le fichier qui correspond à votre installation de Horde, ajoutez ces lignes. Elles font en sorte que les dossiers de configuration de Horde restent privés : # Deny access to files that are not served directly by the webserver order deny,allow deny from all Une fois ceci fait, n'oubliez pas de recharger la configuration d'Apache : /etc/init.d/apache2 force-reload