Stocker votre configuration sudo dans LDAP

Submitted by asyd (not verified) on Wed, 08/26/2009 - 21:10

Introduction

Vous connaissez déjà sans doute sudo, un outil permettant d'autoriser des utilisateurs à exécuter des commandes sous un autre utilisateur (par exemple root) sans connaître le mot de passe ce celui-ci. Nous vos proposons à travers cet article d'utiliser un annuaire LDAP pour stocker votre configuration sudo. Cela à le gros avantage de centraliser la configuration, et donc une administration simplifiée.

La configuration standard

Voici un fichier de configuration classique de sudo :

root ALL=(ALL) ALL
%operator ALL=(ALL) ALL

Ce fichier de configuration est volontairement très simple pour une première approche. Il autorise l'utilisateur root et les membres du groupe operator à exécuter des commandes sous n'importe quel utilisateur. Un appel à la commande sudo -l permet d'obtenir la liste des règles autorisées par l'utilisateur appelant :

% id -a
uid=1000(asyd) gid=1000(asyd) groupes=4(adm),37(operator),1000(asyd)
% sudo -l
User asyd may run the following commands on this host:
(ALL) ALL

Installation

Avant tout, vous devez vérifier que le sudo que vous utilisez est compilé avec le support ldap, pour cela vérifier que votre binaire sudo est linké sur la libldap 

% ldd sudo | grep ldap
libldap.so.5 => /usr/lib/libldap.so.5

Si vous n'obtenez aucun résultat, vous devez recompiler sudo avec l'option --with-ldap

Configuration

Vous disposez donc maintenant d'un sudo compilé avec le support LDAP, la première opération consiste à rajouter le schéma dans votre annulaire LDAP

Installation du schéma LDAP

IPlanet, Sun Directory Server Entreprise Edition, OpenDS

Pour rajouter le schéma, exécuter simplement la commande suivante (depuis le répertoire sources de sudo) :

% cp schema.iPlanet $INSTANCE_ROOT/config/schema/98-sudo.ldif

(Rajouter les options -Wx si vous utilisez un ldapmodify d'OpenLDAP.)

OpenLDAP

Pour un annuaire OpenLDAP, copier le fichier schema.OpenLDAP dans le répertoire des schémas sous le nom sudo.schema, puis rajouter la ligne de configuration suivante dans le fichier slapd.conf :

schema sudo.schema

Fichier de configuration

Le fichier sudoers n'est plus nécessaire, les informations nécessaires sur le serveur LDAP sont stockés dans le fichier de configuration ldap.conf. Attention l'emplacement de ce fichier est spécifique à chaque distribution et système d'exploitation !

Voici un exemple très simple des directives nécessaires pour sudo :

host ldap.domain.tld
port 389
sudoers_base ou=sudo,ou=Apps,dc=asyd,dc=net

Les objets LDAP

Il nous reste maintenant à configurer les différents objets LDAP. Avant tout, il convient de préciser que l'approche de configuration LDAP est différente par rapport à l'utilisation de fichiers.