Authentifier un poste Fedora sur les comptes de votre SME

Grâce au serveur LDAP inclus dans SME Server (>= 8b6), vous pouvez utiliser les comptes utilisateurs sur vos stations GNU/Linux, dont Fedora. Et grâce à SSSD, vous pourrez utiliser ces comptes même hors ligne. Donc, plus besoin de créer un compte local en plus du compte réseau

Voilà la marche à suivre pour configurer un poste de travail sous Fedora (testé avec Fedora 14):

Installer les outils nécessaires

yum install oddjob-mkhomedir sssd policycoreutils-python

Préparer l'environnement

Les répertoire personnels de votre station seront, comme sur votre serveur SME stockés dans /home/e-smith/fies/users, il faut donc préparer le terrain pour éviter que SELinux bloque tout:

mkdir -p /home/e-smith/files/users/ semanage fcontext -a -e /home /home/e-smith/files/users restorecon -R /home/e-smith/files/users restorecon -R /var/lib/sss

Il faut ensuite configurer le module oddjob_mkhomedir (qui s'occupera de créer les répertoires personnels au premier login) pour qu'il utilise un umask raisonnable. Pour cela, il faut éditer le fichier /etc/oddjobd.conf.d/oddjobd-mkhomedir.conf et modifier les directives -u en les faisant passer de 0002 à 077:

<?xml version="1.0"?> <!-- This configuration file snippet controls the oddjob daemon. It provides access to mkhomedir functionality via a service named "com.redhat.oddjob_mkhomedir", which exposes a single object ("/"). The object allows the root user to call any of the standard D-Bus introspection interface's methods (these are implemented by oddjobd itself), and also defines an interface named "com.redhat.oddjob_mkhomedir", which provides two methods. --> <oddjobconfig> <service name="com.redhat.oddjob_mkhomedir"> <object name="/"> <interface name="org.freedesktop.DBus.Introspectable"> <allow min_uid="0" max_uid="0"/> <!-- <method name="Introspect"/> --> </interface> <interface name="com.redhat.oddjob_mkhomedir"> <method name="mkmyhomedir"> <helper exec="/usr/libexec/oddjob/mkhomedir -u 077" arguments="0" prepend_user_name="yes"/> <!-- no acl entries -> not allowed for anyone --> </method> <method name="mkhomedirfor"> <helper exec="/usr/libexec/oddjob/mkhomedir -u 077" arguments="1"/> <allow user="root"/> </method> </interface> </object> </service> </oddjobconfig>

Configurer SSSD

La configuration de SSSD se trouve dans le fichier /etc/ssshd/sssd.conf. Dans ce fichier, il faut principalement configurer le domaine SSSD qui sera utilisé:

domain = sme

Puis rajouter une section pour notre domaine:

[domain/LDAP]
id_provider = ldap
auth_provider = ldap
ldap_schema = rfc2307
ldap_uri = ldap://sme.domain.org
ldap_default_bind_dn = uid=auth,ou=Users,dc=domain,dc=org
ldap_default_authtok = something_very_secret
ldap_default_authtok_type = password
ldap_search_base = dc=domain,dc=org
ldap_user_search_base = ou=Users,dc=domain,dc=org
ldap_group_search_base = ou=Groups,dc=domain,dc=org
ldap_user_object_class = inetOrgPerson
ldap_user_gecos = cn
ldap_tls_reqcert = hard
ldap_tls_cacert = /etc/pki/tls/certs/ca.pem
ldap_id_use_start_tls = true
# à dé-commenter si votre serveur SME est une iPasserelle
# ldap_user_shell = desktopLoginShell
cache_credentials = true
enumerate = true

Dans cet exemple:

sme.domain.org est le nom DNS de votre SME

auth est un compte valide sur votre SME

domain.org est votre domaine principal sur SME

/etc/pki/tls/certs/ca.pem contient la CA qui a signé le certificat de votre SME

la ligne ldap_user_shell peut être dé-commenté si votre serveur est une iPasserelle. L'attribut ldap desktopLoginShell permet de spécifier un shell pour le serveur iPasserelle lui-même (loginShell) et un shell différent pour les stations. Si cette ligne est active, le système Fedora utilisera la valeur stockée dans desktopLoginShell au lieu de loginShell. La valeur de ces attributs peut être modifié dans le panel “Informations Utilisateurs” de votre iPasserelle

Configurer le tout

Il ne reste plus qu'à configurer le système pour utilsier SSSD. Cette configuration se fait assez simplement avec l'outil authconfig:

authconfig --enablemkhomedir --enablesssd --enablesssdauth --update

Et voilà, enjoy