Chrooter apache
Ajout disque dur
Ajout carte
Audit des disques durs
Gestion des peripheriques
Disquette d'installation
Ajout d'un scanner
Graver en ligne de commande
Astuces
Astuces en Bash
Configuration reseau
Dns
Serveur cvs
Proxy squid 
Installation serveur ftp
Installation qmail 
Installation serveur courrier sous debian
Outil TCP/IP 
Le serveur samba
Connexion a distance securisee
Client/serveur vnc
Configurer apache
Dyndns
Chiffrer un fichier/dossier
Securiser son poste
Mur pare feu pas a pas
Authentification ht-access
Surveillance de serveur CACTI
Snort
Snort-inline
Securiser Apache avec mod_security
Filtrage squid/squidguard/dansguardian
Auditer son site web
Sécuriser son linux
Installer un Lamp avec ssl
Contrer les scans de ports
Traitement anti-spam
Installer/Utiliser tripwire
Utilisation de lilo
Les commandes Linux
Le multi-tache
Le crontab
Exploration de la configuration
Quotas
Messagerie
Installer une application
Debugger ses applications
Le format RPM
Mise a jour du noyau
Qemu
Tour d'horizon des principaux p2p
Récupération du système
Bips d'un pc
Astuces windows
Table Ascii
Lamerland
Conversion de fichiers musicaux
hakin9
Secureroot.com
Hackerthreads.org
Defcon
Hackerlounge
Les derniers exploits
Tous les codes sources
Securite sous Linux
Les logiciels libres quotidiens
Ezine divers
Madchat
Textes divers
Archives
 
Toutes les traductions
Toutes les traductions
Hackin9

Il y a actuellement 5 visiteurs connectés sur le site !

Google
Mise en place d'un serveur CVS sur Debian GNU/Linux
Mise en place d'un serveur CVS sur Debian GNU/Linux

 

Introduction
Licence
Principes
Installation de CVS
Paramétrage de CVS
Importation de données et accès au référentiel
Documentation

 

Introduction

Ce document explique comment paramétrer un serveur CVS sur un poste Linux utilisant la distribution Debian GNU/Linux 3.0 (alias Woody).

Licence

Copyright 2002-2004 Alexandre Ratti. Document diffusé dans les conditions des licences GPL 2 (GNU General Public License) et GFDL 1.2 (GNU Free Documentation License).

Principes

* Un serveur CVS se compose d'une base de données, appelée "référentiel" ou "dépôt", (repository en anglais), qui contient toutes les versions des documents.

* Les utilisateurs empruntent (check out) les documents pour les modifier en local. Une fois leur travail terminé, ils rendent les documents au référentiel (check in). Les modifications faites en local ne sont répercutées sur le référentiel qu'après validation (commit).
* Le référentiel est accessible en local à tous les utilisateurs qui ont un compte sur le serveur et des droits d'écriture dans le répertoire d'installation de la base.
* Le référentiel est accessible en réseau grâce à un serveur spécial, le pserver, ou via ssh.
* Avantages de la solution pserver : les utilisateurs n'ont pas besoin de compte sur le serveur et le transfert des données est probablement plus rapide (pas de chiffrage). Inconvénients : les données et le mot de passe circulent en clair sur le réseau ou sur Internet.
* Pour échanger des données via Internet de manière sécurisée, il est préférable d'utiliser ssh, qui permet de chiffrer mots de passe et données.

Dans ce document, le référentiel est installé dans dans /home/cvs. Le réseau local s'appelle toto.net ; le serveur CVS est accessible à l'adresse cvs.toto.net. Le référentiel va contenir, entre autres, le site Web www.toto.net. Les utilisateur qui ont des droits d'écriture dans le référentiel s'appellent marc et alex.

Installation de cvs

Sur Debian, en qualité d'administrateur :
apt-get install cvs
Pour reconfigurer un serveur CVS déjà installé :
dpkg-reconfigure cvs
Accepter l'utilisation du serveur pserver. Créer le référentiel dans /home/cvs.
Par défaut, le serveur cvs est exécuté en qualité de root. Créer un compte d'utilisateur limité, cvs. Le pserver CVS sera exécuté sous ce nom. S'assurer qu'il est bien propriétaire du dossier racine de CVS. Dans la foulée, ajouter les utilisateurs courants au groupe cvs pour qu'ils puissent accéder directement au référentiel CVS en local.

mkdir /home/cvs
adduser --no-create-home --disabled-login --system --group cvs
chown -R cvs:cvs /home/cvs
adduser marc cvs
adduser alex cvs

