Intégration de clients linux sur un serveur Sambaedu3
Transcription
Intégration de clients linux sur un serveur Sambaedu3
Intégration de clients linux sur un serveur Sambaedu3 1_ Pré-requis : Les tests pour l'intégration de clients linux sur un serveur Sambaedu3 ont été fait sur : - Un client linux Debian Sarge version 3.1-r1 installé à partir du CD d'installation “debian-31r1a-i386-netinst.iso” disponible ici : http://cdimage.debian.org/debian-cd/3.1_r1/i386/isocd/debian-31r1a-i386-netinst.iso. La version du noyau linux utilisée est la 2.6.15, avec le support cifs, afin de bénéficier de l'option “nobrl”. Cette option permet de désactiver la gestion des verrous sur des portions de fichier (pour le client mail Evolution par exemple). Attention, le noyau fourni par défaut avec la distribution Debian Sarge est la version 2.6.8. - Un serveur Sambaedu3 version 0.97-1 installé avec le CD digloo-se3-sarge-2.13.iso, avec un noyau linux 2.6.13. le CD est disponible ici : http://wawadeb.crdp.ac-caen.fr/iso/digloo-se3sarge-2.13.iso. 2_ Intégration du client à l'annuaire LDAP de Sambaedu3 Toutes ces manipulations sont à faire en mode texte dans la mesure où aucun compte utilisateur n'existe encore permettant de réaliser ces opérations sous le système X window. 2.1_ Installation des packages Deux librairies doivent être installés : # apt-get install libnss-ldap libpam-ldap Ces librairies amènent de nombreuses questions pendant leur configuration : Hôte du serveur LDAP : 192.168.0.252 (à changer suivant votre serveur se3) Nom distingué ("dn") de la base des recherches : ou=clg-essais-sourches,ou=ac-toto,ou=education,o=gouv,c=fr (voir configuration du se3) Version de LDAP : 3 La base de données demande-t-elle une identification ? -> Non Le fichier de configuration doit-il être lisible et modifiable uniquement par son propriétaire ? Non Make local root Database admin : Non (Attention par défaut c'est la réponse « oui » qui est affichée) La base de données nécessite de se connecter : Non Compte du super-utilisateur : cn=admin (voir configuration du se3) Mot de passe du compte du super-utilisateur : “mot de passe de la base ldap du se3” (voir configuration du se3) Méthode de chiffrement pour les changements de mots de passe : md5 2.2_ Modification des fichiers de configuration Ensuite, deux fichiers sont à modifier : /etc/nsswitch.conf et /etc/pam.d/login. 1 2.2.1_ /etc/nsswitch.conf # vi /etc/nsswitch.conf Remplacez les entrées : passwd: group: shadow: compat compat compat Par : passwd: group: shadow: files ldap files ldap files ldap 2.2.2_ /etc/pam.d/login Attention, pam constituant le mécanisme d'authentification sous linux, il est impératif d'ouvrir aux moins deux consoles root de manière à être certain de pouvoir conserver la main sur la station en cas de fausse manipulation, le login pouvant devenir impossible si une mauvaise manipulation est faite dans pam. # cp /etc/pam.d/login /etc/pam.d/login.ori # > /etc/pam.d/login # vi /etc/pam.d/login Mettez ceci dans le fichier : auth requisite pam_nologin.so auth required pam_env.so @include common-auth @include common-account @include common-session session required pam_limits.so @include common-password 2.2.3_ /etc/pam.d/common-auth # cp /etc/pam.d/common-auth /etc/pam.d/common-auth.ori # > /etc/pam.d/common-auth # vi /etc/pam.d/common-auth Mettez ceci dans le fichier : auth auth auth optional pam_mount.so sufficient pam_ldap.so use_first_pass required pam_unix.so use_first_pass 2.2.4_ /etc/pam.d/common-account 2 # cp /etc/pam.d/common-account /etc/pam.d/common-account.ori # > /etc/pam.d/common-account # vi /etc/pam.d/common-account Mettez ceci dans le fichier : account sufficient pam_ldap.so use_first_pass account required pam_unix.so use_first_pass 2.2.5_ /etc/pam.d/common-session # cp /etc/pam.d/common-session /etc/pam.d/common-session.ori # > /etc/pam.d/common-session # vi /etc/pam.d/common-session Mettez ceci dans le fichier : session session optional required pam_mount.so pam_unix.so use_first_pass 2.2.6_ /etc/pam.d/common-password # cp /etc/pam.d/common-password /etc/pam.d/common-password.ori # > /etc/pam.d/common-password # vi /etc/pam.d/common-password Mettez ceci dans le fichier : password required pam_unix.so nullok obscure min=8 md5 3_ Le répertoire personnel des utilisateurs importé du serveur se3 Plusieurs méthodes sont possibles pour importer le répertoire personnel des utilisateurs : - Le montage NFS mais il n'est pas un protocole sécurisé, son installation doit être sérieusement réfléchie. Une personne passant root sur une machine cliente pourra faire le montage NFS et avoir potentiellement accès à toutes les données du montage, dans notre cas tous les fichiers de tous les utilisateurs (élèves accédant aux données des enseignants : corrections de devoirs ou sujets d'examen, ou encore aux données de leurs camarades). D'autre part, NFS présente potentiellement un certain nombre de failles, on consultera avec 3 profit le NFS-HOWTO (en français) : http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/fr/html-1page/NFS-HOWTO.html - Le montage CIFS (Common Internet File System) qui est le montage utilisé par Samba 3 et par MS-Windows depuis 1998. Le système de fichier CIFS supporte les sockets et les liens symboliques. - Le montage SMBFS (Server Message Block File System), d'où SMB, qui est l'ancien nom du protocole permettant le partage de ressources CIFS. Mais il est encore très largement utilisé sous Linux. Par contre ce système de fichiers ne permet pas de créer des sockets et des liens symboliques. Il ne nous permettra pas de monter correctement les homes des utilisateurs pour faire fonctionner Gnome et Kde. 3.1_ Sur le serveur Sambaedu3 Il y a très peu de chose à faire et peut être que la modification sera faite lors d'une prochaine mise à jour sur le se3. Sur la dernier version du serveur il suffit de rajouter un fichier dans le répertoire /etc/samba/ : smb_CIFSFS.conf # vi /etc/samba/smb_CIFSFS.conf Et d'y ajouter les lignes suivantes : 4 mangled names = false unix extensions = yes [netlogon] comment = NetLogon path = /home/netlogon browseable = No locking = No root preexec = /usr/share/se3/sbin/logonpl %u %m %a [homes] comment = Repertoire prive de %u sur %h path = /home/%u read only = No root preexec = /usr/share/se3/sbin/mkhome.pl %u %m; /usr/share/se3/sbin/connexion.pl %u %m %I map archive = no case sensitive = yes delete readonly = yes mangled names = false Normalement il n'est pas utile de relancer le serveur samba puisque ce fichier est appelé uniquement quand un montage en cifs (client linux) se fait mais ça ne coûte rien de le faire : # /etc/init.d/samba restart 3.2_ Sur le client Sur le client, on commencera par installer les packages suivants : #apt-get install lsof libpam-mount smbfs samba-common Ensuite on va procéder à un montage manuel pour vérifier que tout fonctionne avec un utilisateur présent dans la base ldap du se3 : # mount.cifs //192.168.0.252/admin /mnt/ -o user=admin,password=(mot de passe admin),uid=admin,gid=admin,setuids,mapchars,serverino,nobrl,noperm,iocharset=iso8859-15 5 La commande mount doit vous renvoyer ceci : //192.168.0.252/admin on /mnt type cifs (rw,mand) Modifiez maintenant le fichier pam_mount.conf pour que le montage se fasse de façon automatique : # cp /etc/security/pam_mount.conf /etc/security/pam_mount.conf.ori # vi /etc/security/pam_mount.conf Remplacer la ligne : cifsmount /bin/mount -t cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o "username=%(USER)%(before=\",\" OPTIONS)" par : cifsmount /sbin/mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o "username=%(USER)%(before=\",\" OPTIONS)" puis rajouter à la fin du fichier : #volume * cifs 192.168.0.252 netlogon /home/netlogon mapchars,serverino,nobrl,iocharset=iso8859-15 - volume * cifs 192.168.0.252 & /home/& uid=&,gid=&,mapchars,serverino,nobrl,iocharset=iso8859-15 - volume * smb 192.168.0.252 Classes /home/&/Desktop/Classes uid=&,gid=&,iocharset=iso8859-15 - #volume * cifs 192.168.0.252 Classes /home/&/Desktop/Classes uid=&,gid=&,mapchars,serverino,nobrl,noperm,iocharset=iso8859-15 - volume * smb 192.168.0.252 Progs /home/&/Progs uid=&,gid=&,iocharset=iso8859-15 - #volume * cifs 192.168.0.252 Progs /home/&/Progs uid=&,gid=&,mapchars,serverino,nobrl,noperm,iocharset=iso8859-15 - volume * smb 192.168.0.252 Docs /home/&/Desktop/Partages uid=&,gid=&,iocharset=iso8859-15 - #volume * cifs 192.168.0.252 Docs /home/&/Desktop/Partages uid=&,gid=&,ars,serverino,nobrl,noperm,iocharset=iso8859-15 - - Remplacez l'adresse ip 192.168.0.252 par celle de votre serveur ou son nom de domaine (ou alias) si un serveur DNS est installé sur votre réseau. L'emplacement du montage des répertoires Classes, Progs, et Partages (Docs), n'est peut être pas la plus judicieuse. La première ligne qui permet de monter le répertoire netlogon sur le serveur n'est pour le moment pas obligatoire. Si à l'avenir des scripts sont à exécuter lors de la connexion d'un utilisateur ils seront placés dans celui-ci. Pourquoi monter les lecteurs Classes, Progs, et Partages (Docs) sur un système de fichier SMBFS au lieu du CIFS ? Sambaedu3 utilise les ACLs sur ces répertoires (Système de fichier NFS). Nautilus, qui est le navigateur de fichier par défaut de Gnome, n'arrive pas à gérer correctement les répertoires montés en CIFS avec des ACLs (aucun souci avec konqueror). Par contre avec un système de fichier SMBFS ça fonctionne correctement. C'est pour cette raison que je les monte sous ce format la. Si le démontage des répertoires ne se fait pas correctement lors de la déconnexion de l'utilisateur changez dans le fichier /etc/login.defs : CLOSE_SESSIONS no par : CLOSE_SESSIONS yes Je n'ai pas testé le fonctionnement de tous les logiciels sous Gnome et Kde. Evolution est l'un 6 des logiciels qui posaient le plus de problème mais sur mon client de test il fonctionne et je n'ai pas encore trouvé de bogue ... Mickaël POIRAULT Avec l'aide précieuse de Jean DIRAISON et Yves POTIN 7