2

Installation et configuration de Keeweb avec Apache2

Cet article décrit la mise en place d’un gestionnaire de mot de passe (Keeweb) en intranet, utilisant des bases de données chiffrées .kdbx (généré par Keepass v2).

Prérequis :

  • Des connaissances de base sur Debian ;
  • Une distribution Debian 10 à jour ;
  • Les droits root de celle-ci .

Installation :

1_Configuration du Proxy :

nano /etc/apt/apt.conf.d/02proxy

Et mettre ceci:

Acquire::http::Proxy "http://proxy.entreprise:8080";

2_Installation de Apache2 :

apt install apache2

3_Création d’un dossier sécurisé pour Apache (sans les crochets) :

htpasswd -c /etc/apache2/.htpasswd [nom user]

4_Activation du Serveur Webdav :

a2enmod dav_fs

5_Création du dossier nécessaire à WebDav :

mkdir /var/www/webdav

chown www-data:www-data /var/www/webdav

chmod 700 /var/www/webdav

6_Création du fichier .conf du Webdav :

nano /etc/apache2/sites-available/webdav.conf

Et mettre ceci:

Alias /webdav "/var/www/webdav"
<Directory "/var/www/webdav">
DAV On
Options Indexes
</Directory>

7_Activation du site Webdav :

a2ensite webdav.conf

systemctl reload apache2

8_Installation du git pour copie KeeWeb:

apt install git

9_Autoriser le git à passer le proxy:

git config --global http.proxy "http://proxy.entreprise:8080/";

10_Copie de KeeWeb (créé automatiquement un dossier dans /var/www/) :

cd /var/www/

git clone -b gh-pages https://github.com/keeweb/keeweb.git

11_Création du certificat auto-signé :

mkdir /etc/apache2/ssl

mkdir /etc/apache2/ssl/certs

cd /etc/apache2/ssl/certs/

openssl genrsa -out keeweb.key 2048

openssl req -new -x509 -sha256 -days 3650 -key keeweb.key -out keeweb.crt

12_Création et configuration du .conf de Keeweb:

nano /etc/apache2/sites-available/keeweb.conf

Et mettre ceci:

<VirtualHost *:443>
        Alias /keeweb "/var/www/keeweb"
        DocumentRoot /var/www/keeweb

        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/certs/keeweb.crt
        SSLCertificateKeyFile /etc/apache2/ssl/certs/keeweb.key
</VirtualHost>

13_Activation du site keeweb et du SSL:

a2enmod ssl

a2enmod rewrite

a2ensite keeweb.conf

systemctl reload apache2

14_Configuration du html de keeweb :

cd /var/www/keeweb

nano index.html

Chercher la ligne (Ctrl + W):

	<meta name="kw-config" content="(no-config)">

Et la modifer en:

	<meta name="kw-config" content="./config.json">

15_Créer le fichier config.json :

nano config.json

Et mettre ceci:

{
    "settings": {
        "theme": "hc",
        "locale": "fr-FR",
        "canOpen": false,
        "canOpenDemo": false,
        "canOpenSettings": false,
        "canCreate": false,
        "canImportXml": false,
        "canRemoveLatest": false,
        "canSaveTo": false,
        "dropbox": false,
        "webdav": false,
        "gdrive": false,
        "onedrive": false,
        "expandGroups": false,
        "listViewWidth": null,
        "menuViewWidth": null,
        "tagsViewHeight": null,
        "autoSave": false,
        "autoSaveInterval": 0,
        "rememberKeyFiles": false,
        "idleMinutes": 15,
        "tableView": true,
        "colorfulIcons": false,
        "hideEmptyFields": false,
        "lockOnCopy": false,
        "lockOnOsLock": true,
        "lockOnMinimize": true,
        "skipOpenLocalWarn": false,
        "skipHttpsWarning": false,
        "demoOpened": false,
        "fontSize": 1,
	"tableViewColumns": null,
        "cacheConfigSettings": true,
        "generatorPresets": null
    },
    "files": [
        {
            "storage": "webdav",
            "name": "test_MDP_Keeweb.kdbx",
            "path": "https://10.xx.xx.110/webdav/MDP_Keeweb.kdbx"
        }
    ]
}