Toujours en qualité d'administrateur, activer le référentiel CVS :
export CVSROOT=/home/cvs
cvs init

Dans /etc/xinetd.conf, ajouter le code ci-dessous en utilisant les bonnes adresses IP.
service cvspserver
{
id = cvs_network
disable = no
wait = no
protocol = tcp
user = cvs
socket_type = stream
env = "$HOME=/home/cvs"
# bind n'est utile que si la machine contient plusieurs cartes bind = 192.168.0.2
log_on_failure += USERID
port = 2401
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvs pserver
only_from = .toto.net
}

Redémarrer xinetd.
/etc/init.d/xinetd restart
Remarque : si vous n'avez pas de fichier /etc/xinetd.conf, xinetd n'est probablement pas installé sur votre serveur. C'est le démon inetd qui est installé par défaut sur Debian Woody. Pour remplacer inetd par xinetd,
tapez apt-get install xinetd.

Paramatrage de cvs

Ouvrir un terminal sous le nom d'un utilisateur standard, marc par exemple. Sortir de CVS les fichiers de configuration pour pouvoir les modifier. Un dossier CVSROOT est créé dans le répertoire courant.

cd /home/marc
export CVSROOT=/home/cvs
cvs co CVSROOT
cd CVSROOT
Créer le fichier de mots de passe de CVS. Problème : dans le fichier, les mots de passe doivent être chiffrés, mais CVS ne propose pas de commande pour le faire. On peut normalement copier le mot de passe chiffré dans /etc/passwd, mais Debian utilise des mots de passe MD5, plus longs, qui risquent de ne pas être reconnus.

Format des lignes du fichier de mots de passe :
alex:qsmdlfkqmldk:cvs
marc:modkfjgmldfj:cvs
alex est le nom de l'utilisateur qui se connecte ; cvs est le nom sous lequel le serveur est exécuté (toujours "cvs", dans notre cas).
Si Apache est installé sur le poste, on peut utiliser un de ses outils pour créer le fichier de mot de passe. Dans le dossier CVSROOT :
htpasswd -c passwd alex
Ensuite, entrer le mot de passe.
Pour actualiser un fichier de mot de passe :
htpasswd passwd marc
Vérifier que cet utilitaire n'a pas supprimé la 3ème colonne de chaque ligne de mot de passe. Le cas échéant, la rajouter (:cvs).
Si Apache n'est pas installé sur le poste, il faut trouver autre chose. Créer le fichier : touch passwd
Générer un mot de passe chiffré avec cette formule magique :
perl -e "print crypt('mot_de_passe','az');" >> passwd
Ouvrir le fichier passwd et y corriger les informations.
nano passwd ...
marc:modkfjgmldfj:cvs
Dans la foulée, ouvrir le fichier cvswrappers et y ajouter les lignes ci-dessous. Elles permettent de déclarer quels fichiers sont binaires, pour que CVS ne les abîme pas à l'importation.


*.avi -k 'b' -m 'COPY'
*.doc -k 'b' -m 'COPY'
*.exe -k 'b' -m 'COPY'
*.gif -k 'b' -m 'COPY'
*.gz -k 'b' -m 'COPY'
*.hqx -k 'b' -m 'COPY'
*.jar -k 'b' -m 'COPY'
*.jpeg -k 'b' -m 'COPY'
*.jpg -k 'b' -m 'COPY'
*.mov -k 'b' -m 'COPY'
*.mpg -k 'b' -m 'COPY'
*.pdf -k 'b' -m 'COPY'
*.png -k 'b' -m 'COPY'
*.ppt -k 'b' -m 'COPY'
*.sit -k 'b' -m 'COPY'
*.swf -k 'b' -m 'COPY'
*.tar -k 'b' -m 'COPY'
*.tgz -k 'b' -m 'COPY'
*.tif -k 'b' -m 'COPY'
*.tiff -k 'b' -m 'COPY'
*.xbm -k 'b' -m 'COPY'
*.xls -k 'b' -m 'COPY'
*.zip -k 'b' -m 'COPY'
*.ogg -k 'b' -m 'COPY'
*.mp3 -k 'b' -m 'COPY'

Maintenant, réimporter les fichiers modifiés dans CVS. D'abord, déclarer le fichier qui a été créé :
cvs add passwd
Puis demander à CVS de comparer le répertoire local avec le référentiel. Il doit énumérer les fichiers ajoutés/modifiés.
cvs update
Ensuite, valider les modifs.
cvs commit
Toujours dans le même dossier, éditer le fichier checkoutlist et y ajouter la ligne
passwd
en fin de fichier. Objectif : déclarer que le fichier passwd qui vient d'être créé est un fichier d'administration exportable comme les autres.
Actualiser et valider :
cvs update cvs commit

