ISPConfig 3, OwnCloud et RoundCube, le tout avec une Debian 7 et un dédié Kimsufi…


Warning: getimagesize(/var/www/axel-pg-fr/wp-content/uploads/2013/08/ispconfig_roundcube_howto_dedié_kimsufi.jpg): failed to open stream: No such file or directory in /var/www/axel-pg-fr/wp-content/themes/Total/framework/classes/image-resize.php on line 115
Un Tuto Pour Installer De A à Z Un Serveur Dédié Avec ISPConfig 3, RoundCube 0.9.2 Et OwnCloud 5

Le but de cet article est principalement de me rappeler comment j’ai fait :). Je ne suis pas un génie, juste un copieur / colleur de génie, en particulier des liens suivants : The Perfect Server – Debian Wheezy, How To Install RoundCube 0.7 For ISPConfig 3 On Debian Squeeze, RoundCube Webmail On Your ISPConfig Server Within 10 Easy StepsUsing RoundCube Webmail With ISPConfig 3 et pleins d’autres forums, blogs, articles, etc. qui trainent partout sur le web. Gloire éternelle et félicité sur 18 générations pour toutes ces bonnes âmes, surtout au bien connu Falko Timme pour ses excellents How-To…   PS : Si l’article vous a plu, n’hésitez pas à désactiver AdBlock Plus et à me payer une bière en cliquant sur la pub 😉

Mais pourquoi ?

Avant de se lancer dans le vif du sujet, répondons à la question : pourquoi faire tout ca quand OVH propose justement une installation toute fraîche avec Debian 6, Roundcube, un ISPConfig déjà fonctionnel et qu’en plus ça fonctionne out-of-the-box ? Réponse simple : PARCE QUE ! Plus précisement, l’install proposée par OVH est un chouilla trop vieille pour moi… Roundcube est en version 0.9 et non plus en 0.3, ISPConfig 3 installé a également quelques release de retard par rapport à la dernière version, etc. De plus, j’aime bien faire par moi-même et enfin, quand j’ai tenté de mettre à jour ISPConfig dans sa dernière version, ca a tout pété. Dont acte.

C’est quoi, le besoin ?

Ce que je veux faire :

  • Héberger mes quelques sites clients. Principalement du WordPress, du static et quelques Prestashop.
  • Ne plus me prendre la tête avec les créations des accès FTP, MySQL et les mails de ces même clients.

C’est pour répondre à ces 2 principaux besoins que je vais passer par un ISPConfig…

  • Sur le plan personnel, je cherche aussi à me sortir de Google Apps. Il me faut donc un truc capable de gérer mes mails, mes contacts et mon agenda.
  • Tant qu’on y est, ma Dropbox est presque pleine et j’ai pas envie de payer pour un service que je peux avoir gratos 🙂

D’ou l’installation d’un OwnCloud et d’un RoundCube… Du coup, ce qu’on va faire :

  1. Installation de Apache, PHP, Postfix, Dovecot et tutti quanti pour la partie hébergement et mail
  2. Installation de ISPConfig pour gérer tout ça
  3. Installation de RoundCube et de OwnCloud, dans leurs dernières versions, tant qu’a faire.
  4. Tweak de tout ça pour intégrer RoundCube à OwnCloud et aux différents sites de mes clients (qu’ils puissent lire leurs mails 🙂 )

Par contre, je ne mettrais pas de bind, je fais bien plus confiance à Gandi pour gérer mes DNS qu’à moi-même. Pas de gestion des DNS dans ISPConfig, donc. Cela dit, c’est simple à rajouter. Maintenant que ces remarques liminaires sont faites, au boulot

Installation tout fraîche de Debian

Rendez-vous dans votre manager ; Dans la colonne de droite, choisir « Serveurs dédiés » puis « Services ». Cherchez l’icone « Réinstaller / Changer d’OS ». On choisira ensuite un système Linux, en « Distribution de base ». Dans les choix proposés, j’ai pris « Système d’exploitation Debian 7.0 stable », en 64 bits, avec le noyau natif de la distribution, choisi « Français » en bas de la page et validé. Pour le partitionnement, chacun fait ce qui lui plait. Personnellement, sachant que j’aurais à terme sites web, bases de données, mails et les fichiers des utilisateurs d’OwnCloud dans le /var, j’ai fait un partitionnement personnalisé, avec

  • 250 Go de / (qui comprend donc également /home)
  • 8 Go de swap (ce qui est discutable, je sais, mais les habitudes ont la vie dure… Au passage, OVH impose une swap, il faudra donc faire 2 partitions à minima, une / et une swap)
  • et le reste en /var

Tout ça me laisse un peu de marge niveau espace disponible pour mes besoins. Tant qu’on y est, on peut tout mettre en ext4, maintenant que c’est relativement fonctionnel et stable. Une fois le partitionnement fait, on peut cliquer sur « Lancer la réinstallation » et aller boire un café.

Sécurisation a minima du serveur SSH

Une fois le mail d’OVH reçu, la 1ère chose à faire est de changer le pass root, désactiver l’accès SSH pour le root, créer un utilisateur et lui autoriser l’accès SSH que pour lui. Accessoirement, on peut aussi virer les accès SSH permanent de OVH et virer RTM, le truc qui permet à OVH d’afficher l’état du serveur sur votre interface de gestion. Perso, je ne m’en sers pas (Munin et co. sont là pour ça) et je n’aime pas le principe de laisser un accès à d’autres que moi sur ma machine. Ca ne sera pas expliqué ici, mais c’est simple à trouver sur Google. Let’s go : Lancez Putty ou votre terminal préféré et loggez vous avec le compte root et le password fourni par OVH dans le mail de confirmation de la réinstallation de votre serveur Commençons par changer le mot de passe root

passwd

Tapez 2 fois votre mot de passe (mettez un truc robuste, hein, pas « 0000 » ou « password« ). Comme d’habitude, vous ne verrez pas les mots de passe quand vous les taperez. Validez, le système vous confirme que c’est OK.

Maintenant, on va créer un utilisateur ; appelez le comme vous voudrez, j’ai mis axel, pour être original…

adduser axel

Il faudra donner un password à cet utilisateur, ainsi que des infos comme le nom complet, qui sont facultatives. Perso, j’y vais à grand coup de Enter

 

Éditons la configuration de SSH pour désactiver les logins root et n’autoriser que l’utilisateur axel en SSH :

nano /etc/ssh/sshd_config

Changez la valeur de PermitRootLogin de yes à no et rajoutez la ligne AllowUsers juste en dessous, avec le nom du / des utilisateurs autorisés à se connecter en SSH.

...
PermitRootLogin no
AllowUsers axel
...

Petite précision : il y a nettement mieux et plus efficace que cette méthode pour sécuriser son serveur. Ce n’est pas le but ici, mais je recommande quand même de se sécuriser tout ça de manière ad-hoc, avec clés SSH, filtrage sur les IP pour accéder au serveur, iptables et tout le bordel. Google est plein d’infos sur le sujet… On redémarre le service SSH et on teste que l’utilisateur puisse bien se connecte :

/etc/init.d/ssh restart
ssh [email protected]

Si tout fonctionne, c’est bien :). Pour vous reconnecter en root, il faudra maintenant se logger en SSH avec votre utilisateur puis lancer su – pour passer en root.

Update du système et petits trucs…

Ouvrez votre sources.list et rajouter les dépôts contrib et non-free :

nano /etc/apt/sources.list

Mon sources.list ressemble à ça :

deb http://debian.mirrors.ovh.net/debian/ wheezy main contrib non-free
deb-src http://debian.mirrors.ovh.net/debian/ wheezy main contrib non-free

deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free

Il n’y a plus qu’à mettre à jour le système :

apt-get update
apt-get upgrade

On se met un petit ntp pour être toujours à l’heure :

apt-get install ntp ntpdate

Pour que ISPConfig fonctionne, il nous faut bash et non dash :

dpkg-reconfigure dash

Répondre <Non> quand on nous le demande :

Apache 2, PHP, MySQL et quelques trucs en plus :

Faisons dans la délicatesse et tapons tout ça d’un coup :

apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-xcache libapache2-mod-fastcgi php5-fpm memcached mysql-client mysql-server openssl

Ca fait peur mais ca va le faire 🙂 Pour info, je n’ai pas mis de quoi gérer le Ruby, pour ceux qui en veulent, il faudra le rajouter de la manière suivante :

apt-get install libruby libapache2-mod-rub

Le système va nous embêter avec pleins de questions pendant l’installation des paquets. Pour MySQL, indiquez un mot de passe pour le super utilisateur de MySL et confirmez le :

La configuration de PhpMyAdmin vous demandera le serveur web à configurer. Ce sera <Apache 2> dans notre cas (à choisir avec la barre espace, puis appuyer sur Enter) :

PhpMyAdmin nous demandera encore si on veut ou pas le configurer avec dbconfig-common ; Eh ben, <Non>, on veut pas !

Enfin, on ouvre my.cnf pour que MySQL n’écoute pas que sur sa machine :

nano /etc/mysql/my.cnf

On commente la ligne bind-adress :

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address           = 127.0.0.1

Et on redémarre MySQL :

/etc/init.d/mysql restart

A ce stade, on a un Apache fonctionnel avec PHP, MySQL et PhpMyAdmin. Pour le fun, vous pouvez aller dans un navigateur en donnant votre IP et voir ce magnifique « It works ». Il nous reste à activer quelques modules d’Apache pour que ça soit fonctionnel avec OwnCloud ou ISPConfig :

a2enmod suexec rewrite ssl actions include fastcgi alias dav_fs dav auth_digest

Puis à bidouiller le fichier de config de SuPHP pour éviter de tout gérer en SuPHP, ce qui est parfois bien, mais pas tout le temps…

nano /etc/apache2/mods-available/suphp.conf

Remplacez le contenu du fichier par le contenu suivant (on commente 3 lignes et on en rajoute une) :

<IfModule mod_suphp.c>
#    <FilesMatch "\.ph(p3?|tml)$">
#        SetHandler application/x-httpd-suphp
#    </FilesMatch>
        AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
suPHP_AddHandler application/x-httpd-suphp

    <Directory />
        suPHP_Engine on
    </Directory>

    <Directory /usr/share>
        suPHP_Engine off
    </Directory>

</IfModule>

Il semblerait qu’il y ait un petit bug à l’installation d’Apache et qu’il oublie d’activer la version SSL du vHost default. Du coup, en essayant d’accéder à https://votre_ndd.com, vous aurez un message d’erreur « SSL a reçu un enregistrement qui dépasse la longueur maximale autorisée. (Code d’erreur : ssl_error_rx_record_too_long) » :

Ca se corrige assez facilement avec la commande suivante :

a2ensite /etc/apache2/sites-available/default-ssl

On redémarre ensuite Apache pour que tout soit bien pris en compte :

 service apache2 restart

Passons au FTP…

Installons PureFTPd dans sa version MySQL :

apt-get install pure-ftpd-common pure-ftpd-mysql

Il faut éditer le fichier de configuration pour passer la variable VIRTUALCHROOT à true:

nano /etc/default/pure-ftpd-common

Repérez la variable VIRTUALCHROOT et passez la à true :

# VIRTUALCHROOT:
# whether to use binary with virtualchroot support
# valid values are "true" or "false"
# Any change here overrides the setting in debconf.
VIRTUALCHROOT=true

Pour éviter d’avoir une passoire, on va activer le SSL et TSL sur les connexions FTP ; Il nous faut générer un certificat pour ça et activer l’option. Éditez le fichier /etc/pure-ftpd/conf/TLS :

nano /etc/pure-ftpd/conf/TLS

et tapez juste 1 dedans :

1

Ça fait bizarre, mais c’est il n’y a que ça à faire 🙂 On va ensuite générer nos certificats SSL :

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Répondez aux questions posées comme vous pouvez / voulez ; Au pire, à grands coups de Enter, ca fonctionnera aussi (mais ça sera moins clair au moment de valider le certificat dans un navigateur…) :

 

Un petit coup de CHMOD pour faire propre sur la clé générée :

chmod 600 /etc/ssl/private/pure-ftpd.pem

et on redémarre PureFTPd :

/etc/init.d/pure-ftpd-mysql restart

Et voilà, le FTP est prêt pour ISPConfig.

Les Quota

ISPConfig permet de gérer des quota pour chaque utilisateur / site / boite mail / etc. Autant ne pas s’en priver :

apt-get install quota quotatool

Sauvegardons une copie du fichier /etc/fstab qu’il va falloir modifier et rajoutons les options qui vont bien à chaque ligne qui vous intéresse de limiter (typiquement, /var et/ou /home) :

cp /etc/fstab /etc/fstab.old
nano /etc/fstab

Il faut rajouter à chaque partition les options suivantes : ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 Je mets mon fstab en exemple, ou je ne l’ai appliqué que sur le /var :

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/sda1       /       ext4    errors=remount-ro,relatime      0       1
/dev/sda2       swap    swap    defaults        0       0
/dev/sda3       /var    ext4    defaults,relatime,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0        1       2
proc            /proc   proc    defaults                0       0
sysfs           /sys    sysfs   defaults                0       0
tmpfs           /dev/shm        tmpfs   defaults        0       0
devpts          /dev/pts        devpts  defaults        0       0

Il n’y a plus qu’à remonter les partitions qui ont été impactées par vos modifs et lancer les quota :

mount -o remount /var
quotacheck -avugm
quotaon -avug

Les « Cannot stat old […] » qui vont apparaître dans la console sont normaux, vu que c’est la première fois que vous checkez les quota…

Stats, Log, etc.

ISPConfig fournit des stats et des infos à l’aide de quelques logiciels qu’il faut installer :

apt-get install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl

Il faut également désactiver le cron d’AwStat en commentant tout le fichier /etc/cron.d/awstats :

nano /etc/cron.d/awstats

puis mettre un # devant chaque ligne :

#MAILTO=root

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

La partie Mail

Un gros morceau que voila ! Commençons par tout installer via apt-get :

apt-get install postfix postfix-mysql postfix-doc getmail4 binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo

Le système va encore nous poser pleins de questions, voici comment lui répondre. Pour Postfix, on veut une configuration type <Site Internet> :

En ce qui concerne le <Nom de courrier>, j’ai personnellement laissé le NDD par défaut (celui de la machine Kimsufi). Vous pouvez mettre un autre NDD si vous voulez.

Éditons la configuration de Postfix pour qu’il digère le TLS / SSL. Comme d’hab, je fais une copie de l’original avant, au cas où :

cp /etc/postfix/master.cf /etc/postfix/master.cf.old
nano /etc/postfix/master.cf

Il faut décommenter les lignes sous submission et smtps, sauf celles avec milter (je ne sais pas pourquoi, c’est comme ça, c’est tout). Ce qui donne :

submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING

On relance notre ami Postfix :

/etc/init.d/postfix restart

Passons aux anti-virius, filtres de spams et compagnie :

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl

Pas de configuration pour cette partie, mais une petite subtilité : ISPConfig joue avec les filtres anti-spams lui-même, il faut donc désactiver l’allumage automatique des filtres au démarrage de la machine. Pas trop dur, mais il faut y penser :

/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove

Enfin, normalement, pendant l’installation des paquets, vous avez peut-être vu passer un [FAIL] sur le paramétrage de Clamav :

Paramétrage de clamav (0.97.8+dfsg-1) ...
Paramétrage de clamav-daemon (0.97.8+dfsg-1) ...
[FAIL] Clamav signatures not found in /var/lib/clamav ... failed!
[FAIL] Please retrieve them using freshclam ... failed!
[FAIL] Then run '/etc/init.d/clamav-daemon start' ... failed!

Si c’est le cas, lancez les commandes suivantes :

/etc/init.d/clamav-daemon stop
freshclam
/etc/init.d/clamav-daemon start

Vous devriez avoir des [OK]…

Les options :

les paquets ci-dessous ne sont pas obligatoire, mais fortement conseillés :

Rkhunter :

Pour éviter les rootkits…

apt-get install rkhunter

Jailkit :

Pour chrooter vos futurs utilisateurs… Il doit obligatoirement être installé AVANT ISPConfig. Après, ce sera trop tard, ca ne fonctionnera pas !

apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold

puis on y va à l’ancienne :

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
tar xvfz jailkit-2.16.tar.gz
cd jailkit-2.16
./debian/rules binary
cd ..
dpkg -i jailkit_2.16-1_amd64.deb
rm -rf jailkit-2.16*

Pour les copieurs/colleurs fous (comme moi), je précise à toutes fins utiles que la version 2.16 n’est peut-être plus la dernière et que ca coute pas cher de vérifier sur le site de l’auteur ou on en est dans les numéros de version. Ensuite, le paquet .deb créé l’est pour ma machine, ce n’est peut être pas _amd64.deb chez vous, ca peut être x86 ou autre…

Fail2ban :

Pas indispensable, mais vu que ISPConfig nous montrera les logs, autant l’avoir !

apt-get install fail2ban

On va faire en sorte que ca surveille les connexions hasardeuses sur le Dovecot et PureFTP. Créez le fichier jail.local qui va bien :

nano /etc/fail2ban/jail.local

puis coller le contenu :

[pureftpd]
enabled  = true
port     = ftp
filter   = pureftpd
logpath  = /var/log/syslog
maxretry = 3

[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5

[sasl]
enabled  = true
port     = smtp
filter   = sasl
logpath  = /var/log/mail.log
maxretry = 3

Puis on se fait 2 fichiers de config. D’abord :

nano /etc/fail2ban/filter.d/pureftpd.conf

avec le contenu suivant :

[Definition]
failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] Authentication failed for user.*
ignoreregex =

Puis

nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf

avec le contenu suivant :

[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P<host>\S*),.*
ignoreregex =

Et voilà ! Plus qu’à redémarrer le bestiau :

/etc/init.d/fail2ban restart

ISPConfig 3

ISPConfig a la gentiellesse de bien vouloir s’installer quasiment tout seul. Il suffit de télécharger l’archiver et de lancer l’installation, de répondre à quelques questions, et boom, ca fonctionne !

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
php -q install.php

Avouez que c’est simple, quand même 🙂 L’installateur va faire quelques trucs et vous posez quelques questions. Pour faire simple, répondez par la réponse par défaut à tout (langue, database, etc.) en appuyant sur Entrer, SAUF quand on vous demande le mot de passe root de  MySQL, ou il vous faudra évidemment répondre avec votre mot de passe.

Ensuite, ça va générer quelques certificats et vous demander sur quel port ISPConfig doit fonctionner (8080, par défaut). Là aussi, n’ayant pas de besoin particulier, je ne suis pas trop embêté, j’ai tout laissé par défaut, à grand coup de Enter, une fois de plus.

Idem encore une fois pour le « mot de passe challenge » 🙂

Installation completed. Ca fait plaisir, hein ? Il n’y a plus qu’à lancer votre navigateur et à vous rendre sur https://votre_ndd.com:8080. Les identifiants sont admin et admin par défaut. C’est à changer, of course 🙂

1ers tests

Arrivé là, il est de bon ton de tester un peu tout ça. Connectez-vous à votre interface d’admin d’ISPConfig, créez un ou des domaines, une boite mail, un espace FTP et un site internet. Évidemment, assurez vous que les pointages DNS des noms de domaines ont été bien fait ! Pour ma part, j’utilise Thunderbird en version portable pour tester la fonctionnalité Mails. Ça me permet entre autre de tester les accès IMAP, POP3 et SMTP sur la machine. Normalement, TOUT doit fonctionner. Quand c’est le cas, on peut passer à l’installation d’un webmail.

Ca marche pas !

L’erreur 403 :

Il arrive, pour on ne sait quelle raison, que l’utilisateur apache se fasse virer du groupe ispconfig (ou qu’il ne soit pas ajouté correctement). Dans ce cas, vous vous mangerez une belle erreur 403. Dans ce cas, rajoutez l’utilisateur apache au groupe ispconfig avec la commande suivante :

usermod -a -G ispconfig apache

Refaites le test, ca devrait être mieux…

Bien tenté, mais j’ai toujours la 403 :

Une solution qui a fonctionné pour certains :

Désactivez le mod PHP 5 dans Apache 2 :

a2dismod php5

Activez le module fcgid :

a2enmod fcgid

Editez le fichier /etc/php5/cgi/php.ini :

nano /etc/php5/cgi/php.ini

Et rajoutez à la fin du fichier :

(...)
cgi.fix_pathinfo = 1

Redémarrez Apache :

/etc/init.d/apache2 restart

Ca devrait fonctionner 🙂

Roundcube et ISPConfig

Allons y, téléchargeons RoundCube depuis les dépots (la 0.7, on mettra à jour plus tard…)

apt-get install roundcube roundcube-plugins roundcube-plugins-extra

On va encore avoir quelques questions auxquelles il faudra répondre. Avec ou sans dbconfig-common ? Excellente question, la réponse est <Oui> !

Pour le serveur de base de données, on choisira <MySQL> :

Il faut ensuite indiquer le mot de passe root de la base MySQL :

Et enfin, il faut donner et confirmer un mot de passe pour la base de données « roundcube » que l’installateur est en train d’installer.

On édite dans la foulée le fichier de configuration d’alias de RoundCube

nano /etc/roundcube/apache.conf

On dé-commente la ligne Alias /roundcube /var/lib/roundcube, situé au tout début du fichier :

# Those aliases do not work properly with several hosts on your apache server
# Uncomment them to use it or adapt them to your configuration
#    Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/
     Alias /roundcube /var/lib/roundcube

Ainsi, tous les utilisateurs pourront accéder au webmail depuis leur nom de domaine, en rajoutant /roundcube à la fin. Attention, si vous pouvez mettre ce que vous voulez (/tartenpion, /webmail, /youkadi, …) NE METTEZ SURTOUT PAS /mail ! Ca vous bloquerait toute l’interface de gestion des mails dans ISPConfig ! Dans le même fichier, il faut rajouter des directives pour PHP. Sous <Directory /var/lib/roundcube>, vous devez avoir tout ça :

[...]
<Directory /var/lib/roundcube/>
  Options +FollowSymLinks
  DirectoryIndex index.php

  <IfModule mod_php5.c>
    AddType application/x-httpd-php .php

    php_flag magic_quotes_gpc Off
    php_flag track_vars On
    php_flag register_globals Off
    php_value include_path .:/usr/share/php
  </IfModule>

  # This is needed to parse /var/lib/roundcube/.htaccess. See its
  # content before setting AllowOverride to None.
  AllowOverride All
  order allow,deny
  allow from all
