GNU/Linux >> Tutoriels Linux >  >> Rocky Linux

Comment installer Padloc Password Manager sur Rocky Linux 8

Padloc est une solution de gestion de mots de passe basée sur le cloud qui vous permet d'accéder à vos mots de passe enregistrés et de les utiliser sur plusieurs plates-formes. Il offre une interface simple et peut être utilisé pour enregistrer vos mots de passe et peut chiffrer et stocker des documents sensibles. Il prend également en charge le stockage des jetons d'authentification à deux facteurs et peut les ajouter directement à partir de la page Web.

Padloc propose également une solution open source auto-hébergée que vous pouvez installer sur n'importe quel serveur pour garder un contrôle total sur vos données. Cependant, il y a une mise en garde à cela. Vous ne pouvez pas utiliser l'application auto-hébergée avec ses applications de bureau et mobiles. Du bon côté, Padloc est servi comme une PWA (application Web progressive), ce qui signifie que vous pouvez l'installer en tant qu'application native sur mobile et profiter de plusieurs de ses fonctionnalités.

Dans ce didacticiel, vous apprendrez à installer Padloc Password Manager sur un serveur basé sur Rocky Linux 8.

Prérequis

  • Un serveur exécutant Rocky Linux 8 avec au moins 1 Go de RAM.
  • Un utilisateur non root avec des privilèges sudo.
  • Un nom de domaine complet (FQDN) pointant vers le serveur, comme example.com . Nous supposerons que vous n'utiliserez qu'un seul nom de domaine pour ce serveur pour ce didacticiel.

Étape 1 - Pare-feu

La première étape consiste à configurer le pare-feu. Rocky Linux utilise Firewalld Firewall. Vérifiez l'état du pare-feu.

$ sudo firewall-cmd --staterunning

Le pare-feu fonctionne avec différentes zones, et la zone publique est celle par défaut que nous utiliserons. Répertorier tous les services et ports actifs sur le pare-feu.

$ sudo firewall-cmd --permanent --list-services

Il devrait afficher la sortie suivante.

cockpit dhcpv6-client ssh

Autoriser les ports HTTP et HTTPS.

$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https

Revérifiez l'état du pare-feu.

$ sudo firewall-cmd --permanent --list-services

Vous devriez voir une sortie similaire.

cockpit dhcpv6-client http https ssh

Rechargez le pare-feu pour activer les modifications.

$ sudo firewall-cmd --reload

Étape 2 - Installer Docker

Rocky Linux est livré avec une ancienne version de Docker. Pour installer la dernière version, commencez par installer le référentiel Docker officiel.

$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

Installez la dernière version de Docker.

$ sudo dnf install docker-ce docker-ce-cli containerd.io

Activez et exécutez le démon Docker.

$ sudo systemctl enable docker --now

Vérifiez qu'il est en cours d'exécution.

