Team Password Manager : Installation

De www.yakakliker.org

Système

Paramètres génériques

  • Après installation du système, veiller à effectuer les mises à jours

sudo apt update && sudo apt upgrade -y

  • Créer une entrée DNS pour le hostname URL
    • Exemple : teampassword.exemple.lan du type A vers Adresse IP
  • Renseigner le fichier /etc/hosts avec le hostname appelé dans l'url
    • Editer le fichier /etc/hosts
    • Addresse IP hostname teampassword.exemple.lan
  • Paramétrer le fuseau horaire
    • sudo dpkg-reconfigure tzdata
Current default time zone: 'Europe/Paris'
Local time is now:      Mon Mar  3 14:00:02 CET 2025.
Universal Time is now:  Mon Mar  3 13:00:02 UTC 2025.
  • Configuration du Firewall & ouverture du port SSH
    • sudo ufw allow
    • sudo ufw enable
  • Installation de Fail2ban
    • sudo apt-get install fail2ban
    • sudo cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
  • Activation du NTP pour la double authentification
    • sudo timedatectl set-ntp off
    • sudo timedatectl set-ntp on
    • sudo ufw allow ntp

Liens

Installation de Apache

  • Installation du service
    • sudo apt install apache2
  • Ouverture des ports
    • sudo ufw allow in "Apache Full"
  • Activation de Apache MPM prefork à la place de mpm_event
    • sudo a2dismod mpm_event
    • sudo a2enmod mpm_prefork
  • Redémarrage du service Apache
    • sudo systemctl restart apache2

Liens

Installation de Mysql

  • Installation du service
    • sudo apt install mysql-server
  • Lancement du script de configuration du serveur
    • sudo mysql_secure_installation
  • Penser à tester la connexion Mysql
    • sudo mysql

Installation de PHP 8.2

  • PHP 8.2 n'est pas la version de PHP par défaut sur Ubuntu 22.04 (à vérifier sur Debian 12). Nous avons besoin d'ajouter un repository spécifique.
    • sudo add-apt-repository ppa:ondrej/php
    • sudo apt update
  • Installation des modules nécessaires à Teampasswordmanager
    • sudo apt install php8.2 php8.2-cli php8.2-mysql php8.2-mbstring php8.2-ldap php8.2-curl php8.2-gd php8.2-xml
  • Vérification de la version PHP installée
    • php -v
PHP 8.2.27 (cli) (built: Dec 24 2024 06:29:37) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.27, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.27, Copyright (c), by Zend Technologies
  • Paramétrage du Timezone PHP
    • Editer le fichier /etc/php/8.2/apache2/php.ini
      • date.timezone = "Europe/Paris"
  • Redémarrage du service Apache
    • sudo systemctl restart apache2
  • Pour vérifier la version de PHP installée :
    • Créer un fichier phpinfo.php dans /var/www/html/ avec à l'intérieur :
      • <?php phpinfo();
  • Lancer un navigateur et se connecter à l'adresse : http://adresseIP/phpinfo.php

Liens

Configuration du serveur Apache pour utiliser Virtual Hosts avec l'installation de Teampassword Manager

  • Créer une entrée DNS pointant sur l'adresse IP du serveur (exemple : teampassword.exemple.lan)
  • Configurer un virtualhost Apache pour accepter teampassword.exemple.lan (port 80 & 443)
    • Exemple de fichier conf Apache
<Directory /var/www/html/teampassword.exemple.lan/public_html>
	Require all granted
	AllowOverride All
	Options FollowSymLinks
</Directory>
<VirtualHost *:80>
	ServerName teampassword.exemple.lan
	ServerAlias teampassword.exemple.lan
	
	ServerAdmin info@mycompany.com

	DocumentRoot /var/www/html/teampassword.exemple.lan/public_html

	ErrorLog /var/www/html/teampassword.exemple.lan/logs/error.log
	CustomLog /var/www/html/teampassword.exemple.lan/logs/access.log combined
</VirtualHost>
  • Création des dossiers d'installation
    • sudo mkdir -p /var/www/html/teampassword.exemple.lan/{public_html,logs}
  • Attribution des droits
    • sudo chown -R $USER:$USER /var/www/html/teampassword.exemple.lan/public_html
    • sudo chmod -R 755 /var/www/html/teampassword.exemple.lan/public_html
    • Le résultat doit ressembler à ceci :
myuser@myhostname:/var/www/html/teampassword.exemple.lan$ ls -la
total 16
drwxr-xr-x 4 root   root   4096 Oct 24 18:28 .
drwxr-xr-x 3 root   root   4096 Oct 24 18:28 ..
drwxr-xr-x 2 root   root   4096 Oct 24 18:28 logs
drwxr-xr-x 2 myuser myuser 4096 Oct 24 18:28 public_html
  • Activation du site
    • sudo a2ensite teampassword.exemple.lan
  • Désactivation du virtualhost par défaut
    • sudo a2dissite 000-default.conf
  • Rechargement des paramètres Apache
    • sudo systemctl reload apache2
  • Tester l'adresse http://teampassword.exemple.lan qui doit répondre par un Forbidden

Paramétrages HTTPS & Certificats SSL

  • Copier les certificats dans le dossier : /etc/apache2/certif/
  • Activation du SSL Apache
    • a2enmod ssl
    • a2enmod headers
  • Redémarrage du service Apache
    • systemctl restart apache2
  • Edition du fichier de configuration /etc/apache2/sites-available/teampassword.exemple.conf
