Cybersécurité : Serveur de mots de passe SecretManager

De Justine's wiki
Version datée du 14 février 2019 à 23:31 par Justine (discussion | contributions) (Page créée avec « = Introduction = SecretManager est un serveur de gestion de mots passe, créé par Pierre-Luc Mary. Il comporte une interface web et est écrit en php5. = Installation... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Introduction

SecretManager est un serveur de gestion de mots passe, créé par Pierre-Luc Mary. Il comporte une interface web et est écrit en php5.

Installation

Pré-requis

Je pars ici d'une VM vierge. Néanmoins, il est nécessaire de gérer tout ce qui est en lien avec DNS, à la fois sur le serveur et sur le client. Votre serveur doit donc avoir un serveur DNS (contenant une entrée pour lui ! SecretManager a besoin de faire des requêtes DNS sur lui-même !). Si vous n'en avez pas, vous pouvez utiliser le fichier /etc/hosts.

Dépendances

Je pars ici d'une VM Debian Stretch.

  • Nous allons installer SecretManager sur un serveur Apache2. Nous commencons par installer les composants nécessaires :
apt update
apt install apache2 mysql-server unzip phpmyadmin
  • Puisque j'utilise Debian Stretch, php5 n'est pas disponible tel quel. Je vais donc ajouter les dépôts de Debian Jessie pour y avoir accès:
vim /etc/apt/sources.list

#Ajouter la ligne:

deb http://deb.debian.org/debian jessie main
  • Il n'y a plus qu'à installer php et ses modules, nécessaires à phpmyadmin et SecretManager :
apt update && apt install php5 php-mbstring php-gettext php5-mysql php-mcrypt 

Installation de SecretManager

  • SecretManager est disponible depuis Sourceforge. On se place dans le dossier home et on le télécharge :
cd ~
wget https://datapacket.dl.sourceforge.net/project/secretmanager/SecretManager-v1.0-2.zip
  • Les téléchargements avec wget depuis Sourceforge peuvent être ennuyeux; si le lien n'est pas bon, lancez un téléchargement de SecretManager depuis Sourceforge dans un navigateur, annulez-le, puis allez dans la section téléchargements de votre navigateur et récupérez le lien [sous Firefox : clic-droit > Copier l'adresse d'origine du téléchargement].
  • Nous allons ensuite le dézipper et le placer dans le dossier /var/www avec les droits:
unzip SecretManager-v1.0-2.zip
cp -r SecretManager /var/www/SecretManager
chown -R www-data:www-data /var/www/SecretManager/

Mise en place du serveur Web

  • Je commence par créer mon fichier d'hôtes virtuel tel que celui-ci dans /etc/apache2/sites-available/001-secretmanager.conf. Celui-ci redirige automatiquement vers https.
<VirtualHost *:80>
        ServerName secretmanager.ju.lab
        ServerAdmin webmaster@localhost
        Redirect Permanent / https://secretmanager.ju.lab
        ErrorLog ${APACHE_LOG_DIR}/secretmanager.log
        CustomLog ${APACHE_LOG_DIR}/secretmanager.log combined
</VirtualHost>

<VirtualHost *:443>
        ServerName secretmanager.ju.lab
        DocumentRoot /var/www/SecretManager
        ErrorLog ${APACHE_LOG_DIR}/secretmanager.log
         
        
        SSLEngine on
        SSLCertificateKeyFile /etc/ssl/private/secretmanager_priv_key.pem
        SSLCertificateFile /etc/ssl/private/secretmanager_cert.pem

        ###Configuration spécifique à SecretManager
        <Directory /var/www/SecretManager>
                DirectoryIndex index.php index.html
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
        
        <Directory /var/www/SecretManager/Backup>
                Order allow,deny
                Allow from localhost
                Deny from all
        </Directory>

        <Directory /var/www/SecretManager/Libraries/Restricted>
                Order allow,deny
                Allow from localhost
                Deny from all
        </Directory>

        CustomLog ${APACHE_LOG_DIR}/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\"%b"

 
</VirtualHost>
  • Je vais ensuite générer la clef et le certificat (remplir les champs conformément à votre site):
cd /etc/ssl/private/
openssl req -newkey rsa:2048 -nodes -keyout secretmanager_priv_key.pem -x509 -days 365 -out secretmanager_cert.pem
  • Je vais ensuite activer ssl pour Apache2, contrôler et activer le site, et recharger Apache2:
cd /etc/apache2/sites-available/
a2ensite 001-secretmanager.conf
a2enmod php5
a2enmod ssl
a2enmod rewrite
apache2ctl -t
apache2ctl graceful
systemctl restart apache2

Base de données

Nous allons devoir accéder à phpmyadmin pour installer les fichiers de base de données prévus par SecretManager. Il faut s'y connecter avec un utilisateur ayant tous les droits (La connection en tant que root étant par défaut interdite, il est plus simple de créer un utilisateur temporaire et de lui donner tous les droits, avant de s'en servir pour se connecter. N'oubliez pas de le supprimer après !).

  • Connectez vous à http://ip_du_serveur/phpmyadmin.
  • Rendez-vous dans l'onglet "import", et importez les fichiers suivants, contenus dans SecretManager/Installation :
    • Secret-Manager-0-Linux.sql
    • Secret-Manager-1.sql
    • Secret-Manager-2.sql
    • Secret-Manager-3.sql
    • J'utilise ici phpmyadmin pour suivre à la lettre les instruction d'installation de SecretManager. Néanmoins, il est également possible de le faire en ligne de commande : mysql -u myuser -p < /home/user/SecretManager/Install/Secret-Manager-0-Linux.sql
  • RTENOTITLE

Ajustement du routage interne de SecretManager

Il est nécessaire d'indiquer à SecretManager vers quel serveur (lui-même, normalement...) rediriger les flux en réécrivant les adresses. Pour cela, ouvrez le fichier /var/www/SecretManager/Constants.inc.php avec un éditeur de texte, puis modifiez la ligne suivante:

define( 'SERVER', 'ihm.secretmanager.fr' );
#Est remplacé par, dans mon cas:
define( 'SERVER', 'secretmanager.ju.lab' );

Vous pouvez indiquer une URL ou bien une IP.

Vérification de l'installation

SecretManager implémente un script de vérification de l'installation. Vous pouvez y accéder depuis l'url :

https://adressedevotreserveurweb/SM-control.php

Tous les voyants doivent être sur 'OK'.

Premier accès

Le serveur est en place, on va pouvoir y accéder via l'url : https://adresseduserveur/SM-login.php. Le login par défaut :

  • login : root
  • mot de passe (attention à l'espace): Welcome !