$ sudo systemctl status docker ? docker.service - Docker Application Container Engine Loaded :chargé (/usr/lib/systemd/system/docker.service ; activé ; préréglage du fournisseur :désactivé) Actif :actif (en cours d'exécution) depuis Sun 2022-04-09 22:43:21 UTC; Il y a 30 s Docs :https://docs.docker.com PID principal :43005 (dockerd) Tâches : 7 Mémoire :90,5 Mo CGroup :/system.slice/docker.service ??43005 /usr/bin/dockerd -H fd :// --containerd=/run/containerd/containerd.sock ....

Par défaut, Docker nécessite des privilèges root. Si vous voulez éviter d'utiliser sudo chaque fois que vous exécutez le docker commande, ajoutez votre nom d'utilisateur au docker groupe.

$ sudo usermod -aG docker $(whoami)

Vous devrez vous déconnecter du serveur et vous reconnecter avec le même utilisateur pour activer ce changement.

Étape 3 - Installer Docker-Compose

Téléchargez la dernière version stable de Docker Compose.

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o / usr/local/bin/docker-compose

Appliquez les autorisations exécutables au fichier binaire Docker Compose.

$ sudo chmod +x /usr/local/bin/docker-compose

Testez l'installation.

$ docker-compose --versiondocker-compose version 1.29.2, build 5becea4c

Installez le script Docker-compose Bash Completion.

$ sudo curl \ -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \ -o /etc/bash_completion.d/docker-compose 

Rechargez les paramètres de votre profil pour que la complétion bash fonctionne.

$ source ~/.bashrc

Étape 4 - Créer des répertoires de données

Créez un répertoire pour padloc.

$ mkdir ~/padloc

Basculez vers le répertoire padloc.

$ cd ~/padloc

Créez des répertoires pour la base de données des utilisateurs, les journaux d'application, les pièces jointes, l'application PWA et la configuration SSL.

$ mkdir {pièces jointes,db,logs,pwa,ssl}

Créez un répertoire pour les journaux Nginx.

$ mkdir logs/nginx

Étape 5 - Créer un fichier Docker Compose

Créez et ouvrez le ~/padloc/docker-compose.yml fichier à éditer.

$ nano docker-compose.yml

Collez-y le code suivant.

version : "3"services : serveur :image :padloc/server container_name :padloc_server restart :until-stopped -./db}:/data:Z - ${PL_ATTACHMENTS_DIR:-./attachments} :/docs:Z - ./logs:/logs:Z environnement :- PL_PWA_URL - PL_EMAIL_SERVER - PL_EMAIL_PORT - PL_EMAIL_USER - PL_EMAIL_PASSWORD - PL_EMAIL_FROM pwa :image :padloc/pwa container_name :padloc_pwa restart :without-stopped #ports :# - ${PL_PWA_PORT:-8080}:8080 expose :- 8080 volumes :- ${PL_PWA_DIR:-./pwa} :/pwa:Z environment :- PL_SERVER_URL nginx :image :nom_du_conteneur nginx :redémarrage de nginx :volumes à moins d'être arrêtés :- ./nginx.conf:/etc/nginx/nginx.conf - ${PL_SSL_CERT :-./ssl/cert.pem} :/ssl/cert - ${PL_SSL_KEY :-./ssl/key.pem} :/ssl/key - ${PL_SSL_CONF :-./ssl/ssl. conf} :/ssl/ssl.conf - /etc/ssl/certs/dhparam.pem:/ssl/dhparam.pem - ./logs/nginx:/var/log/nginx:Z ports :- 80:80 - 443 :443

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Nous utilisons trois images Docker pour Padloc.

  1. L'image du serveur - contient toute la logique backend de l'application. Il fonctionne sur le port 3000 par défaut. Nous avons décommenté la variable ports dans notre fichier de composition pour rendre le port invisible au serveur. Au lieu de cela, nous utilisons la variable expose pour exposer le port à l'intérieur du moteur Docker au conteneur Nginx. Les variables d'environnement de l'image seront configurées ultérieurement. Nous avons également mappé des répertoires pour une base de données d'utilisateurs, des pièces jointes et des journaux d'application.

  2. L'image PWA - contient l'interface de l'application. Il fonctionne sur le port 8080 par défaut. En ce qui concerne l'image du serveur, nous avons masqué la section des ports pour cette image et exposé le port à l'intérieur du moteur Docker. Nous avons mappé le répertoire de l'application Web.

  3. L'image Nginx - contient l'application serveur Nginx. Nous avons les ports pour HTTP(80) et HTTPS(443) vers le serveur pour le rendre accessible de l'extérieur. Nous avons mappé plusieurs répertoires et fichiers pour que cela fonctionne.

    • Le premier fichier est nginx.conf qui contient toutes les configurations principales pour que Nginx serve l'application padloc.
    • Les deux fichiers suivants, cert.pem et key.pem sont le certificat SSL et les clés que nous allons générer à l'aide de Let's encrypt.
    • Le fichier ssl.conf contient des informations supplémentaires concernant la diffusion de SSL via Nginx.
    • Le fichier dhparam.pem est au service du groupe Diffie-Hellman certificat.
    • La dernière entrée consiste à mapper les journaux Nginx sur le serveur afin que vous puissiez y accéder en dehors de Docker.
  4. Le :Z L'indicateur à la fin des mappages de dossiers indique que ces répertoires ne seront accessibles qu'à partir des conteneurs respectifs. Cela se fait depuis que SELINUX est activé sur notre serveur. Si vous n'utilisez pas SELinux, vous pouvez supprimer l'indicateur.

Étape 6 - Configurer NGinx

Créez et ouvrez le fichier ~/padloc/nginx.conf pour l'édition.

$ nano nginx.conf

Collez-y le code suivant.