<Directory /var/www/html/teampassword.exemple.lan/public_html>
	Require all granted
	AllowOverride All
	Options FollowSymLinks
</Directory>
<VirtualHost *:80>
	ServerName teampassword.exemple.lan
	ServerAlias teampassword.exemple.lan
	ServerAdmin info@mycompany.com
	DocumentRoot /var/www/html/teampassword.exemple.lan/public_html

	ErrorLog /var/www/html/teampassword.exemple.lan/logs/error.log
	CustomLog /var/www/html/teampassword.exemple.lan/logs/access.log combined
	Redirect 301 / https://teampassword.exemple.lan/
</VirtualHost>
<VirtualHost *:443>
    ServerAdmin info@mycompany.com
    ServerName teampassword.exemple.lan
    ServerAlias teampassword.exemple.lan

    DocumentRoot /var/www/html/teampassword.exemple.lan/public_html
    ErrorLog /var/www/html/teampassword.exemple.lan/logs/error.log
    CustomLog /var/www/html/teampassword.exemple.lan/logs/access.log combined

    SSLEngine on

        SSLCertificateFile    /etc/apache2/certif/wildcard.exemple.lan/teampassword.exemple.lan.crt
        SSLCertificateKeyFile /etc/apache2/certif/wildcard.exemple.lan/teampassword.exemple.lan.key
        SSLCertificateChainFile  /etc/apache2/certif/wildcard.exemple.lan/GandiStandardSSLCA2.pem
        
        
    # HSTS (mod_headers is required) (15768000 seconds = 6 months)
    Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>
  • Rechargement d'Apache
    • systemctl reload apache2

Installation du loader SourceGuardian

  • Téléchargement des sources à l'adresse : https://www.sourceguardian.com/loaders.html
  • Décompresser le fichier téléchargé et uploader le fichier ixed.8.2.lin dans le dossier /usr/lib/php/20220829
  • Editer le fichier php.ini dans le dossier /etc/php/8.2/apache2/php.ini et ajouter cette ligne après [PHP] :
    • extension=ixed.8.2.lin
  • Redémarrage su service Apache
    • sudo systemctl restart apache2
  • Pour tester, créer un fichier phpinfo.php dans /var/www/html/teampassword.exemple.lan/public_html avec ce contenu :
    • <?php phpinfo();
  • https://teampassword.exemple.lan/phpinfo.php
    • Vérifier la section "SourceGuardian"
    • Supprimer le fichier phpinfo.php après validation

Création de la base de donnée Team Password Manager

  • Informations nécessaires
    • Database: tpm_database
    • User: tpm_user
    • Password: tpmPass%2023
  • Se connecter sur Mysql
    • sudo mysql
  • Création de la base
    • mysql> CREATE DATABASE `tpm_database` CHARACTER SET utf8 COLLATE utf8_unicode_ci;
  • Création de l'utilisateur
    • mysql> CREATE USER 'tpm_user'@'%' IDENTIFIED WITH mysql_native_password BY 'tpmPass%2023';
  • Attribution des privilèges
    • mysql> GRANT ALL ON tpm_database.* TO 'tpm_user'@'%';
    • mysql> FLUSH PRIVILEGES;

Fichiers Team Password Manager

  • Télécharger les sources à cette adresse : https://teampasswordmanager.com/download/
    • Uploader les fichiers dans le dossier : /var/www/html/teampassword.exemple.lan/public_html
  • Modification des permissions sur les fichiers
    • sudo chown -R $USER:www-data *
    • chmod -R 770 *
  • Vérification :
$ ls -la
drwxrwxr-x  7 myuser myuser 4096 Oct 24 12:16 .
drwxr-xr-x  4 root   root      4096 Oct 24 11:46 ..
-rwxrwx---  1 myuser www-data  2115 Oct 18 10:44 config.php
drwxrwx---  3 myuser www-data  4096 Oct 17 08:17 css
-rwxrwx---  1 myuser www-data  9127 Oct 17 08:17 eula.txt
-rwxrwx---  1 myuser www-data   610 Oct 17 08:17 folder.php
drwxrwx---  2 myuser www-data  4096 Oct 17 08:17 import
-rwxrwx---  1 myuser www-data 21484 Oct 17 08:17 index.php
-rwxrwx---  1 myuser www-data 10157 Oct 17 08:17 install.txt
-rwxrwx---  1 myuser www-data    25 Oct 17 08:17 robots.txt
drwxrwx---  8 myuser www-data  4096 Oct 17 08:17 system
-rwxrwx---  1 myuser www-data  5063 Oct 17 08:17 upgrade.txt
drwxrwx---  6 myuser www-data  4096 Oct 19 09:41 uploads
drwxrwx--- 17 myuser www-data  4096 Oct 17 08:17 wmm

Fichier de configuration de Team Password Manager (config.php)

  • Editer le fichier config.php
// MySQL Database server
define('CONFIG_HOSTNAME', 'localhost');

// User that accesses the database server, that should have all privileges on the database CONFIG_DATABASE
define('CONFIG_USERNAME', 'tpm_user');

// User password
define('CONFIG_PASSWORD', 'tpmPass%2023');

// Database for Team Password Manager. You must manually create it before installing Team Password Manager
define('CONFIG_DATABASE', 'tpm_database');

Script d'installation de Team Password Manager

  • Lancer un navigateur à l'adresse : https://teampassword.exemple.lan/index.php/install

Liens

https://teampasswordmanager.com/docs/install-ubuntu/

compteur web gratuit sans pub