Installation et utilisation du serveur Creuvux
Table des matières
2 Dépendances
2.1 OpenSSL
2.2 libxml2
2.3 libxslt
3 Installation
3.1 Installation sous *BSD, Linux, Unixoïde
3.1.1 Récupération des sources
3.1.2 Compilation, installation
3.1.3 Configuration
3.1.4 Création de la liste de fichiers partagés
3.1.5 Lancement du serveur
4 Utilisation
4.1 Ajout d’un client ou d’un groupe
4.2 Comprendre creuvuxd.conf
4.2.1 CREUVUX_PATH
4.2.2 CREUVUX_USER
4.2.3 CREUVUX_CHROOT
4.2.4 CREUVUX_HOST
4.2.5 CREUVUX_ADDR
4.2.6 CREUVUX_PWD
4.2.7 CREUVUX_DEBUG
4.2.8 CREUVUX_DEBIT
4.2.9 CREUVUX_UPDIR
4.2.10 CREUVUX_PUBLIC
4.2.11 CREUVUX_PID
4.2.12 Exemple
5 Les certificats
5.1 Demande de certificat 1re Méthode
5.2 Demande de certificat 2e Méthode
5.2.1 Génération de la clef privé et de la requete
5.2.2 Création du fichier server.pem
5.2.3 Modification du fichier creuvux.conf
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 |
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"