http { # Ceci est nécessaire si vous souhaitez télécharger des pièces jointes client_max_body_size 10m ; # Redirige tout le trafic http vers le serveur https { listen 80 default_server; écouter [::]:80 default_server ; nom du serveur _; renvoie 301 https://$host$request_uri ; } server { # Nous n'avons pas besoin d'un nom d'hôte ici puisque nous ne traitons qu'un seul domaine, # mais vous pouvez insérer votre domaine ici. nom du serveur _; # Le serveur et le pwa sont servis sur https listen 443 ssl http2 ; écouter [::]:443 ssl http2 ; # Cela résoudra l'emplacement de l'instance de serveur /server/ { proxy_pass http://padloc_server:3000; réécrire ^/padloc_server(.*)$ $1 break ; } # Cela résoudra l'emplacement de l'application Web / { proxy_pass http://padloc_pwa:8080; réécrire ^/padloc_pwa(.*)$ $1 pause ; } # certificat SSL ssl_certificate /ssl/cert; # Clé privée SSL ssl_certificate_key /ssl/key ; # Ajoutez ce fichier pour ajouter une configuration SSL avancée, notamment /ssl/ssl.conf ; }}# Cette section est requise par nginxevents {}

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

La configuration ci-dessus transfère toutes les requêtes faites depuis le padloc_server conteneur vers /server l'emplacement du nom de domaine et les éventuelles demandes faites depuis le padlock_pwa conteneur à la racine. Il redirige également tout le trafic HTTP vers HTTPS. Nous avons également défini la taille de téléchargement du fichier à 10 Mo pour les pièces jointes. Vous pouvez modifier la taille selon vos besoins. Les paramètres SSL ont été inclus via un fichier externe que nous configurerons plus tard.

Étape 7 - Créer un fichier d'environnement

Créez et ouvrez le ~/padloc/.env fichier à éditer.

$ nano .env

Collez-y le code suivant.

# GENERAL SETTINGS# ================# URL qui résoudra l'instance de serveurPL_PWA_URL=https://example.com/# URL qui résoudra l'application WebPL_SERVER_URL =https://example.com/server/# SERVER SETTINGS# ===============# Port sur lequel l'instance de serveur écouteraPL_SERVER_PORT=3000# Répertoire où les fichiers de base de données seront stockésPL_DB_DIR=. /db# Répertoire où les fichiers joints seront stockésPL_ATTACHMENTS_DIR=./attachments# PWA SETTINGS# ============# Port de l'application Web sera servi à partir de PL_PWA_PORT=8080# Répertoire où le code statique pour le Web l'application sera stockéePL_PWA_DIR=./pwa# EMAIL SETTINGS# =============# Hôte SMTPPL_EMAIL_SERVER=smtp.example.com# Nom d'utilisateur SMTP[email protected]# Port SMTPPL_EMAIL_PORT=443# Mot de passe SMTPPL_EMAIL_PASSWORD=your_smtp_password# Toujours utiliser TLS lors de l'envoi d'e-mails# PL_EMAIL_SECURE=false# ID d'e-mail à partir duquel envoyer des e-mails[email protected]# SSL SETTINGS# ============# Le chemin d'accès à votre certificat SSLPL_SSL_CERT=/etc/ letencrypt/live/example.com/fullcha in.pem# Le chemin vers votre clé privée SSLPL_SSL_KEY=/etc/letsencrypt/live/example.com/privkey.pem# Fichier de configuration avancéePL_SSL_CONF=./ssl/ssl.conf

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité. La plupart des paramètres sont explicites. La configuration Nginx existante s'attend à ce que l'application soit servie via le domaine principal et le serveur via /server annuaire. Le PL_PWA_DIR n'est pas obligatoire à définir ici et dans le fichier Docker-compose mais le fait de l'avoir accélère le démarrage du conteneur, et par conséquent, vous devez toujours le définir.

Padloc nécessite la possibilité d'envoyer des e-mails pour des fonctionnalités telles que la vérification des nouveaux utilisateurs, l'authentification à deux facteurs et la réinitialisation des mots de passe. Par conséquent, les détails SMTP sont obligatoires.

Pour la fonctionnalité SSL, nous utilisons les répertoires par défaut Let's Encrypt où se trouvent les certificats. La configuration SSL supplémentaire sera fournie via le fichier /ssl/ssl.conf .

Étape 8 - Installer SSL

Pour installer un certificat SSL avec Let's Encrypt, nous devons installer l'outil Certbot.

Tout d'abord, vous devez télécharger et installer le référentiel EPEL.

$ sudo dnf install epel-release

Exécutez les commandes suivantes pour installer Certbot.

$ sudo dnf install certbot

Générez le certificat SSL.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d example.com

La commande ci-dessus téléchargera un certificat sur /etc/letsencrypt/live/example.com répertoire sur votre serveur.

Générer un groupe Diffie-Hellman certificat.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Créez une tâche Cron pour renouveler le SSL. Il s'exécutera chaque semaine pour vérifier le certificat et le renouveler si nécessaire. Pour cela, créez d'abord le fichier /etc/cron.weekly/certbot-renew et ouvrez-le pour le modifier.

$ sudo nano /etc/cron.weekly/certbot-renew

Collez le code suivant. Nous utilisons les commandes Docker pour démarrer, arrêter et redémarrer le conteneur Nginx en fonction du statut de renouvellement.

#!/bin/shcertbot renouveler --cert-name example.com --pre-hook "docker stop nginx" --post-hook "docker start nginx" --renew-hook "docker restart nginx" 

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Modifiez les autorisations sur le fichier de tâche pour le rendre exécutable.

$ sudo chmod +x /etc/cron.weekly/certbot-renew

Étape 9 - Configurer SSL

Créez et ouvrez le fichier ~/padloc/ssl/ssl.conf pour l'édition.

$ nano ssl/ssl.conf

Collez-y le code suivant.

ssl_session_timeout 1d;ssl_session_cache partagé:MozSSL:10m;ssl_session_tickets désactivés;ssl_prefer_server_ciphers désactivés;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-5GCM-SHA ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256- GCM-SHA384;ssl_stapling on;ssl_stapling_verify on;ssl_dhparam /ssl/dhparam.pem;resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8. 4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s;resolver_timeout 2s;

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Le fichier ci-dessus présente certains paramètres SSL recommandés pour rendre votre site plus sécurisé. Il limite les protocoles TLS aux v1.2 et v1.3 et permet l'agrafage et la vérification du protocole OCSP (Online Certificate Status Protocol).

Étape 10 - Exécuter Padloc

Maintenant que vous avez tout configuré, lancez Padloc en utilisant la commande suivante.

$ docker-compose up -d

Vérifiez l'état des conteneurs.

$ docker ps

Vous devriez obtenir une sortie similaire.

Étape 11 - Accéder et configurer Padloc

Ouvrez l'URL https://example.com dans votre navigateur, et vous arriverez sur sa page de connexion.

Cliquez sur Inscrivez-vous maintenant lien pour commencer l'inscription.

Entrez votre nom et votre adresse e-mail, puis appuyez sur Continuer pour continuer.

Padloc vous enverra un e-mail avec un code de confirmation. Entrez le code de confirmation dans la case ci-dessus, puis appuyez sur Continuer pour continuer.

Padloc générera automatiquement un mot de passe maître pour vous. Survolez la boîte et copiez-la. Collez-le à nouveau dans la case ci-dessous. Vous pouvez également choisir d'utiliser votre mot de passe. Appuyez sur Continuer une fois terminé.

Vous serez redirigé vers la page d'accueil de Padloc. Vous pouvez commencer à enregistrer vos données de connexion et vos documents sensibles.

Étape 12 - Mettre à jour Padloc

La mise à jour de Padloc est un processus en deux étapes. Tout d'abord, passez au répertoire Padloc.

$ cd ~/padloc

Arrêtez et supprimez les conteneurs Padloc existants.

$ docker-compose down --remove-orphans

Tirez les dernières images.

$ docker-compose pull

Redémarrez les conteneurs.

$ docker-compose up -d

Conclusion

Ceci conclut notre tutoriel sur l'installation du gestionnaire de mots de passe auto-hébergé Padloc sur un serveur Rocky Linux 8. Si vous avez des questions, postez-les dans les commentaires ci-dessous.


Rocky Linux
  1. Comment installer Docker et Docker-Compose sur Rocky Linux 8

  2. Comment installer Docker sur Rocky Linux 8

  3. Comment installer Python 3.9 sur Rocky Linux 8

  4. Comment installer Passbolt Password Manager sur Rocky Linux

  5. Comment installer Redis sur Rocky Linux 8

Comment installer Snap sur Rocky Linux 8

Comment installer MySQL 8.0 sur Rocky Linux 8

Comment installer Docker sur Rocky Linux et AlmaLinux

Comment installer PHP 7.4 sur Rocky Linux 8

Comment installer Python 3.9 sur Rocky Linux

Comment installer Snap Package Manager sur Rocky Linux 8