</Directory>

On sauvegarde et on relance Apache :

/etc/init.d/apache restart

La, normalement, vous pouvez tester, ca devrait fonctionner. Essayez votre_ip/roundcube, vous devriez avoir le login de RoundCube. Essayez de vous connecter et jouez avec vos mails (pour le champ serveur : soit vide, soit localhost, on règlera ce souci plus tard).

Marier Roundcube et ISPConfig

Il existe un plugin qui permet a ISPConfig et à RoundCube de se parler et de se comprendre. Ca permet notamment aux utilisateurs de gérer leurs mots de passes, absences, etc. directement depuis RoundCube, sans avoir à passer par leur contact admin de ISPConfig. Ca se télécharge et s’installe assez facilement :

cd /tmp
git clone https://github.com/w2c/ispconfig3_roundcube.git
cd /tmp/ispconfig3_roundcube/
mv ispconfig3_* /var/lib/roundcube/plugins
cd /var/lib/roundcube/plugins
mv ispconfig3_account/config/config.inc.php.dist ispconfig3_account/config/config.inc.php

Dans ISPConfig, il faut créer un utilisateur distant, dans « Système », « User Management », « Utilisateurs distants ».

Donnez le nom que vous voulez (roundcube sera bien) et un mot de passe, ne sélectionnez aucune option sous « Fonctions » et validez votre utilisateur. Lancez PhpMyadmin en root, sélectionnez votre base de données ISPConfig, allez dans l’onglet SQL et collez la requête suivante (NB : une sauvegarde de la base ne fait JAMAIS de mal avant de lancer une petite requête de la sorte…)

UPDATE `remote_user` SET `remote_functions` = 'server_get,get_function_list,client_templates_get_all,server_get_serverid_by_ip,server_ip_add,server_ip_update,server_ip_delete;mail_domain_get,mail_domain_add,mail_domain_update,mail_domain_delete,mail_domain_set_status,mail_domain_get_by_domain;mail_aliasdomain_get,mail_aliasdomain_add,mail_aliasdomain_update,mail_aliasdomain_delete;mail_user_get,mail_user_add,mail_user_update,mail_user_delete;mail_alias_get,mail_alias_add,mail_alias_update,mail_alias_delete;mail_forward_get,mail_forward_add,mail_forward_update,mail_forward_delete;mail_catchall_get,mail_catchall_add,mail_catchall_update,mail_catchall_delete;mail_transport_get,mail_transport_add,mail_transport_update,mail_transport_delete;mail_whitelist_get,mail_whitelist_add,mail_whitelist_update,mail_whitelist_delete;mail_blacklist_get,mail_blacklist_add,mail_blacklist_update,mail_blacklist_delete;mail_spamfilter_user_get,mail_spamfilter_user_add,mail_spamfilter_user_update,mail_spamfilter_user_delete;mail_policy_get,mail_policy_add,mail_policy_update,mail_policy_delete;mail_fetchmail_get,mail_fetchmail_add,mail_fetchmail_update,mail_fetchmail_delete;mail_spamfilter_whitelist_get,mail_spamfilter_whitelist_add,mail_spamfilter_whitelist_update,mail_spamfilter_whitelist_delete;mail_spamfilter_blacklist_get,mail_spamfilter_blacklist_add,mail_spamfilter_blacklist_update,mail_spamfilter_blacklist_delete;mail_user_filter_get,mail_user_filter_add,mail_user_filter_update,mail_user_filter_delete;mail_filter_get,mail_filter_add,mail_filter_update,mail_filter_delete;client_get_all,client_get,client_add,client_update,client_delete,client_get_sites_by_user,client_get_by_username,client_change_password,client_get_id,client_delete_everything' WHERE `remote_user`.`remote_username` = 'roundcube' LIMIT 1 ;

 

 

 

 

 

Exécutez la requête et fermez PhpMyAdmin On peut maintenant éditer le fichier /var/lib/roundcube/plugins/ispconfig3_account/config/config.inc.php :

nano /var/lib/roundcube/plugins/ispconfig3_account/config/config.inc.php

Remplacez les informations avec les identifiants créés pour l’utilisateur distant de ISPConfig et en indiquant l’adresse de connexion à votre ISPConfig et n’oubliez pas de rajouter le S de https !

<?php
$rcmail_config['remote_soap_user'] = 'roundcube';
$rcmail_config['remote_soap_pass'] = 'MotDePasse';
$rcmail_config['soap_url'] = 'https://ksxxxxx.kimsufi.com:8080/remote/';
?>

Ouvrons maintenant le fichier main.inc.php de RoundCube :

nano /etc/roundcube/main.inc.php

Cherchez 2 lignes ; la première, c’est pour mettre par défaut le serveur localhost sur la page de connexion de RoundCube :

[...]
$rcmail_config['default_host'] = 'localhost';
[...]

La seconde, c’est pour déclarer à roundcube les plugins qu’on a installé :

[...]
// ----------------------------------
// PLUGINS
// ----------------------------------

// List of active plugins (in plugins/ directory)
//$rcmail_config['plugins'] = array();
$rcmail_config['plugins'] = array("jqueryui", "ispconfig3_account", "ispconfig3_autoreply", "ispconfig3_pass", "ispconfig3_spam", "ispconfig3_fetchmail", "ispconfig3_filter");
[...]

Comme dirait l’autre : yapuka ! Essayez voir de vous connecter à votre webmail et jouez avec les options disponibles dans « Préférences » / onglet « Compte ». Tout devrait fonctionner avant de passer à la suite.

Activer le « Push » dans Dovecot

Je mets « push » entre guillemets parce que ce n’est pas vraiment du push, mais plutôt l’activation de la fonction IDLE du protocole IMAP, qui fait plus ou moins la même chose que du push mais pas vraiment. In fine, vos iPhone, Android et autres compagnons recevront vos mails sans que vous n’ayez à relever la boite. Et en plus c’est assez simple ! On ouvre la conf de Dovecot :

 nano /etc/dovecot/dovecot.conf

et on rajoute une ligne dans la partie haute du fichier, après les paramètres SSL :

listen = *,[::]
protocols = imap pop3
auth_mechanisms = plain login
disable_plaintext_auth = no
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_privileged_group = vmail
ssl_cert = </etc/postfix/smtpd.cert
ssl_key = </etc/postfix/smtpd.key

# When IDLE command is running, mailbox is checked once in a while to see if
# there are any new mails or other changes. This setting defines the minimum
# time in seconds to wait between those checks. Dovecot can also use dnotify,
# inotify and kqueue to find out immediately when changes occur.
mailbox_idle_check_interval = 30

[...]

Vous pouvez ajuster la valeur 30 (secondes) à ce que vous voulez. Si une relève automatique une fois par heure vous suffit (la batterie de votre télépohone vous remerciera…), vous pouvez passer la valeur à 3600.

 Mettre à jour RoundCube vers la version 0.9.2

Ce n’est pas obligatoire, à vous de voir si la version 0.7 vous convient ou si voulez la dernière version qui va bien. C’est pas très très propre (on installe des paquets testing sur une stable, c’est moche…), donc c’est à vos risques et périls. Commencez par faire une copie des fichiers de configuration de base de RoundCube :

cd /etc/roundcube
cp db.inc.php db.inc.php.0.7.2
cp main.inc.php main.inc.php.0.7.2

Faites également un backup de la base MySQL « roundcube » à l’aide de PhpMyAdmin. Ensuite, ouvrez votre sources.list

nano /etc/apt/sources.list

