Au CC-IN2P3 un grand nombre de systèmes et applications cohabitent. Pour faciliter la gestion de cette infrastructure complexe, il est nécessaire de déléguer des privilèges.
Ceci n’est envisageable qu’en gérant finement quel utilisateur authentifié sera autorisé à passer telle commande, obtenant le résultat de façon sécurisée.
Ces questions d’authentification, d’autorisation et d’intégrité des données transférées sont en passe d’être résolues au CC-IN2P3 avec le choix du logiciel remctl [1].
remctl est une application, écrite en C, de type client / serveur maintenue par Russ Allbery, sous license “BSD-like” [2].
Il possède des interfaces avec de nombreux langages : Java, PHP, Python, Ruby et Perl. remctl reste très simple, aussi bien dans son code, dans le déploiement et la configuration du serveur que dans l’utilisation du client. Il utilise le mécanisme Kerberos [3] de la GSS-API [4] pour assurer la confidentialité des échanges et l’authentification des utilisateurs.
Par exemple : le responsable d’un groupe d’utilisateur doit fixer des quotas d’utilisation de service. La gestion de quotas demande des privilèges élevés que l’application ne permet pas d’attribuer à tout utilisateur. Ces privilèges seront mis temporairement à sa disposition par exécution sur un serveur central pour :
authentifier l’utilisateur par la présentation d’un ticket Kerberos. Ceci permet de déléguer ces droits à un utilisateur, un processus ou une machine donnés,
autoriser l’action : selon des critères variés allant de la présence de son nom dans un fichier de configuration à l’appartenance à un groupe, délais et heure d’expiration, paramètres valides, ...
acquérir les privilèges nécessaires au fonctionnement,
exécuter l’action,
retourner de façon sécurisée le résultat.
Pour arriver à ce niveau de délégation, les administrateurs de services du CC-IN2P3 doivent fournir la commande et les paramètres autorisés. Ils précisent les ACL [5] de configuration du serveur : quel type d’utilisateur sera autorisé à passer cette commande, quelles options sont valides.
Les déploiements du serveur remctl et de son fichier de configuration sont effectués au CC-IN2P3 par puppet.
Remctl est un outil de choix pour les sites dont l’authentification repose sur Kerberos. Il permet au CC-IN2P3 l’abandon de ses anciens modes de délégation de privilèges pour adopter un système moderne et modulaire, en phase avec ses outils de déploiement de configuration.
Les développements initiés au CC-IN2P3 pour intégrer cet outil à son environnement profitent à tous : le module puppet remctl [6] est mis à disposition de la communauté. Il est devenu le module officiel remctl et est activement maintenu par Rémi Ferrand.
De plus, Rémi est fortement impliqué dans le développement de remctl. Il a récemment fourni le nouveau type d’ACL “localgroup”, qui permet de filtrer les utilisateurs selon leur appartenance à des groupes (LDAP, NIS, etc...).
Compte tenu de sa simplicité, de la sécurité et de la flexibilité qu’il apporte, remctl est une excellente solution de délégation de privilèges distants qui trouve de nombreux cas d’utilisation au CC-IN2P3. La migration est en marche !
REMI FERRAND ET XAVIER CANEHAN