TeamPass Installation

De EjnTricks

Cet article présente l'installation de TeamPass sur une machine Ubuntu et en mode autonome. L'installation a été réalisée en effectuant une mise à jour d'une instance de CPassMan.

Pour être tout à fait honnête, la mise à jour n'est franchement pas évidente car réalisée tardivement. De plus, celle-ci a été réalisée suite à une mise à jour du serveur Ubuntu version 16.04, sur lequel les composants suivants ont été mis à jour.

  • php en version 7
  • MySql en version 5.7.11

Or, l'application n'est pas totalement compatible et l'installation initiale est réalisée avec une version assez ancienne, pour ensuite monter progressivement les versions.

Il est également impératif de sauvegarder la base de données avant de dérouler les actions suivantes. Le risque est relativement important, et la sauvegarde permet de repartir depuis le début.


La mise à jour est réalisée avec la version 2.1.21. Au moment de rédiger l'article, une version 2.1.20 était disponible mais totalement incompatible avec une version de php 7.X.

Cet article est en cours de rédaction, des problèmes de migration depuis cpassman sont toujours en train d'être investigués


Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Base de données

Lors de l'installation de CPassMan, la base de données avait été créée avec l'encoding latin1. Or entre temps, des modifications ont été réalisée et il semblerait que l'encoding soit à présent UTF-8. Donc dans le cadre de cette installation / mise à jour, il est nécessaire de changer l'encoding de la base, de nom cpassman, avec la procédure suivante.

#mysqldump --add-drop-table -u root -p -c -e --default-character-set=utf8 --single-transaction --skip-set-charset --add-drop-database -B cpassman > dump_cpassman.sql
Enter password:
#sed 's/DEFAULT CHARACTER SET latin1/DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci/' < dump_cpassman.sql | sed 's/DEFAULT CHARSET=latin1/DEFAULT CHARSET=utf8/' > dump_cpassman-utf8.sql
#mysql -u root -p < dump_cpassman-utf8.sql
Enter password:


Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Mise en place instance

Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Pré requis

L'installation d' OwnCloud s'effectue uniquement en déployant le paquet officiel et l'exposer sous un serveur Web comme Apache, nécessitant l'activation de plusieurs modules requis.

  • mcrypt;
  • openssl, disponible par défaut.

Il faut donc s'assurer que les paquets sont installés. Comme indiqué sur la documentation officielle, les paquets sont installés avec apt-get.

#sudo apt-get install php-mcrypt

Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Initialisation

L'application va être installée sous /var/opt/ avec une organisation qui doit permettre de faciliter les montées de version. Un répertoire commun est mis en place /var/opt/teampass dans lequel les binaires sont installés.

#sudo mkdir /var/opt/teampass
#sudo chown www-data:www-data /var/opt/teampass
#sudo chmod 700 /var/opt/teampass

Lors de l'installation, il sera nécessaire de créer / copier un fichier de paramétrage ainsi qu'un répertoire pour contenir une clé "privée". Comme ces fichiers seront repris de version en version, une externalisation est réalisée et sera pointée à l'aide de lien. Tout ceci est placé dans le répertoire parent /var/opt/teampass/common. Comme la mise à jour a été tenté plusieurs fois, il est dès à présent connu la nécessité d'avoir deux répertoires.

  • includes dans lequel sera placé le fichier de configuration;
  • saltkey dans lequel sera placé le fichier avec la clé privée.
#sudo mkdir -p /var/opt/teampass/common/includes
#sudo mkdir -p /var/opt/teampass/common/saltkey
#sudo chown -R www-data:www-data /var/opt/teampass/common
#sudo chmod -R 700 /var/opt/teampass/common

Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Téléchargement

L'application est téléchargée dans le répertoire /tmp.

#sudo wget -O /tmp/teampass-2.1.21.tar.gz https://github.com/nilsteampassnet/TeamPass/archive/2.1.21.tar.gz

Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Installation

Elle est installée en décompressant l'archive.

#sudo tar -C /var/opt/teampass -xzvf /tmp/teampass-2.1.21.tar.gz
#sudo rm /tmp/teampass-2.1.21.tar.gz

La décompression est effectuée dans le répertoire TeamPass-2.1.21 que l'on peut renommer pour avoir uniquement le numéro de version.

#sudo mv /var/opt/teampass/TeamPass-2.1.21 /var/opt/teampass/2.1.21

Puis le lien /var/opt/teampass/teampass est mis en place pour référencer la version active. Ainsi, il sera facile de préparer les mises à jours, il suffira de modifier le lien.

#sudo ln -s /var/opt/teampass/2.1.21 /var/opt/teampass/teampass
#sudo chown -h www-data:www-data /var/opt/teampass/teampass

Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Propriétaire fichiers

L'installation a été réalisée avec le compte root. Il est préférable de donner la propriété au compte de démarrage du serveur web, soit www-data dans le cadre de cette installation.

#sudo find /var/opt/teampass/2.1.21/ -exec chown www-data:www-data {} \;

Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Sécurisation

Après avoir modifier le propriétaire des fichiers, il est conseillé de positionner des droits restrictifs afin que seul le propriétaire puisse accéder à ceux-ci.

#sudo find /var/opt/teampass/2.1.21/ -type f -exec chmod 0600 {} \;
#sudo find /var/opt/teampass/2.1.21/ -type d -exec chmod 0700 {} \;
#sudo chmod 700 /var/opt/teampass/2.1.21

Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Correctifs

Cependant, toutes les tentatives préalablement réalisées ont mis en évidence quelques bugs. Une copie de l'instance est réalisée sous le répertoire /var/opt/teampass/2.1.21.1 afin d'y apporter divers correctifs / patches. Ceux-ci sont décrit dans la page des bugs.


Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Publication sous Apache

Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Bugs

Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Initialisation