Welcome to Coding : Sécurité Programmation Réseaux

Search   in  

 Create an Account Home | Submit News Your Account Content | Topics | Top 10  


Accueil
· Home
· Listing des Articles
· Top 10
· Repository des Exploits

Les sujets / parties
· C / C ++
· Visual Basic
· Asm
· Reseaux
· Java
· Securite
· Divers

Utile
· Listing des Articles

· Telecharger
· Le Forum
· Liens
· Proposer un article

Top20 des Downloads
· 1: Etude des reseaux generalites et protocoles
· 2: Cheval de troie en VB avec sources
· 3: Netcat 1.1
· 4: Keylogger
· 5: Etudes des reseaux hauts debits architectures et protocoles
· 6: Ecoute de port
· 7: Etude du Smart Spoofing
· 8: Win Packet Capture Utils
· 9: Tutorial on Traffic Interception on Switched Lan using ARP spoofing
· 10: Cours de C

User Info
Welcome, Anonymous
Nickname
Password
(Register)
Membership:
Latest: trapcodien
New Today: 1
New Yesterday: 0
Overall: 2207

People Online:
Visitors: 42
Members: 1
Total: 43

Online Now:
01: trapcodien

  
Installer un serveur CVS
Posted on Saturday, December 18 @ 17:32:03 CET
Topic: Linux
Linux

	Tutoriel sur l'installation d'un serveur CVS.

. Il s'agit d'un utilitaire permettant de gérer efficacement des fichiers ou plus exactement toutes les versions des mêmes fichiers modifiés au fil du temps. On peut alors, en toute simplicité, retrouver d'anciennes versions de fichiers, consulter l'historique des modifications, bref, garder une trace de tout le "vécu" du projet.

