Installation et utilisation du serveur Creuvux

_____
Creuvard
www.creuvux.org, le
8 janvier 2010

 

 

Table des matières

Chapitre 1
Présentation

La partie serveur de creuvux (nommé creuvuxd) permet de partager des fichiers. Ces fichiers sont accessible par les clients authentifiés. Seuls les clients avec un certificat valide aurront acces aux fichiers qui leur sont destinés. Pour se faire, en plus d’avoir un certificat, creuvuxd doit gerer les clients et les placer dans un ou plusieurs groupes afin qu’ils ai acces à certains fichiers. La connection se fait de mannière sécurisée (Certificat+SSL/TLS). Le serveur utilise la séparation des privilèges (chroot+user spécialement créé).

Chapitre 2
Dépendances

Avant d’aller plus loin, certaines dépendances doivent être installées sur votre machine. Elles sont au nombre de trois, openssl libxml2 et libxslt. L’outil Wget est également nécéssaire, il est utilisé dans le script d’initialisation de creuvux. L’installation de ces dépandances n’est pas décrite dans ce document, référez vous au manuel de votre Os/Distribution pour leur installation.

2.1 OpenSSL

OpenSSL est une boite à outils de chiffrement comportant une bibliothèque implémentant le protocole SSL et TLS, ainsi qu’une commande en ligne.

 

2.2 libxml2

XML est un langage de description de documents utilisés par creuvux (Client et Serveur).

 

2.3 libxslt

XSLT est l’abréviation de Extensible Stylesheet Language Transformation. C’est un langage de programmation qui sert à transformer des documents XML dans divers formats.

Chapitre 3
Installation

3.1 Installation sous *BSD, Linux, Unixoïde

Sous un Os de type Unixoïde, l’instalation nécéssite la compilation depuis les sources, aucune version binaire n’est encore proposée.  Les commandes creuvuxd et creuvuxdctl nécéssite d'être root.

 

3.1.1 Récupération des sources

La première étape consiste à récupérer la dernière archive disponible.

 

3.1.2 Compilation, installation

La compilation et l’installation se font de mannière classique. Voici la procédure à suivre.

tar xvzf creuvuxd-0.79.tar.gz
cd creuvuxd-0.79
./configure
make
su root
Password :
make install
exit

 

3.1.3 Configuration

Le serveur creuvuxd est maintenant installé. Afin de fonctionner correctement, il à besoin d’un environement de travail (répertoire, fichiers de configuration, utilisateur de mappage, génération de fichier nécessaire au chiffrement de la connection.). Le script creuvuxdctl avec le paramètre init construit l’environnement nécéssaire au bon fonctionnement du serveur notez que le script dans la version 0.69 commence par la ligne #!/bin/sh qu'il vaut mieux remplacer par #!/usr/bin/env bash c'est une erreur qui sera corrigée dans la prochaine version).

creuvuxdctl init

 

3.1.4 Création de la liste de fichiers partagés

Le serveur partage les fichiers présents dans le répertoire /home/creuvux. creuvuxd crée le fichier listing.xml qui va contenir les informations sur les fichiers partagés (ceci peut prendre un certain temps selon le nombre et la taille des fichiers).

creuvuxd -u

Une fois le listing créé, il est préférable d’éditer le fichier listing.xml afin d’affiner les droits d’acces. De base creuvuxd la variable CREUVUX_PUBLIC du fichier de configuration rend accessible au groupe all (c’est à dire tout le monde, y compris les testeurs de passage) tout le répertoire (et sous répertoire) CREUVUX_CHROOT. Si la variable est modifiée (Ex : CREUVUX_PUBLIC="/public") le répertoire doit contenir un slash devant mais pas à la fin. Dans ce cas, les fichiers contenus dans les autres répertoires seront attribué au groupe other (Ce groupe n’existant pas à cette étape, aucun client n’y aurra acces).

 

3.1.5 Lancement du serveur

Par defaut, le serveur se lance en mode debug, pour le lancer en mode démon il faut passer le parametre CREUVUX_DEBUG du fichier /etc/creuvuxd/creuvux.conf à no.

creuvuxd

Dans le cadre d’un test, il est conseiller de laisser le mode debug, et de faire des tests avec le client en modificant son fichier /home/votre_user/creuvux/serveur_liste pour qu’il ressemble à ceci.

localhost :1664

Chapitre 4
Utilisation

4.1 Ajout d’un client ou d’un groupe

Une fois le serveur configuré, vous pouvez autoriser un nouveau client à se connecter, pour cela, il faut rajouter le pseudo du client au fichier group.conf. De même pour un nouveau groupe, le fichier /etc/creuvuxd/group.conf est formaté de la mannière qui suis.

username_1 :groupname1,groupname2,groupname4
username_2 :groupname2,groupname3
username_3 :groupname1

 

4.2 Comprendre creuvuxd.conf

Une fois les tests avec la configuration de base, il est nécéssaire de modifier le fichier de configuration. Voici une brève explication des différentes variables.

 

4.2.1 CREUVUX_PATH

Renseigne le répertoire par défaut dans lequel se trouve le fichier de configuration ainsi que les certificats, les fichier DH, et le fichier contenant les groupes et utilisateurs pouvant se connecter au serveur.

 

4.2.2 CREUVUX_USER

Est le nom du l’utilisateur de mappage, c’est avec ces droit que les actions seront faites. Le script d’initialisation crée cet utilisateur (il a un faux shell et un home directory dans /home).

 

4.2.3 CREUVUX_CHROOT

Renseigne le répertoire dans lequel creuvuxd va se "chrooter". Généralement le home directory de CREUVUX_USER.

 

4.2.4 CREUVUX_HOST

