Dans le cadre de ma thèse, je dois utiliser SELinux. SELinux est une extension du noyau Linux implémentant le contrôle d’accès mandataire (MAC). Le MAC permet de poser des restrictions d’accès (read, write, etc.) à des sujets (utilisateur, processus etc.) sur des objets (fichiers, socket réseau etc.). Même root doit se plier à ce contrôle d’accès. Les UNIX traditionnels reposent plutôt sur un contrôle d’accès discrétionnaire (DAC) où les permissions sont définies “à la discrétion” du possesseur de l’objet avec une omnipotence de root.
Pour ce qui est de l’ouvrage je l’ai trouvé très bon. La problématique est bien introduite, les bases des différents contrôle d’accès sont bien posées. La présentation de l’architecture de SELinux est concise et appuyée par des schémas clairs. Des cas concrets d’utilisations sont détaillés (notamment sous Fedora) et beaucoup d’outils périphériques sont introduits. Bref, devant la pauvreté (en volume) des ouvrages consacrés à ce sujet et le côté “éparse” des ressources disponibles sur le net traitant de ce sujet la possession de ce livre est un MUST.
Monthly Archive for November, 2008
Petit billet du lundi matin. J’ai mis en place munin sur mon réseau. C’est un petit outils de monitoring assez léger pour ce qui est supervision des performances systèmes. J’ai fait l’installation à partir du gestionnaire de paquet Debian dans la mesure ou la version n’était pas trop loin de la version courante.
Une fois l’installation réalisée j’ai souhaité que l’interface web de munin soit consultable sur une URL type http://munin.mon.domaine.fr et que l’accès soit restreints aux utilisateurs enregistrés dans le LDAP (l’extension vers la restriction au niveau d’un groupe n’est pas compliquée à faire et largement documentée).
Mon instance d’Apache est en version 2 (version courante etch) et mon OpenLDAP utilise le STARTTLS. Les certificats ont été générés avec le fameux script CA.pl.
Fichier /etc/apache2/sites-available/munin :
<VirtualHost *:80>
ServerAdmin admin@mon.domaine.fr
ServerName munin.mon.domaine.fr
DocumentRoot /var/www/munin
LDAPTrustedClientCert CERT_BASE64 /etc/ldap/ssl/cacert.pem
<Location "/">
AuthBasicProvider ldap
AuthType Basic
AuthzLDAPAuthoritative off
AuthName "Compte LDAP"
AuthLDAPURL ldap://host.mon.domaine.fr:389/ou=logins,o=People,d
c=dom,dc=domaine,dc=fr?uid?sub?(objectClass=*) STARTTLS
require valid-user
</Location>
</VirtualHost>Pour authentifier sur un groupe POSIX (ici le groupe supervision) :
AuthLDAPGroupAttribute memberUid AuthLDAPGroupAttributeIsDN off Require group cn=supervision,ou=groups,dc=mon,dc=domaine,dc=fr
Dernier point, le AuthzLDAPAuthoritative qu’il faut positionner à “off” sinon çamarchepa car comme il est dit dans la documentation Apache :
Note that if you use a Require value from another authorization module, you will need to ensure that AuthzLDAPAuthoritative is set to off to allow the authorization phase to fall back to the module providing the alternate Require value. When no LDAP-specific Require directives are used, authorization is allowed to fall back to other modules as if AuthzLDAPAuthoritative was set to off.