Importation de données et accès au référentiel

Importation d'un site dans le référentiel

À ce stade, on doit pouvoir importer un site dans la base. Dans la foulée, tester l'accès pserver. Toujours avec un compte d'utilisateur standard :
export CVSROOT=:pserver:marc@cvs.toto.org:/home/cvs
cvs login
cd /chemin/du/dossier/www.toto.net
cvs import www.toto.net toto initial

On peut maintenant emprunter (checkout) la dernière version du site depuis un poste Windows ou Linux pour la modifier en local.
Accès aux données depuis Windows

Installer un outil Windows. Deux choix :

* TortoiseCVS : ajoute un menu contextuel dans l'Explorateur. Très simple.
* WinCVS : outil de type FTP, qui montre le contenu du référentiel. Plus complet.
Avec TortoiseCVS, cliquer avec le droit droit sur l'icône du disque où on veut placer la version locale du site et choisir CVS Checkout dans le menu contextuel.

Paramètres :
* Protocol : Password server (:pserver:)
* Server : cvs.toto.org
* Repository directory : /home/cvs
* User name : marc
* Module : www.toto.org

Le site est extrait du référentiel. Chaque répertoire de l'arborescence créée contient un sous-répertoire appelé CVS. Ne pas le supprimer, il contient des infos importantes.
On peut maintenant :
* Modifier le site en local.
* Actualiser la version locale en cliquant sur le dossier-racine du site et en choisissant CVS Update.
* Enregistrer ses modifications dans le référentiel en choisissant CVS Commit.


Installation d'une interface Web

Le paquet viewcvs est un script en Python qui permet de parcourir le contenu d'un référentiel CVS à partir d'un serveur Web.
apt-get install apache viewcvs
Des questions sont posées pendant l'installation du paquet viewcvs. Vérifier dans /etc/viewcvs/viewcvs.conf que les réponses ont bien été enregistrées.
Dans /etc/apache/httpd.conf, ajouter la ligne suivante en fin de fichier :
Alias /viewcvs/ /usr/share/viewcvs/
Relancer Apache :
/etc/init.d/apache restart
Le contenu de la base CVS devrait être consultable à l'adresse :
http://www.toto.net/cgi-bin/viewcvs.cgi/

Documentation

Présentations de CVS

Introduction à CVS, Sébastien J. Gross, document du 16 mai 2001
Utilisation de CVS, Alain Lesné et Olivier Bergé, 28/12/2000
Manuel d'utilisation de CVS (en anglais)

Application de CVS à l'administration de sites Web

Easing Web Application Development with CVS, Oktay Altunergil, O'Reilly Network, 24/01/2002
Using CVS for Web development, Philip Greenspun, 1999
Managing Websites using Unix, Nik Clayton, 1999

Mark's Guide to CVS (incomplet), Mark D., 23/12/1999

CVS Version Control for Web Site Projects, Sean Dreilinger, 13/04/1998

Paramétrage détaillé d'un serveur CVS

CVS Pserver and Xinetd, Sugoi Consulting

Chrooted SSH CVS Server Howto, Olivier Berger et Olivier Tharan, Idealx, 2001

Sources de l'article


 

Forum d'entraide
Les news du site
Formulaire en php
Administrer un serveur Mysql
Session en php
Gerer ses bases mysql
Les bases php
Securiser ses scripts PHP
Controler ses programmes avec RATS
Convertir une base sql en utf8
Astuces php
Python rapide
Tutorial Python
Tutorial Perl
Tutorial Perl complet
Tutoriel ruby
Tutoriel C
Introduction à gawk
Filtres et utilitaires
Find
Programmation Shell
Ecriture de scripts bash
Expressions regulieres
Vi
Introduction a Javascript
Compiler avec gcc
Tutoriel Assembleur
Guide du cracking pour débutant
Assembleur
Manual Unpacking
Différentes failles Web
Arp spoofing dans un réseau switché
Les intrusions
Les attaques externes
Defacage
Defacage complet
Buffer overflow
Netcat
Injection sql
Injection sql(suite)
John the Ripper
Spoofer un email
Utiliser google
La faille system
Usurper une identité
Le rooting
Shellcode sous Unix
La faille race condition
La faille xss
La faille xss (2)
Attaques sur un routeur
Azureus pas-a-pas
Lire les news de Linux-pour-lesnuls.com au format RSS
Gestion des paquets debian
101 commandes debian
Effet neon dans GIMP
Effet vapeur dans GIMP
Cours fonctionnalités de GIMP
Ensemble
Divers