Rajoutez une ligne à la fin de ce fichier contenant les dépots testing :

deb http://ftp.fr.debian.org/debian testing main contrib non-free

On met à jour la liste des paquets :

apt-get update

et enfin, on installe RoundCube à partir des dépôts testing :

apt-get install roundcube/testing roundcube-plugins/testing

Comme d’habitude, il va falloir répondre à quelques questions existentielles. Pour le fichier de configuration d’Apache, répondre <Y> :

Ca sera <Oui> aussi pour la mise à jour de la base de données :

Et enfin <Installer la version du responsable du paquet> pour le fichier main.inc.php (ne vous fiez pas à l’image, j’ai merdé le screenshot 🙂 ) :

Il ne reste plus qu’à refaire les changements qu’on a déjà fait en installant la version de RoundCube fournie avec Wheezy dans la configuration Apache de RoundCube et dans le main.inc.php. Commençons par Apache :

nano /etc/roundcube/apache.conf

On dé-commente la ligne Alias /roundcube /var/lib/roundcube, situé au tout début du fichier :

# Those aliases do not work properly with several hosts on your apache server
# Uncomment them to use it or adapt them to your configuration
#    Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/
     Alias /roundcube /var/lib/roundcube

Ainsi, tous les utilisateurs pourront accéder au webmail depuis leur nom de domaine, en rajoutant /roundcube à la fin. Attention, si vous pouvez mettre ce que vous voulez (/tartenpion, /webmail, /youkadi, …) NE METTEZ SURTOUT PAS /mail ! Ca vous bloquerait toute l’interface de gestion des mails dans ISPConfig ! Dans le même fichier, il faut rajouter des directives pour PHP. Sous <Directory /var/lib/roundcube>, vous devez avoir tout ça :

[...]
<Directory /var/lib/roundcube/>
  Options +FollowSymLinks
  DirectoryIndex index.php

  <IfModule mod_php5.c>
    AddType application/x-httpd-php .php

    php_flag magic_quotes_gpc Off
    php_flag track_vars On
    php_flag register_globals Off
    php_value include_path .:/usr/share/php
  </IfModule>

  # This is needed to parse /var/lib/roundcube/.htaccess. See its
  # content before setting AllowOverride to None.
  AllowOverride All
  order allow,deny
  allow from all
</Directory>

On sauvegarde et on relance Apache :

/etc/init.d/apache restart

Idem, on refait les 2 modifications dans main.inc.php :

nano /etc/roundcube/main.inc.php

Cherchez 2 lignes ; la première, c’est pour mettre par défaut le serveur localhost sur la page de connexion de RoundCube :

[...]
$rcmail_config['default_host'] = 'localhost';
[...]

La seconde, c’est pour déclarer à roundcube les plugins qu’on a installé :

[...]
// ----------------------------------
// PLUGINS
// ----------------------------------

// List of active plugins (in plugins/ directory)
//$rcmail_config['plugins'] = array();
$rcmail_config['plugins'] = array("jqueryui", "ispconfig3_account", "ispconfig3_autoreply", "ispconfig3_pass", "ispconfig3_spam", "ispconfig3_fetchmail", "ispconfig3_filter");
[...]

Et voila, emballez, c’est pesé, vous voila avec la dernière version de RoundCube. Pensez à virer la ligne testing de votre sources.list :

nano /etc/apt/sources.list

Le fichier ressemblera donc à ça :

deb http://debian.mirrors.ovh.net/debian/ wheezy main contrib non-free
deb-src http://debian.mirrors.ovh.net/debian/ wheezy main contrib non-free

deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free

# deb http://ftp.fr.debian.org/debian testing main contrib non-free

et on finit par un coup d’update :

apt-get update

Installation de OwnCloud

Pour cette partie, j’ai décidé en mon âme et conscience de ne pas utiliser ISPConfig pour gérer la partie OwnClod, pour pleins de raisons trop longues à expliquer. On va donc installer la dernière version de OwnCloud et configurer à la main un vHost pour y accéder. On va quand même se servir d’ISPConfig pour créer un utilisateur MySQL « owncloud » ainsi que la base « owncloud ». Je ne vous fait pas l’affront de vous expliquer cette manoeuvre bien simple 🙂   Pour OwnCloud en lui-même, rien de plus facile : on va créer la source pour APT, installer la clé pour le dépôt qui va bien et demander à Debian de se débrouiller comme un grand pour l’installation :

echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key
apt-key add - < Release.key
apt-get update
apt-get install owncloud

Aussi incroyable que cela puisse paraître, OwnCloud est maintenant installé ! Il ne reste plus qu’à créer un vHost Apache pour pouvoir y accéder.

Par souci de rangement et par habitude, j’ai créé un fichier owncloud.vhost dans le conf.d/ de Apache ; les puristes remarqueront que ce vHost est fortement inspiré de celui de RoundCube 🙂

On crée le fichier de config pour OwnCloud :

nano /etc/apache2/conf.d/owncloud.vhost

On y colle le contenu suivant (Pensez à remplacer cloud.domain.tld par le sous-domaine que vous désirez. Evidemment, ce sous-domaine ne devra pas être déclaré dans ISPConfig et être par contre présent dans votre configuration DNS) :

<VirtualHost *:80>
ServerName cloud.domain.tld
DocumentRoot /var/www/owncloud/

<Directory /var/www/owncloud/>
Options +FollowSymLinks
DirectoryIndex index.php
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .:/usr/share/php
</IfModule>

AllowOverride All

<IfVersion >= 2.3>
Require all granted
</IfVersion>
<IfVersion < 2.3>
Order allow,deny
Allow from all
</IfVersion>

</Directory>
</VirtualHost>

On rafraîchit la configuration d’Apache :

/etc/init.d/apache2 reload

Il n’y a plus qu’à lancer l’adresse http://cloud.domain.tld pour arriver sur l’interface de connexion d’OwnCloud.

Pour la configuration, pensez à activer le bouton « Avancées » et à donner les informations de connexions à la base MySQL « owncloud » créée précédement.

Si cela ne fonctionne pas (page blanche, error 500, etc.), il y a de fortes chances que ce soit X-Cache qui vous embête. Dans ce cas, éditez le fichier de configuration de X-Cache :

nano /etc/php5/apache2/conf.d/20-xcache.ini

et positionnez la variable xcache.admin.enable_auth à Off :

[xcache.admin]
xcache.admin.enable_auth = Off
; Configure this to use admin pages
; xcache.admin.user = ""
; xcache.admin.pass = md5()
; xcache.admin.pass = ""

Relancez Apache :

nano /etc/init.d/apache2 restart

Normalement, si tout va bien, vous devriez avoir un OwnCloud fonctionnel…90% du boulot est fait 🙂

Marier OwnCloud et RoundCube

Ou comment accéder à ses mails depuis OwnCloud. Pour réaliser ce mariage pour tous, il va nous falloir un petit plugin bien sympathique et en développement constant:

cd /tmp wget
https://github.com/hypery2k/owncloud/archive/v1.1.17.zip

Les plus sérieux d’entre vous auront remarqué que je choppe une version bien particulière (la 1.1.17, dernière en date ) ce jour. Ça ne fait jamais de mal de vérifier les dernières versions… Celle ci fonctionne avec RoundCube 0.9.2 et OwnCloud 5.0.9.

On désarchive le tout :

unzip v1.1.17.zip

Et on va chercher le zip de la bonne release pour le mettre dans le répertoire /apps/ de OwnCloud :

unzip owncloud-1.1.17/apps/roundcube/releases/roundcube_version_1.1.17.zip -d /var/www/owncloud/apps/roundcube/

