Installation de GOsa

modifié le : 13 septembre 2022,
par Guillaume Chéramy
 

"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 ...