URL: https://linuxfr.org/users/alag/journaux/mini-tutoriel-sur-la-configuration-svnhttps-ldap-avec-suse-9 Title: Mini tutoriel sur la configuration SVN/HTTPS & LDAP avec SUSE 9.2 ou 9.3 Authors: Alexis Agahi Date: 2005年07月16日T17:01:57+02:00 Tags: Score: 0 Comme j'ai un du faire pas mal de compilation d'article pour effectuer l'installation de subversion avec apache et openldap pour la distribution SUSE, j'ai décidé de rédiger un mini tutoriel. **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(...)](http://search.belnet.be/mirror/ftp.suse.com/suse/i386/9.2/suse/i586/subversion-1.0.8-2.2.i586.rpm) rpm -Uvh [http://search.belnet.be/mirror/ftp.suse.com/suse/i386/9.2/suse/i586(...)](http://search.belnet.be/mirror/ftp.suse.com/suse/i386/9.2/suse/i586/subversion-devel-1.0.8-2.2.i586.rpm) rpm -Uvh [http://ftp.suse.com/pub/suse/i386/9.2/suse/i586/subversion-server-1(...)](http://ftp.suse.com/pub/suse/i386/9.2/suse/i586/subversion-server-1.0.8-2.2.i586.rpm) 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 £spaces£ £/spaces£ dn: cn=root, dc=domain, dc=com objectclass: organizationalRole cn: root £spaces£ £/spaces£ dn: ou=people, dc=domain, dc=com ou: people objectclass: organizationalUnit £spaces£ £/spaces£ 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/(...)](http://phpldapadmin.sourceforge.net/)

AltStyle によって変換されたページ (->オリジナル) /