Connectez vous ensuite à votre OwnCloud en tant qu’admin et rendez-vous dans le menu « Applications ».

 

applications

 

Cherchez dans la liste des applications disponibles celle qui s’appelle « Roundcube » et activez la.

Une fois activé, rendez-vous maintenant dans le menu « Administration », et cherchez l’endroit où configurer RoundCube. Indiquez l’emplacement de votre installation de RoundCube (/roundcube/ chez moi…) et enregistrez vos modifications.

Déconnectez vous et reloguer vous à OwnCloud avec votre compte d’utilisateur. Rendez vous dans le menu « Personnel » et remplissez les informations de connexion à votre compte ([email protected] et mot de passe) :

 

perso_setmail

 

Enregistrez et voila !

Assouplir / Changer les règles de mots de passe pour les utilisateurs RoundCube

Si vous avez activé les plugins RoundCube pour communiquer avec OwnCloud, vous avez peut être remarqué que vous ne pouviez pas faire ce que vous vouliez avec vos mots de passe en terme de longueur, de caractères autorisés / interdits, etc.

Pour changer ces règles, c’est assez simple, il suffit de créer un fichier de configuration du plugin ispconfig3_pass et de modifier quelques paramètres.

Copiez le fichier config.inc.php.dist du plugin ispconfig3_pass vers config.inc.php :

cd /var/lib/roundcube/plugins/ispconfig3_pass/config
cp config.inc.php.dist config.inc.php

Editez ce fichier :

nano config.inc.php

Modifiez les valeurs qui vous intéresse. Ci-dessous, un exemple bidon :

<?php
$rcmail_config['password_confirm_current'] = TRUE;
$rcmail_config['password_min_length'] = 2;
$rcmail_config['password_check_symbol'] = FALSE;
$rcmail_config['password_check_lower'] = TRUE;
$rcmail_config['password_check_upper'] = FALSE;
$rcmail_config['password_check_number'] = TRUE;
?>

Les différents paramètres et leurs valeurs possibles entre parenthèse :

  • password_confirm_current : impose de taper le mot de passe actuel avant de pouvoir le changer (TRUE / FALSE)
  • password_min_lenght : longueur minimale du mot de passe (doit être un chiffre)
  • password_check_symbol : impose ou non la présence d’un symbole dans le mot de passe (TRUE / FALSE)
  • password_check_lower : impose ou non la présence de caractère en minuscule dans le mot de passe (TRUE / FALSE)
  • password_check_upper : impose ou non la présence de caractère en majuscule dans le mot de passe (TRUE / FALSE)
  • password_check_number : impose ou non la présence de chiffre dans le mot de passe (TRUE / FALSE)

Retenez que plus vous avez de TRUE, plus votre politique de mot de passe sera sécurisé.

Il n’y a pas besoin de relancer quoi que ce soit, une fois le fichier enregistré, les modifications sont appliqués.

Et ensuite ?

Je suis à court d’idée pour la suite, n’hésitez pas à proposer / demander des options dans les commentaires…

 