Installer un serveur CVS Partager des informations est la base même d'une communauté d'utilisateurs et/ou de développeurs. Malheureusement, quand le nombre de personnes collaborant à un projet dépassent la limite fatidique (2 personnes), les problèmes commencent à voir le jour. La synchronisation des travaux de chacun utilise alors de plus en plus de temps du responsable du projet. Ajoutant à cela des problèmes de répartition géographique, il devient indispensable de faire usage d'un outil spécialisé : CVS. CVS signifie Concurrent Versions System. Il s'agit d'un utilitaire permettant de gérer efficacement des fichiers ou plus exactement toutes les versions des mêmes fichiers modifiés au fil du temps. On peut alors, en toute simplicité, retrouver d'anciennes versions de fichiers, consulter l'historique des modifications, bref, garder une trace de tout le "vécu" du projet. CVS est un système habituellement utilisé pour maintenir et gérer des fichiers sources. Mais il peut également convenir pour tout autre élément nécessitant les mêmes besoins de gestion (fichiers HTML, documentation, répertoire téléphonique, etc.). Il peut être utilisé de manière locale ou via un réseau. Ce dernier point est très important car il permet de s'acquitter du problème géographique cité plus haut. Utilisation locale Même si vous développez un logiciel ou une documentation "en solitaire", CVS est une sécurité qui peut parfois vous sauver la mise. En effet, avec CVS, vous ne travaillez jamais directement sur les données. Ces dernières sont stockées dans un dépôt (repository) accompagnées d'informations complémentaires utilisées par CVS. Lorsque vous souhaitez modifier votre oeuvre, vous devez récupérer la version la plus à jour depuis le dépôt, appliquer vos modifications pour enfin retransmettre la nouvelle version au dépôt. Utilisez CVS en local est un jeu d'enfant. Il suffit de définir une variable d'environnement renseignant l'utilitaire cvs de l'endroit où est placé le dépôt. Voici un petit exemple: $ export CVSROOT='/usr/local/moncvs/depot' Ensuite on initialise le dépôt et on y place la première version des fichiers : $ cvs init $ cd /vers/mes/sources $ cvs import -m "premiere version" monprojet demoi starter N monprojet/... N monprojet/... N monprojet/... [...] No conflicts created by this import Nous venons d'ajouter les fichiers du répertoire courant dans la branche monprojet du dépôt sous le nom demoi avec comme marqueur (mot clef) starter. Vous pouvez, à présent, directement vous placer n'importe où dans votre arborescence pour faire votre premier checkout du dépôt CVS : $ cd ~/ailleurs $ cvs co monprojet Un répertoire monprojet sera créé comprenant les fichiers du dépôt. Ici, nous précisons le nom d'un répertoire à récupérer, mais vous avez peut-être remarqué que, habituellement, on parle de module et non de répertoire. Un module peut être considéré comme une sorte d'alias. Pour associer un nom de module à votre répertoire monprojet, commencez par récupére le répertoire de gestion CVS : $ cvs co CVSROOT En plus de monprojet, vous devez à présent trouver un répertoire CVSROOT. Dans ce dernier sont placés tous les fichiers de paramétrage de votre serveur CVS. Les modules se définissent dans CVSROOT/modules. Editez ce fichier et ajoutez : X57 monprojet Enregistrez le fichier et appliquez directement ces modifications au dépôt avec : $ cvs commit -m "ajout modules" Checking in CVSROOT/modules; /usr/local/moncvs/depot/CVSROOT/modules,v Et voilà. Vérifions tout de même : $ rm -rf * $ cvs co X57 Nous obtenons cette fois un répertoire du nom du module (X57). Donc, ça marche. Vous l'aurez compris, les récupérations se font habituellement avec co (ou update) et les mises à jour avec commit. Ajoutons à cela que les ajouts de fichiers se font avec add et qu'il n'est pas possible de supprimer un fichier du dépôt. En réseau Qui dit réseau sous-entend implicitement multi-utilisateurs et donc gestion des utilisateurs. Il faut donc vous préparer à gérer autant d'utilisateurs sur la machine que vous aurez de participants à votre projet. Partez donc sur de bonnes bases en créant un groupe d'utilisateurs cvs et les différents comptes pour vos participants. Comme les bonnes habitudes doivent être prises rapidement, interdisez immédiatement les logins pour tous ces utilisateurs (sauf vous) en ajoutant leur nom dans /etc/security/access.conf. Ceci suppose bien sûr que vous utilisiez PAM sur le système et que vous utilisiez ce module pour les services sshd, rlogin, login, etc. Les utilisateurs n'ont pas besoin de se logger sur le système pour avoir accès au dépôt cvs, mais la gestion des permissions sur les fichiers du dépôt nécessite l'existence des utilisateurs dans le système. Dans le cas contraire, la moindre manipulation en lecture ou en écriture sur le dépôt provoquera tout simplement une erreur "Fatal error, aborting. machin: no such user". Il n'y a pas de démon cvsd, vous devez simplement ajouter une ligne dans votre fichier de configuration de inetd : cvspserver stream tcp nowait root /usr/sbin/tcpd (A la suite .....) /usr/bin/cvs --allow-root=/usr/local/moncvs/depot pserver N'oubliez pas de redémarrer inetd après la modification. Votre serveur CVS est maintenant prêt à répondre aux requêtes provenant d'autres machines du réseau, mais ce n'est pas fini. Nous l'avons dit plus haut, les fichiers de gestion du CVS sont placés dans un répertoire CVSROOT du dépôt. Un certain nombre de fichiers ont été créés grâce à la commande cvs init mais pas celui permettant de gérer les accès nominatifs. Ici, deux solutions se présentent :
  • soit vous permettez aux utilisateurs reconnus d'ajouter de nouveaux membres participant au projet
  • soit vous vous réservez ce privilège. Quelle que soit votre décision, vous serez obligé de créer un fichier CVSROOT/passwd dans l'arborescence du dépôt. Ce fichier comprenant les noms et mots de passe des utilisateurs respecte la syntaxe classique user:pass. Attention, ce que vous allez faire maintenant n'est valable que pour cette manipulation. Dans aucune autre situation vous ne devez éditer, modifier ou manipuler des fichiers directement dans le dépôt ! Vous avez été prévenus ! Placez-vous dans le répertoire CVSROOT du dépôt et créez le fichier de mots de passe avec l'utilitaire htpasswd d'Apache : $ cd /usr/local/moncvs/depot/CVSROOT $ htpasswd -c passwd nom_utilisateur Adding password for nom_utilisateur. New password: Re-type new password: Un fichier passwd sera créé. Si vous désirez y ajouter de nouvelles entrées, vous pouvez utiliser la même syntaxe en supprimant l'option -c. A présent, vous devez faire le choix fatidique. Si vous désirez être le seul maître à bord, les manipulations s'arrêtent là. En revanche, si vous désirez permettre un checkout du répertoire CVSROOT avec ce fichier passwd, procédez comme suit : $ cd ~/ailleurs $ rm -rf * $ cvs co CVSROOT $ cd CVSROOT $ cp /usr/local/moncvs/depot/CVSROOT/passwd . $ cvs add passwd $ cvs commit -m "ajout passwd" Vous venez d'ajouter une entrée dans la gestion CVS pour le fichier passwd. Il est maintenant accessible pour tous les utilisateurs qui peuvent se connecter au serveur. Attention, ceci implique non seulement des ajouts d'utilisateurs de la part des membres de votre projet, mais également un risque potentiel pour les mots de passe existants. En effet, avoir en sa possession un tel fichier permet de tenter une attaque en force brute en testant toutes les valeurs possibles. Tout est prêt pour le grand moment. Vous pouvez vous déplacer sur une autre machine du réseau et récupérer le module X57 : $ export CVSROOT=':server:utilisateur@lamachine:/usr/local/moncvs/depot' $ cvs login (Logging in to utilisateur@lamachine) CVS password: $ cvs co X57 Si tous les paramètres entrés correspondent à ceux que vous avez définis dans les étapes précédentes, vous devez récupérer sans le moindre problème le module X57 (aka monprojet). Si vous désirez simplifier les choses, vous pouvez associer un nom d'utilisateur CVS à un nom d'utilisateur du système. Plus clairement, vous pouvez préciser l'identité sous laquelle cvs tournera sur le serveur si l'authentification de l'utilisateur distant réussit. Pour cela, vous devez ajouter un champ dans votre fichier passwd :
  • Voici une ligne classique où l'utilisateur authentifié est le même : nom:XR4EZcEs0szik
  • Voici des lignes où les utilisateurs titi et toto provoqueront une exécution de cvs sous l'identité de nom : titi:ULtgRLXo7NRxs:nom toto:tGX1fs8sun6rY:nom Si vous désirez permettre à des utilisateurs anonymes de faire un checkout sur votre dépôt, vous devez tout d'abord ajouter un utilisateur anonymous ou anon. Il s'agit là des noms les plus utilisés mais vous n'êtes absolument pas obligé de respecter cette convention. Ajoutez une entrée à CVSROOT/passwd en validant simplement la demande de mot de passe. Enfin, ajoutez un fichier CVSROOT/readers dans votre dépôt. Ce fichier contiendra la ou les nom(s) des utilisateurs cvs anonymes qui ne possèdent qu'un droit de lecture sur le dépôt. Toute tentative d'écriture de la part de cet ou ces utilisateur(s) entraînera l'affichage du message : cvs commit: Examining X57 cvs [server aborted]: "commit" requires write access to the repository Vous avez à présent la base pour administrer vos projets avec CVS. Il existe un grand nombre d'options et de commandes dont nous n'avons pas parlé. Vous pourrez obtenir toutes les explications nécessaires sur le site officiel de CVS à la rubrique "Documentation" ou "FAQ". Liens CVS Homepage
    http://www.cvshome.org CVSup
    http://www.polstra.com/projects/freeware/CVSup/ Cervisia
    http://cervisia.sourceforge.net LinCVS
    http://www.lincvs.org
    Linux Magazine France n°27 - Avril 2001

  •  
    Liens connexes
    · Plus à propos de Linux
    · Nouvelles transmises par Romain_Le_Guen


    L'article le plus lu à propos de Linux:
    Tutoriel Partage de Fichier avec Samba sous debian / mandrake


    Article Rating
    Average Score: 3
    Votes: 3


    Please take a second and vote for this article:

    Excellent
    Very Good
    Good
    Regular
    Bad


    Options

     Format imprimable Format imprimable


    PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
    Page Generation: 0.62 Seconds