Tableau récapitulatif des régalages possibles du fichier config,json :

16 – Sécurisation du Webdav :

nano /etc/apache2/sites-available/000-default.conf

Mettre au tout debut :

DavLockDB /var/www/DavLock

Mettre ceci à la fin, juste avant </VirtualHost> :

<Directory /var/www/webdav>
DAV On
</Directory>

Puis exécutez ces commandes :

service apache2 restart
systemctl reload apache2
htdigest -c /etc/apache2/users.password webdav [nom user : "encore" webdav dans notre cas]

Retourner dans:

nano /etc/apache2/sites-available/000-default.conf

Ajoutez les lignes suivantes à la directive * Directory *:

AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require valid-user

Cela devrait donc ressembler à ceci:

Et on valide:

a2enmod auth_digest
service apache2 restart

17_Importation d’un fichier .kdbx :

Il suffit pour cela de créer une nouvelle base de donnée avec le logiciel Keepass 2, de renseigner un maximum de dossier/sous dossiers/mots de passe (car plus pratique sur keepass pour

la création de masse) et de l’importer (fichier .kdbx) directement à la racine du serveur Webdav.

Exemple sous W10

 

  • Ouvrez l’explorateur de fichiers, cliquez sur « Ce PC » puis sur « Connecter un lecteur réseau ». Rentrer l’IP ou l’adresse du serveur, suivi de « \webdav » :

Une fenêtre d’authentification doit apparaitre, renseignez le login nécessaire.

Il ne reste plus qu’à déposer le fichier .kdbx directement à la racine, et de modifier à l’étape 15 le nom du fichier dans le chemin de la dernière ligne:

« path »: « https://10.xx.xx.110/webdav/[Nomdufichier].kdbx« 

18_Finalisation :

Il est désormais possible d’ouvrir le gestionnaire de mots de passe en utilisant l’adresse :

https://[IPduServeur]/keeweb

19_Recommandations :

+Navigateur: Il est plus que recommandé d’utiliser Firefox vis-à-vis de la certification auto-signée.

+Obligation: Si vous souhaitez renseigner de nouvelles entrées, groupes ou pièces jointes, il sera alors obligatoire de ne PAS être en mode de navigation privée car cela a pour conséquence l’impossibilité de synchroniser vos nouvelles modifications\entrées. MAIS peux être pratique si uniquement de la visualisation (évite donc les fausses manips).

+Bonnes pratiques:

  • N’oubliez pas de verrouiller le gestionnaire ou votre session PC si vous en avez plus l’utilité (Raccourci : Ctrl + L )
  • N’oubliez pas de sauvegarder si vous avez effectuée des modifications (Raccourci : Ctrl + S )
  • Pour éviter la modification non-désiré d’un champ dans le gestionnaire, cliquez bien sur l’intitulé du champ et non la case.

Nous avons TOUS un accès « Admin » au gestionnaire du moment ou l’on reçoit les accès. Comme tous le monde le sais: un grand pouvoir implique de grandes responsabilités…

Sources :

https://lanbugs.de/howtos/linux/keeweb-self-hosted-password-manager-with-apache2/

https://git.kaki87.net/KaKi87/tutorials/src/branch/master/how_to_self_host_keeweb

https://memo-linux.com/openssl-creation-certificat-auto-signe-hache-en-sha256-sur-2048-bits/

Partager l'article :





Jérémy

2 commentaires

  1. Merci pour ce tuto !
    Une petite coquille dans la phrase « MAIS peux être pratique si uniquement de la visualisation  » (il faut lire « peut’)…

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.