Est le nom de domaine (ou adresse IP) avec lequel vous êtes joignable depuis l’exterieur (Ex : creuvux.org). Ce paramètre sera transmis au client afin qu’il sache quel sur quel serveur se trouve tel ou tel fichier (Rappel : le client à acces à différents serveurs).

 

4.2.5 CREUVUX_ADDR

Est l’adresse IP sur laquelle le serveur écoute qur la machine. Ceci est utile dans le cas d’un serveur ayant plusieurs carte réseau.

 

4.2.6 CREUVUX_PWD

Est la pass-phrase du certificat (par défaut la pass-phrase du certificat de base est serveurtest).

 

4.2.7 CREUVUX_DEBUG

Active ou non le mode debug. Le mode debug est utile lors de la phase de test préliminaire.

 

4.2.8 CREUVUX_DEBIT

Renseigne le débit binaire proposé par creuvuxd (en KBps). Ce parametre est important, car les clients se base dessus lors du découpage des fichiers pour leur téléchargement. Par exemple : Soit deux serveur partageant le même fichier de 100 Meg. Le serveur 1 propose une bande passante de 75KBps tandis que le serveur 2 propose 25KBps. Le client souhaitant télécharger ce fichier téléchargera (de mannière automatique cela n’est pas paramétrable) 75 Meg sur le serveur 1 et 25 Meg sur le serveur 2 afin que les 2 téléchargements se terminent au plus vite.

 

4.2.9 CREUVUX_UPDIR

Renseigne le répertoire dans lequel les fichiers "uplodés" seront placé (/ !
pas de slash à la fin ).

 

4.2.10 CREUVUX_PUBLIC

Renseigne le répertoire accéssible au groupe all par défaut. (/ !
pas de slash à la fin ).

 

4.2.11 CREUVUX_PID

Est le fichier dans lequel se trouvera le PID du serveur.

 

4.2.12 Exemple

Voici un exemple de fichier creuvuxd.conf  :

CREUVUX_PATH="/etc/creuvuxd" CREUVUX_USER="creuvux" CREUVUX_CHROOT="/home/creuvux" CREUVUX_HOST="creuvux.org" CREUVUX_ADDR="10.26.10.364" CREUVUX_PWD="secret" CREUVUX_DEBUG="no" CREUVUX_DEBIT="1000" CREUVUX_UPDIR="/upload" CREUVUX_PUBLIC="/public" CREUVUX_PID="/var/run/creuvuxd.pid"

Chapitre 5
Les certificats

On en a brièvement parlé plus haut, les certificats sont utilisé lors de la connection sur les serveurs. C’est grace au certificat que les serveurs authentifient les clients. L’installation par défaut propose un certificat ainsi qu’un mot de passe accessible à tous, cela n’est pas donc pas trés sécure pour une mise en prod. Si vous souhaitez avoir un certificat personnalisé pour votre serveur afin de partager des fichiers ou d’héberger les fichiers de vos amis, voici deux méthodes. L’adresse mail à utiliser pour les demandes est cert-request@creuvux.org.

5.1 Demande de certificat 1re Méthode

Cette méthode est la plus simple. Elle consiste à faire la demande de certificat directement au gestionnaire du réseau par mail. C’est le gestionnaire des certificats qui s’occupera de vous renvoyer uniquement les deux fichiers nécessaire ainsi que votre mot de passe. Les fichiers server.pem et rootcert.pem devront être placés dans le répertoire /etc/creuvuxd/, et le mot de passe devra être renseigné dans le fichier de configuration creuvuxd.conf avec le paramètre CREUVUX_PWD="Votre nouveau mot de passe".

 

5.2 Demande de certificat 2e Méthode

Cette méthode est un peu plus complexe, mais à pour avantage le fait que vous choisissiez vous-même votre mot de passe. Vous allez être ammené à générer vous même votre clef privée ainsi que votre requete, puis transmettre votre requete au gestionnaire des certificats. Le gestionnaire vous renverra alors votre certificat signé (servercert.pem), ainsi que le certificat du réseau (rootcert.pem).

 

5.2.1 Génération de la clef privé et de la requete

Dans le répertoire /etc/creuvuxd/, se trouve un répertoire cert. Dans ce répertoire se trouve un fichier nommé creuvuxd.cnf qui va vous aider à générer votre clef privée et votre requete. Ne perdez pas le mot de passe que vous entrez car il faudra ensuite le renseigner dans le fichier creuvuxd.conf.

Voici la commande :

cd /etc/creuvuxd/cert
openssl req -newkey rsa:1024 -keyout serverkey.pem -keyform PEM -out serverreq.pem -outform PEM -config creuvuxd.cnf

Le fichier serverreq.pem devra être transmis par mail au gestionnaire des certificats afin qu’il vous renvoie un certificat signé nommé servercert.pem et le certificat du réseau rootcert.pem.

 

5.2.2 Création du fichier server.pem

Une fois le certificat en main, vous pouvez créer le fichier server.pem qui servira à creuvux. Ce fichier est en fait une concaténation de votre certificat, de votre clef privée ainsi que du certificat du réseau.

cd /etc/creuvuxd/cert
cat servercert.pem serverkey.pem rootcert.pem > server.pem

Une fois ce fichier créé, vous devez déposer les fichiers server.pem et rootcert.pem dans votre répertoire /etc/creuvuxd à la place des anciens.

 

5.2.3 Modification du fichier creuvux.conf

Voici la dernière étapes de la procédure, vous devez éditer le fichier creuvuxd.conf afin de remplacer l’ancien mot de passe par le nouveau (celui que vous avez entré pour générer votre clef privée)) dans le parametre CREUVUX_PWD="Votre nouveau mot de passe"

 
Design by Creuvux's team.