"GOSa² est un outil en GPL pour gérer les comptes et les systèmes dans un annuaire LDAP." J'étais à la recherche d'un outils qui me permette d'administrer des annuaire LDAP avec des possibilités comme :
- donner aux utilisateurs le droit de modifier leurs infos
- déléguer la création des utilisateurs
- exécuter des scripts lors de certaines actions
- faciliter l'administration des annuaires
Je vais donc m'intéresser à ce projet et rédiger quelques articles sur cette expérience. Ce premier article concerne l'installation du projet sur un serveur Debian Squeeze.
Installation sur le serveur
Ajouter les backports Squeeze et le dépôt Gosa dans le fichiers sources.list :
#
# Squeeze Backports
#
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
#
# GOsa
#
deb http://oss.gonicus.de/pub/gosa/debian-squeeze/ ./
Puis :
# apt-get update
On installe le serveur ldap :
# apt-get install slapd ldap-utils
# /etc/init.d/slapd stop
GOsa ne fonctionne pas avec la nouvelle méthode de gestion de configuration d'OpenLdap, il faut donc repasser à la configuration sur le fichier de conf slapd.conf en modifiant /etc/default/slapd :
SLAPD_CONF="/etc/ldap/slapd.conf"
Puis créer le fichier /etc/ldap/slapd.conf :
# Configuration globale
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/nis.schema
#for gosa
include /etc/ldap/schema/gosa/gosystem.schema
include /etc/ldap/schema/gosa/gofon.schema
include /etc/ldap/schema/gosa/goto.schema
include /etc/ldap/schema/gosa/gofax.schema
include /etc/ldap/schema/gosa/goserver.schema
include /etc/ldap/schema/gosa/samba3.schema
include /etc/ldap/schema/gosa/gosa-samba3.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel stats
modulepath /usr/lib/ldap
moduleload back_hdb
# Database
database hdb
suffix "dc=guidtz,dc=local"
rootdn "cn=admin,dc=guidtz,dc=local"
rootpw {SSHA}0zJjKfrU0fnEKGf8N+jCgYg/93q33UIX
directory /var/lib/ldap
index objectClass,cn eq
# ACLs
access to attrs=userPassword,shadowMax,shadowExpire
by dn="cn=admin,dc=guidtz,dc=local" write
by anonymous auth
by self write
by * none
#Autorisation générique
access to dn="ou=(people|groups),dc=guidtz,dc=local"
by dn="cn=admin,dc=guidtz,dc=local" write
by * read
access to *
by dn="cn=admin,dc=guidtz,dc=local" =wrscx
by * read
by anonymous auth
Définir un mot de passe avec : slappasswd
NE PAS REDEMARRER LDAP MAINTENANT
Installer les bases du projet et quelques plugins (on pourra rajouter des plugins par la suite) :
# apt-get install gosa=2.7.1-1 gosa-schema=2.7.1-1 gosa-plugin-rsyslog=2.7.1-1 gosa-plugin-mail=2.7.1-1
ON PEUT REDEMARRER SLAPD MAINTENANT
# /etc/init.d/slapd start
Créer le vhost Apache (de préférence en https) et suivre la procédure d'installation :
# mkdir -p /var/www/gosa.guidtz.local/{etc,var/log}
Puis
# vi /var/www/gosa.guidtz.local/etc/apache.conf
<VirtualHost *:80>
ServerName gosa.guidtz.local
Redirect / https://gosa.guidtz.local/
</VirtualHost>
<VirtualHost *:443>
ServerName gosa.guidtz.local
LogLevel warn
ErrorLog "|nice -n 10 /usr/sbin/cronolog /var/www/gosa.guidtz.local/var/log/apache2/%Y/%W/%d-error.log"
CustomLog "|nice -n 10 /usr/sbin/cronolog /var/www/gosa.guidtz.local/var/log/apache2/%Y/%W/%d-access.log" combined
DocumentRoot /usr/share/gosa/html
<Directory /usr/share/gosa/html>
DirectoryIndex setup.php
php_admin_flag engine on
php_admin_flag register_globals off
php_admin_flag allow_call_time_pass_reference off
php_admin_flag expose_php off
php_admin_flag zend.ze1_compatibility_mode off
php_admin_flag register_long_arrays off
php_admin_flag magic_quotes_gpc on
php_admin_value upload_tmp_dir /var/spool/gosa/
php_admin_value session.cookie_lifetime 0
include /etc/gosa/gosa.secrets
</Directory>
</VirtualHost>
# cd /etc/apache2/sites-available/
# ln -s /var/www/gosa.guidtz.local/etc/apache.conf ./001-gosa.guidtz.local
# a2ensite 001-gosa.guidtz.local
# /etc/init.d/apache2 reload
Finalisation de l'installation
On passe maintenant sur la phase de paramétrage du produit en allant sur l'url définie dans le vhost :
Cliquer sur migrer et créer un admin
Créer le fichier /etc/gosa/gosa.conf et appliquer les droits comme défini
Finalisation
Petite modifiaction avant de créer les premiers utilisateurs, je veux que le dn soit de la forme uid=xxx,ou=people,... il faut donc modifier le fichier /etc/gosa/gosa.conf vers la ligne 384 :
remplacer :
<location name="default"
config="ou=gosa,ou=configs,ou=systems,dc=guidtz,dc=local">
par
<location name="default"
config="ou=gosa,ou=configs,ou=systems,dc=guidtz,dc=local"
accountPrimaryAttribute="uid">
On verra dans les prochains articles comment créer des utilisateurs, comme créer des acls pour autoriser les utilisateurs à modifier leurs informations, comment créer des templates d'utilisateurs, etc ...