Cet article comporte 66 commentaires

  1. Bonjour,

    Le sujet de ton article correspond exactement à ce que je souhaite faire (quand j’aurai le temps …) (et installé chez moi sur un raspberry pi).
    Bien qu’en cours de rédaction, merci pour cet article complet !!

    Aymeric

    1. Je galère avec le plugin d’autologin de roundcube quand on est connecté à Owncloud, bug qui vient du plugin.
      Des que j’ai un workaround fonctionnel, je complète mon article…

  2. Bonjour, j’ai suivi votre tuto à la lettre mais arrivé tout à la fin au moment de se connecter à l’interface de ispconfig il y a une belle erreur

    403 forbidden
    You don’t have permission to access / on this server.

    j’ai refait l’install en suivant le tuto deux fois et les deux fois meme erreur. Y’a un bug quelque part.
    merci

    1. Avez vous essayer avec le https:// et non http:// ?
      Sur firefox, j’ai vu passer quelques error 403 quand on omet le S de https…

    1. Bizarre autant qu’étrange… Que dise les log ? ( tail -f /var/log/ispconfig/ispconfig.log) ?

      Eventuellement, essayez d’activer default-ssl dans les alias gérés par apache :
      cd /etc/apache2/sites-available
      a2ensite default-ssl
      /etc/init.d/apache2 restart

      Et n’oubliez pas non plus les :8080 à la fin de l’url : https://domain.com:8080

    2. J’ai déjà eu cette erreur direct après l’install, cétait du à apache, besoin de le rajouter dans le group ispconfig

      1. Salut, merci pour le tuto 🙂 je suis bloqué au meme endroit que laurent, avec l’erreur 403, et quand je met : « usermod -a -G ispconfig apache » , sa met repond : « usermod : l’utilisateur apache n’existe pas »

        1. et j’ai essayé de faire tail -f /var/log/ispconfig/ispconfig.log pour avoir les log, mais cela ne fonctionne pas (y’a pas d’erreur, mais sa ne retourne rien, je suis obligé de fermer la console et de la reouvrir)

        2. Si l’utilisateur apache n’existe pas, c’est plus grave 🙂
          Est ce que Apache fonctionne ? (it works quand on accède au site ou /etc/init.d/apache2 status)
          Si non, essaye de réinstaller apache (apt-get install apache) ou tente un coup de dpkg-reconfigure apache2

          1. bon apres 2 install et en combinant avec un autre tuto en anglais j’ai reussi a faire fonctionner ispconfig 🙂 je pense que sa ne marchait pas parce que je n’ai pas de partition /var, j’ai tout mis sur / mais j’ai du oublier de modifier certaines etapes pour que sa marche. bon allé maintenant je passe à rouncube…

  3. Salut et merci pour ce tuto.

    Je suis bloqué au « mariage » ISPCONFIG ROUNDCUBE, j’ai bien un onglet compte qui est apparu dans préférences Roundcube mais lorsque je clic dessus « Error 501 service currently not available » auriez-vous une idée ?

    En vous remerciant,
    – Olivier –

    1. Bonjour Olivier

      J’ai eu le même problème, j’ai résolu ceci en changeant dans le main.inc.php le $rcmail_config[‘skin’] = ‘default’; en $rcmail_config[‘skin’] = ‘classic’;

      En espérant que cela pourra vous aider.

      Cordialement,

  4. Re-bonjour,

    Voici ce que j’ai trouvé dans les logs de roundcube
    [21-Sep-2013 13:20:26 +0200]: PHP Error: Error loading template for ispconfig3_account.account in /usr/share/roundcube/program/include/rcube_template.php on line 417 (GET /roundcube/?_task=settings&_action=plugin.ispconfig3_account)

    Merci par avance,

  5. Bonjour,

    J’ai le même problème que Olivier dans l’onglet préférence -> compte une erreur 501.

    Error loading template for ispconfig3_account.account in /usr/share/roundcube/program/include/rcube_template.php on line 417 (GET /roundcube/?_task=settings&_action=plugin.ispconfig3_account

  6. Salut,

    il y a une erreur dans ta ligne :

    a2ensite /etc/apache2/site-available/default-ssl

    elle doit être :

    a2ensite /etc/apache2/sites-availables/default-ssl

    Tu l’as déjà corrigé dans un de tes commentaires, mais ça serait bien de la corriger plus haut…

    En passant merci beaucoup pour ton tuto !!!

  7. Bonjour tout le monde.

    Perso j’ai toujours l’erreur 403 même après toute les manips.
    Il n’y a pas d’utilisateur apache, ajouter www-data au groupe ispconfig et corriger les « [warn] NameVirtualHost *:80 has no VirtualHosts » avec la modif sur ports.conf ne change rien.

    Quelqu’un a une idée ?

    PS : Sinon pour la commande « a2ensite /etc/apache2/sites-availables/default-ssl », je sais qu’on t’as dit que c’était sites-availables, bah pas de chance moi c’est site-available, quelqu’un sait pourquoi c’est si variable ?

    1. regarde le lien que Arnaud à écrit un peu plus haut : http://www.howtoforge.com/how-to-set-up-apache2-with-mod_fcgid-and-php5-on-debian-etch (partie 2), quand j’ai réinstaller une deuxième fois ce système, c’est uniquement après avoir fait ce qu’il y a dans la partie 2 de ce lien que ça a fonctionné. Je ne sais pas exactement quelle manipulation corrige le problème (pas eu le temps de vérifier), mais c’est peut-être le cgi.fix_pathinfo = 1 .

      Après, tu peux remettre à On le php5 : a2enmod php5

      ps : J’ai présentement sites-available sur dans mon /etc/apache2. Bizarre …

      1. D’après la doc officielle, c’est bien sites-available et c’est également ce que j’ai sur mon serveur (et ca fonctionne ^^).

        Je vais re-re-corriger mon tuto.

        Pour le lien que tu proposes, je penses aussi que c’est le cgi.fix_pathinfo = 1 qui résoud quelques soucis.
        Je regarde ça de plus près et j’éditerai au besoin.

        1. Pour ma part la ligne du tuto ne fonctionnant pas, j’ai juste tapé a2ensite
          il a écrit «il y a 2 sites à activer: default default-ssl»
          j’ai tapé default-ssl et entrée. 🙂

          En gros, je ne pense pas que le chemin soit obligatoire du coup!

      2. Merci pour les réponses, je reviens un peu tard…

        J’ai pu tester ISPconfig3 en installant la version d’OVH qui est en beta, au final ça ne me convient pas pour ce que je veux en faire bien que je reconnaisse les gros avantages d’ISPConfig. Beaucoup trop d’outils que je ne me servirais pas, je préfère faire ça à la main au final ou installer Webmin que je connais mieux.

        Merci en tout cas 😉

  8. Bonjour Alex,

    J’ai eu un souci avec phpMyAdmin et après plusieurs essais, il s’agissait finalement de la commande a2dismod php5 qui aisait buguer le serveur. Il me faisait télécharger la page au lieu de me l’afficher …

    Dans tous les cas, ton tutoriel est excellent. Tout est fonctionnel !!! Merci beaucoup

  9. Hello,

    J’ai un soucis avec la commande : a2ensite /etc/apache2/site-available/default-ssl ou a2ensite /etc/apache2/sites-availables/default-ssl.

    Elle me retourne toujours la même erreur : ERROR: No site found matching !

    Si vous avez une idée, merci beaucoup car ce tuto est super complet.

  10. Bonjour,
    Un vif remerciement pour ce travail partagé. J’ai essayé bien des tutoriels, aucun ne m’a permis de mener à bien une installation complète. Je suis débutant en Débian, j’ai beaucoup appris en 3 semaines avec les ressources trouvées. Vos explications étaient complètes, détaillées, commentées. Je n’ai plus eu le sentiment de faire de simple copier-coller, mais de pouvoir analyser, comprendre, apprendre ce que je faisais.

    Pour ma part, je n’ai pas installé ISPConfig, j’ai préféré le couple Webmin/Virtualmin.
    J’ai eu, à l’instar de Anthony Rabot, des problèmes avec phpMyadmin. Résolus, dus à Apache.
    A ce stade, Roundcube, Owncloud sont installés, tout est fonctionnels !

    Je vais aussi installer la suite KOLAB.
    Voilà, mon retour. Merci à vous, Alex.

    Cordialement.
    Brice

  11. Bonjour,

    Voici quelques précisions que je souhaite apporté à votre tutoriel si complet :

    Pour la ligne de commande : « a2ensite /etc/apache2/sites-available/default-ssl » si vous avez l’erreur « ERROR: No site found matching /etc/apache2/sites-available/default-ssl ».

    Il est nécessaire de copier coller le fichier default-ssl dans un fichier default-ssl.conf puis faire « a2ensite default-ssl.conf ».

    Pour accéder à Phpmyadmin, il est nécessaire de :
    Ouvrez le fichier /etc/apache2/apache2.conf avec les droits root, soit :
    nano /etc/apache2/apache2.conf

    Ajoutez la ligne suivante à la toute fin du fichier :
    Include /etc/phpmyadmin/apache.conf

    Ensuite, redémarrez votre serveur Apache avec la commande suivante :
    /etc/init.d/apache2 restart

    Après avoir fait ces étapes, vous devriez être capable d’accéder à votre outil de gestion de base de données phpMyAdmin via http://localhost/phpmyadmin.

    Bref, super tuto mais il demande quelques corrections ! Est-il possible d’envisager une optimisation de la sécurité ?

    Merci

    1. Merci des précisions !
      Niveau sécurité, ce n’était pas le but ici, mais si il y a quelques trucs de bases à faire, pourquoi pas les rajouter…

  12. Bonjour

    Merci pour ce tuto très intéressant. Cependant, malgré son côté pas-à-pas très détaillé qui m’a convaincu de le suivre, j’arrive à un point qui me pose un problème.

    Débutant sur debian et aussi ISPConfig / Boîte mail perso, j’ai heureusement quelques notions d’ubuntu sur desktop/dédié. J’ai réussi sans trop de mal à suivre jusqu’à la fin du chapitre « marier RoundCube et ISPConfig », mais je n’arrive pas à me connecter via RoundCube. J’arrive sur l’interface de login, mais quels identifiants rentrer ?

    J’ai testé la création de clients, users, domaine et boîte mail dans ISPConfg mais je ne sais pas si j’ai fait ça correctement. Tenter de rentrer les identifiants des users créés dans roundcube n’a rien donné.

    Toute aide est la bienvenue car là je nage un peu 😀

    1. Bon j’ai fini par comprendre qu’il fallait que je mette mon adresse mail en login pour rentrer dans roundcube. J’ai quand même du mal à voir comment toutes les briques logicielles s’articulent ensemble mais ça va venir…

  13. Bonsoir,

    Tout d’abord un grand merci à toi pour ce tutoriel très complet et très bien expliqué.

    Je viens d’essayer de le mettre en place sur mon VPS Be1Host avec une Debian 7 Minimal comme OS mais me confronte à certains problèmes que d’autres ont résolu, mais que moi je n’arrive pas à résoudre :
    – phpmyadmin est inaccessible (il me télécharge la page)
    – roundcube est inaccessible (même raison)

    J’ai donc essayer ce que j’ai lu ici, à savoir :
    – a2enmod php5 + le dernier post de ce truc http://forum.ubuntu-fr.org/viewtopic.php?id=1341631 (merci Rocks)
    – les autres solutions ne valent que pour phpmadmin, hors toutes les pages php sont téléchargées au lieu d’afficher.

    Si quelqu’un à une idée, je suis preneur =]

  14. C’est encore moi,

    Pour simplifier le bouzin, j’ai totalement zapé la partie ISPconfig et tout ce qui le concerne. En gros, voici ce que j’ai fait :
    – Installation tout fraiche de Debian
    – Update du système et petits trucs…
    – Apache 2, PHP, MySQL et quelques trucs en plus => sans suPHP et MariaDB à la place de MySQL
    – La partie Mail => sans installer sudo (première ligne de cette partie) et sans arrêter spamassassin
    – Les options => seulement Rkhunter et fail2ban
    – Roundcube et ISPConfig => uniquement ce qui concerne Roundcube

    Voici quelques remarques qui me sont venu en lisant :
    – a2ensite /etc/apache2/sites-available/default-ssl => ne marche pas et c’est normal, utiliser : a2ensite default-ssl
    – /etc/init.d/apache restart => ne fonctionne pas, préférer : service apache2 restart

    Bon alors, il me reste un problème, et de taille je pense, l’utilisateur de test que j’ai créer dispose d’une adresse mail : [email protected]
    Forcément, les mails envoyés tombent en spam ou n’arrivent jamais, quelqu’un aurait-il une idée ?

  15. Je dois avouer que je galère, j’ai du mal à comprendre pourquoi en suivant exactement les instructions, j’ai des problèmes (j’ai essayé plusieurs fois pour être sur).
    Selon vous qu’est ce qui pourrais expliquer que certains ont un problème 403 forbidden et d’autres non?

  16. Le tout installé en une journée, et tout tourne à merveille depuis trois jours. Merci beaucoup pour ce tuto, c’est tout dont j’avais besoin. Merci merci et encore merci.

    Matteo

  17. Bonjour, très bon tuto merci encore.
    J’ai 2 petites questions, la première est pourquoi ne pas utiliser la distributions ISPConfig 3 fournie par OVH ?
    La deuxième, tu dis ne pas vouloir donner les raisons pour lesquelles tu ne veux pas installer owncloud par ISPConfig mais celles-ci m’intéressent si cela ne te déranges pas.

    BA

    1. Voir l’intro 🙂

      l’install proposée par OVH est un chouilla trop vieille pour moi… Roundcube est en version 0.9 et non plus en 0.3, ISPConfig 3 installé a également quelques release de retard par rapport à la dernière version, etc. De plus, j’aime bien faire par moi-même et enfin, quand j’ai tenté de mettre à jour ISPConfig dans sa dernière version, ca a tout pété.

      Pour ISP / OwnCloud, c’est la gestion du NDD par ISP que j’ai squeezé. J’ai du multidomaine qui pointe au meme endroit et je trouve la gestion des redirections merdiques dans ISPConfig. Sans compter que pour des raisons de scripts deja existant, j’avais besoin de l’avoir dans /var/www et non dans un …/client/client000xxx/www/web

  18. Bonjour,

    Merci pour cet excellent tuto ! Je n’ai pas encore tout fini mais j’ai un problème qui a déjà été évoqué concernant l’erreur 501 lors de l’association ispconfig et roundcube qui donne ça dans les logs :

    Error loading template for ispconfig3_account.account in /usr/share/roundcube/program/include/rcube_template.php on line 417 (GET /roundcube/?_task=settings&_action=plugin.ispconfig3_account

    Quelqu’un a-t-il réussi à corriger le problème ?

  19. J’ai suivi ton Tuto à la lettre. J’ai juste un souci avec le SSL
    « a2ensite /etc/apache2/sites-available/default-ssl »
    me retourne
    « ERROR: No site found matching /etc/apache2/sites-available/default-ssl! »

    Et quand je relance apache j’ai ces 2 warnings
    • The Alias directive in /etc/apache2/conf.d/roundcube.conf at line 4 will probably never match because it overlaps an earlier Alias.
    • NameVirtualHost *:443 has no VirtualHosts

    Si tu as des pistes je suis preneur

    1. « a2ensite /etc/apache2/sites-available/default-ssl »
      me retourne
      « ERROR: No site found matching /etc/apache2/sites-available/default-ssl! »

      REGLE

  20. Bonjour, merci pour le tuto il est vraiment très bien fait

    j’ai suivi le tuto jusqu’à l’installation de roundcube pas de problèmes
    après l’install de roundcube j’ai une erreur 500 Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.
    Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
    More information about this error may be available in the server error log.

    est ce que quelqu’un sait comment réglé ce problème car je n’y arrive pas après plusieurs install … j’ai toujours le même problème.

  21. petits probs de mot de passe roundcube
    la table Mysql est sans le graphisme
    et pourquoi ne pas utiliser postfix
    Bravo pour ce tuto qui dépasse ce que j’avais expérimenté

  22. Il y a un bugg avec phpmyadmin lors du choix de la table. En répondant non cela met la table en berne et ne peux plus s’ouvrir.
    La table crée pour Marier Roundcube et ISPConfig « nada »
    Merci pour une astuce !!

  23. Merci pour ce tuto. Je me suis arrêté après ISPConfig, pas besoin du reste.

    Je l’ai utilisé sur un VPS de chez Firstheberg (un hébergeur que je vous recommande vivement. À taille humaine, un vrai support (pas comme OVH), et de bons prix.)

    Mais zéro erreur, très complet, super boulot! 🙂

    1. Juste par contre, j’ai créé des transferts d’emails, mais je ne reçois rien… Si quelqu’un peut m’indiquer où vérifier ça, je veux bien! (Je n’ai pas besoin d’autres choses pour les courriels, juste des transferts.)

  24. Je rajoute une petite remarque: le gros et lourd PHPMyAdmin peut avantageusement être remplacé par Adminer. 🙂

    Un seul fichier PHP + un thème CSS, donc léger, rapide, plein de fonctions en plus (longueur des cases vite modifiable, Ctrl + clic pour modifier une valeur, coloration dans les requêtes SQL…). Génial!

  25. Bonjour,

    Bravo pour ce tuto très bien réalisé !

    J’ai juste un soucis avec RounCube et la fonction réponse automatique située dans l’onglet compte. En effet, il y a une erreur 500 sur cette requête https://monip/roundcube/?_task=settings&_action=plugin.ispconfig3_autoreply&_framed=1/

    Une idée d’où cela peut venir ?

    D’autre part, je ne suis pas parvenu à faire la mise à jour de RoundCube car « La version « testing » de « roundcube » est introuvable ». roundcube vient de passer en version 1.1 est-il possible de passer sur celle-ci directement et comment ?

    Merci encore pour ce tuto et pour les réponses à mes questions 🙂

    Vincent

  26. Très Bon tuto!!
    Je valide.
    Merci beaucoup pour le travail que tu as fait afin de nous procurer ce tuto.

  27. Bonjour,

    Merci Alex pour ce tuto qui m’a été des plus utile, particulièrement les détail sur l’erreur 403
    par contre c’est l’installation sur une VM qui à été un petit casse tête de routage pour moi qui ne suis pas rompu à ce genre d’exercice :p

    Bonne continuation et bientôt le même tuto pour une Debian Jessie?

    Stef

  28. (un autre dans lequel je corrige ma faute dans ton prénom!)

    Bonjour,

    Merci Axel pour ce tuto qui m’a été des plus utile, particulièrement les détail sur l’erreur 403
    par contre c’est l’installation sur une VM qui à été un petit casse tête de routage pour moi qui ne suis pas rompu à ce genre d’exercice :p

    Bonne continuation et bientôt le même tuto pour une Debian Jessie?

    Stef

  29. Bonjour,

    Je reviens sur ce tuto, super merci beaucoup, je suis en train de le mettre en place et comme toi je fais parti des super copieur/colleur.

    Au passage je laisse un petite remarque pour ceux qui débutent comme moi.

    Pour activer le mode ssl sur apache il faut bien penser a faire ces commandes…
    Sinon on se retrouve comme moi avec une erreur sur l’accès au site en https.

    a2enmod ssl
    a2ensite default-ssl
    sudo /etc/init.d/apache2 restart

    A moins que j’ai mal copier/coller, je pense qu’il manque la deuxième commande qui permet d’activer la partie default-ssl de apache.

    Manu

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Rechercher