Installation de SVN avec Apache
1. Récupérer les packages Subversion
rpm -Uvh http://search.belnet.be/mirror/ftp.suse.com/suse/i386/9.2/suse/i586(...)
rpm -Uvh http://search.belnet.be/mirror/ftp.suse.com/suse/i386/9.2/suse/i586(...)
rpm -Uvh http://ftp.suse.com/pub/suse/i386/9.2/suse/i586/subversion-server-1(...)
2.Créer le répertoire de subversion et lui donner les droits d'accès pour le serveur web
svnadmin create /svn
chown -R wwwrun:wwwrun /svn/
3.Définir les droits d'accès SVN aux arborescences
vi /svn/conf/accessfile.conf
-----------------------------------
[/]
linus = rw
cox = rw
[/kernel24]
marcello = rw
[/kernel26]
peter = rw
* = r
-----------------------------------
4.Ajouter les modules nécessaires dans la configuration Apache2 et activer le mode SSL
A noter que l'ordre des modules est important (surtout au niveau dav et svn).
/etc/sysconfig # vi apache2
-----------------------------------
APACHE_MODULES="suexec access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif userdir auth_digest ldap auth_ldap ssl php4 python dav dav_svn authz_svn"
APACHE_SERVER_FLAGS="-D SSL"
-----------------------------------
5.Éditer la configuration Apache et paramétrer le module DAV
Dans la configuration ci dessous l'annuaire est indiqué via l'URL ldap://serveur:389/ou=monorg,dc=domain,dc=fr?sAMAccountName?sub?(objectClass=user)
Il s'agit pour le coup d'un annuaire de type Active Directory (recherche sur sAMAccountName)
Pour OpenLDAP l'URL est de type (voir plus loin la configuration OpenLDAP) :
ldap://localhost:389/ou=people,dc=domain,dc=com?uid?sub?(objectClass=*)
Il y a sûrement moyen d'optimiser la requête au niveau des filtres ;)
Les sections AuthLDAPBindDN et AuthLDAPBindPassword permettent de définir le couple DN/password pour se connecter à l'annuaire (généralement la connexion anonyme suffit pour l'authentification).
cd /etc/apache2/
vi default-server.conf
-----------------------------------
<Location /svn>
DAV svn
SVNPath /svn
SVNAutoversioning on
AuthzSVNAccessFile /svn/conf/accessfile.conf
AuthLDAPEnabled on
AuthLDAPURL ldap://10.1.5.13:389/ou=monorg,dc=domain,dc=com?sAMAccountName?sub?(objectClass=user)
#AuthLDAPBindDN
#AuthLDAPBindPassword
#AuthLDAPAuthoritative on
require valid-user
AuthType Basic
AuthName "Subversion Read-only Repository"
<LimitExcept GET PROPFIND OPTIONS REPORT>
Satisfy all
SSLRequireSSL
</LimitExcept>
-----------------------------------
6.Générer un certificat SSL
/usr/bin/gensslcert -c fr -s TN -l "Paris" -o monorganisation -n "134.157.55.44"
7. Éditer la configuration serveur SSL
cd vhosts.d/
cp vhost-ssl.template vhost-ssl.conf
vi vhost-ssl.conf
-----------------------------------
# General setup for the virtual host
DocumentRoot "/srv/www/htdocs"
ServerName 134.157.55.44:443
#ServerAdmin webmaster@example.com
ErrorLog /var/log/apache2/error_log
TransferLog /var/log/apache2/access_log
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
-----------------------------------
Configuration OpenLDAP
1.Éditer la configuration LDAP
vi /etc/openldap/ldap.conf
-----------------------------------
BASE dc=domain, dc=com
URI ldap://ldap.domain.com
2.Créer un mot de passe pour l'accès à l'annuaire
slappasswd
Qui produit un pass hash que nous allons coller dans le fichier de configuration slapd.conf à la section rootpw.
3.Éditer le fichier de configuration slapd.conf
Au passage on inclut le schéma samba3.schema (pour le cas ou on voudra également gérer des comptes samba3) et on spécifie les index pour objectClass et uid (afin d'accélérer les requêtes de recherche).
vi /etc/openldap/slapd.conf
-----------------------------------
include /etc/openldap/schema/samba3.schema
...
suffix "dc=domain,dc=com"
rootdn "cn=root,dc=domain,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw {SSHA}jgKeR7/tKxVERYlkQPIPO6/tE3zr/2B+
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /var/lib/ldap
# Indices to maintain
index objectClass eq
index uid pres,sub,eq
-----------------------------------
4.Vider la Base de données LDAP
Dans mon cas j'ai du effectuer cette opération pour pouvoir redémarrer OpenLDAP avec les nouveaux index. Il existe sûrement il commande plus propre.
cd /var/lib/ldap/
rm *
5.Ajout du point d'entrée dans l'annuaire
ldapadd -h localhost -x -D 'cn=root,dc=domain,dc=com' -W -f top.ldif
(voir le contenu du fichier plus bas)
On vérifie l'opération
ldapsearch -h localhost -x -b 'dc=domain,dc=com'
6.Ajout des utilisateurs
A priori YAST permet la gestion des utilisateurs de l'annuaire et semble bien faire son travail, mais il est toujours possible de passer par la ligne de commande.
ldapadd -h localhost -x -D 'cn=root,dc=domain,dc=com' -W -f user.ldif
7.Modification d'un password utilisateur
ldappasswd -h localhost -x -v -S -W -D 'cn=root,dc=domain,dc=com' 'uid=linus,ou=people,dc=domain,dc=com'
8.Opérations diverses
Récupération des passwords
ldapsearch -H "ldap://localhost:389/" -x -s sub "(objectClass=person)" -W -D 'cn=root,dc=domain,dc=com' -LLL userPassword
Suppression d'une entrée
ldapdelete -h localhost -x -D 'cn=root,dc=domain,dc=com' -W 'dn=uid=linus,ou=people,dc=domain,dc=com'
9.Fichier top.ldif
dn: dc=domain, dc=com
objectclass: dcObject
objectclass: organization
o: Mon Orga
dc: domain
dn: cn=root, dc=domain, dc=com
objectclass: organizationalRole
cn: root
dn: ou=people, dc=domain, dc=com
ou: people
objectclass: organizationalUnit
dn: ou=group, dc=domain, dc=com
ou: group
objectclass: organizationalUnit
10. Fichier user.ldif
# linus, people, domain.com
dn: uid=linus,ou=people,dc=domain,dc=com
uid:linus
cn: Linus Tor
gecos: Linus Tor
uidNumber: 100
gidNumber: 1000
homeDirectory: /home/linus
loginShell: /bin/bash
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
shadowInactive: 0
shadowLastChange: 12955
shadowMax: 0
shadowMin: 0
shadowWarning: 0
userPassword:: e1TRESDROLEOZk1uRzZVSTIrNldiUkJwMmpzSUI1MnlrPQ==
# users, group, domain.com
dn: cn=users,ou=group,dc=domain,dc=com
cn: users
gidNumber: 1000
member: uid=linus,ou=people,dc=domain,dc=com
objectClass: top
objectClass: posixGroup
objectClass: groupOfNames
11. Divers
J'ai également récupéré phpldapadmin, qui semble pas trop mal fonctionner.
http://phpldapadmin.sourceforge.net/(...)
# tutoriel
Posté par Julien . Évalué à 3.
Pourquoi ne pas proposer ce tutoriel a un site tel que www.lea-linux.org ou www.trustonme.net ?
Julien
[^] # Re: tutoriel
Posté par Alexis Agahi . Évalué à 2.
Bon je vais quand meme voir ce que je peux faire ;)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.