Comment installer le gestionnaire de mots de passe sysPass sur Debian 11
sysPass est une application Web de gestion des mots de passe écrite en PHP. Elle est sécurisée, fiable et fonctionne dans un environnement multiutilisateur pour une utilisation professionnelle et personnelle. Elle enregistre les mots de passe à l’aide d’un cryptage bidirectionnel avec un mot de passe principal dans une base de données. Elle offre une interface Web intuitive qui t’aide à définir des options comme l’authentification LDAP, la messagerie, l’audit, la sauvegarde, l’importation/exportation, etc.
Caractéristiques
- Gratuit et Open-source
- Contrôle d’accès par groupe/profil
- Cryptage du mot de passe
- Stockage de fichiers avec visionneuse d’images en ligne
- Intégration OpenLDAP et Active Directory
- Fournir une notification par email
Dans ce tutoriel, je vais te montrer comment installer l’application de gestion des mots de passe sysPass et la sécuriser avec un certificat SSL gratuit Let’s Encrypt sur Debian 11.
Conditions préalables
- Un serveur fonctionnant sous Debian 11.
- Un nom de domaine valide pointé avec l’IP de ton serveur.
- Un mot de passe root est configuré sur le serveur.
Installe Apache, MariaDB et PHP
sysPass fonctionne sur un serveur Web, utilise MariaDB comme base de données et est écrit en PHP. Tu devras donc installer le serveur Web Apache, le serveur de base de données MariaDB, PHP et d’autres extensions PHP sur ton serveur. Tu peux les installer tous à l’aide de la commande suivante :
apt-get install apache2 mariadb-server libapache2-mod-php php php-mysqli php-pdo php-pear php php-cgi php-cli php-common php-gd php-json php-readline php-curl php-intl php-ldap php-xml php-mbstring git -y
Une fois que tous les paquets sont installés, édite le fichier php.ini et apporte quelques modifications :
nano /etc/php/7.4/apache2/php.ini
Change les paramètres suivants :
post_max_size = 100M upload_max_filesize = 100M max_execution_time = 7200 memory_limit = 512M date.timezone = Asia/Kolkata
Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, redémarre le service Apache pour appliquer les changements de configuration :
systemctl restart apache2
Créer une base de données pour sysPass
Par défaut, l’installation de MariaDB n’est pas sécurisée. Tu devras donc d’abord la sécuriser. Tu peux la sécuriser à l’aide de la commande suivante :
mysql_secure_installation
Réponds à toutes les questions comme indiqué ci-dessous pour définir un mot de passe root MariaDB et sécuriser l’installation :
Enter current password for root (enter for none): Switch to unix_socket authentication [Y/n] Y Change the root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Une fois que tu as terminé, connecte-toi à l’interface MariaDB avec la commande suivante :
mysql -u root -p
Il te sera demandé de fournir un mot de passe root MariaDB. Une fois que tu es connecté, crée une base de données et un utilisateur avec la commande suivante :
MariaDB [(none)]> create database syspassdb;
MariaDB [(none)]> grant all privileges on syspassdb.* to [email protected] identified by "password";
Ensuite, vide les privilèges et quitte le shell MariaDB avec la commande suivante :
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
À ce stade, ta base de données MariaDB et l’utilisateur sont prêts pour sysPass. Tu peux maintenant passer à l’étape suivante.
Installer sysPass
Tout d’abord, tu dois télécharger la dernière version de sysPass depuis le dépôt Git. Tu peux la télécharger à l’aide de la commande suivante :
git clone https://github.com/nuxsmin/sysPass.git
Une fois le téléchargement terminé, déplace le répertoire téléchargé dans le répertoire racine du site Web d’Apache :
mv sysPass /var/www/html/syspass
Ensuite, définis la propriété appropriée au répertoire syspass à l’aide de la commande suivante :
chown -R www-data:www-data /var/www/html/syspass
Ensuite, définis les autorisations appropriées pour les autres répertoires :
chmod 750 /var/www/html/syspass/app/{config,backup}
Ensuite, tu devras installer le Composer sur ton système.
Tout d’abord, crée un script d’installation de Composer avec la commande suivante :
nano /var/www/html/syspass/install-composer.sh
Ajoute les lignes suivantes :
#!/bin/sh EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)" php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ] then >&2 echo 'ERROR: Invalid installer signature' rm composer-setup.php exit 1 fi php composer-setup.php --quiet RESULT=$? rm composer-setup.php exit $RESULT
Sauvegarde et ferme le fichier puis exécute le script d’installation de Composer à l’aide de la commande suivante :
cd /var/www/html/syspass/
sh install-composer.sh
Une fois que le Composer est installé, exécute la commande suivante pour installer toutes les dépendances PHP requises :
php composer.phar install --no-dev
Une fois que toutes les dépendances sont installées, tu peux passer à l’étape suivante.
Configurer l’hôte virtuel Apache pour sysPass
Ensuite, tu devras créer un fichier de configuration d’hôte virtuel Apache pour héberger sysPass sur Internet. Tu peux le créer à l’aide de la commande suivante :
nano /etc/apache2/sites-available/syspass.conf
Ajoute les lignes suivantes :
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/var/www/html/syspass" ServerName syspass.example.com <Directory "/var/www/html/syspass/"> Options MultiViews FollowSymlinks AllowOverride All Order allow,deny Allow from all </Directory> TransferLog /var/log/apache2/syspass_access.log ErrorLog /var/log/apache2/syspass_error.log </VirtualHost>
Sauvegarde et ferme le fichier lorsque tu as terminé. Active l’hôte virtuel Apache avec la commande suivante :
a2ensite syspass
Ensuite, redémarre le service Apache pour appliquer les modifications :
systemctl restart apache2
Tu peux aussi vérifier l’état du service Apache à l’aide de la commande suivante :
systemctl status apache2
Tu devrais obtenir la sortie suivante :
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-10-16 13:41:36 UTC; 4s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 17819 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 17824 (apache2) Tasks: 6 (limit: 2341) Memory: 14.7M CPU: 76ms CGroup: /system.slice/apache2.service ??17824 /usr/sbin/apache2 -k start ??17825 /usr/sbin/apache2 -k start ??17826 /usr/sbin/apache2 -k start ??17827 /usr/sbin/apache2 -k start ??17828 /usr/sbin/apache2 -k start ??17829 /usr/sbin/apache2 -k start Oct 16 13:41:36 debian11 systemd[1]: Starting The Apache HTTP Server...
Une fois que tu as terminé, tu peux passer à l’étape suivante.
Accède à l’interface Web de sysPass
À ce stade, sysPass est installé et hébergé sur le serveur Web Apache. Maintenant, ouvre ton navigateur Web et accède à l’interface Web de sysPass en utilisant l’URL http://syspass.example.com. Tu seras redirigé vers la page suivante :
Indique ton nom d’utilisateur admin, ton mot de passe, ton mot de passe maître, tes informations d’identification de la base de données, choisis ta langue, ton mode d’hébergement et clique sur le bouton INSTALLER. Une fois l’installation terminée, tu seras redirigé vers la page de connexion de sysPass.
Indique ton nom d’utilisateur admin, ton mot de passe et clique sur le bouton >. Tu devrais voir le tableau de bord sysPass sur la page suivante :
Activer le support SSL de Let’s Encrypt sur sysPass
C’est toujours une bonne idée de sécuriser ton site Web avec Let’s Encrypt SSL. Tout d’abord, tu dois installer le client Certbot pour installer et gérer le SSL. Par défaut, le paquet Certbot est inclus dans le dépôt par défaut de Debian 11, tu peux donc l’installer avec la commande suivante :
apt-get install python3-certbot-apache -y
Une fois que Certbot est installé, exécute la commande suivante pour sécuriser ton site Web avec Let’s Encrypt SSL :
certbot --apache -d syspass.example.com
Il te sera demandé de fournir ton email et d’accepter les conditions de service comme indiqué ci-dessous :
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Plugins selected: Authenticator apache, Installer apache Obtaining a new certificate Performing the following challenges: http-01 challenge for syspass.example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/syspass-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/syspass-le-ssl.conf Enabling available site: /etc/apache2/sites-available/syspass-le-ssl.conf
Ensuite, choisis de rediriger ou non le trafic HTTP vers HTTPS comme indiqué ci-dessous :
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Tape 2 et appuie sur Entrée pour installer le SSL Let’s Encrypt pour ton site Web :
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/syspass.conf to ssl vhost in /etc/apache2/sites-available/syspass-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://syspass.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=syspass.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/syspass.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/syspass.example.com/privkey.pem Your cert will expire on 2021-07-20. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Conclusion
Félicitations ! Tu as réussi à installer le gestionnaire de mots de passe sysPass avec Apache sur Debian 11. Tu peux maintenant créer un autre compte, ajouter un utilisateur, des privilèges d’accès et le déployer dans ton environnement de production.