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

Documents pareils