web-dev-qa-db-fra.com

Qu'advient-il de l'authentification d'utilisateur LDAP et des partages du répertoire de base NFS lorsque vous êtes en dehors du réseau?

À l'heure actuelle, j'ai plusieurs machines sur le réseau domestique qui combinent ordinateurs de bureau et ordinateurs portables statiques. Cela devient ingérable pour moi et peu pratique pour tous d’avoir des répertoires locaux, des paramètres et une sécurité locale. J’envisage donc d’utiliser LDAP pour la gestion des utilisateurs communs et NFS pour les répertoires personnels partagés.

Que se passe-t-il lorsqu'un des ordinateurs portables est en déplacement? Le réseau domestique est inaccessible, alors l'authentification échouera-t-elle et retombera-t-elle sur le stockage local? En outre, lorsque l'ordinateur portable revient, existe-t-il un moyen de resynchroniser le stockage domestique sur le serveur NFS?

9
Jim

Ni NFS ni LDAP ne prennent en charge les opérations déconnectées: lorsque l’ordinateur portable ne peut pas atteindre les serveurs, il ne pourra pas accéder aux répertoires montés sur NFS ni aux recherches d’utilisateur. Fondamentalement, ce sera bloqué.

Voici quelques solutions de contournement.

Au lieu de monter des répertoires de départ via NFS, vous pouvez conserver les répertoires locaux nison pour les synchroniser avec celui du serveur central. Vous pouvez exécuter unisson à partir de cron, protégé par un test qui annule l'opération si le serveur est inaccessible. Ce post sur AskUbunt et cet autre fournissent une discussion sur le sujet de la synchronisation et quelques suggestions utiles.

En ce qui concerne le problème d’authentification/autorisation des utilisateurs, les solutions reposent sur l’utilisation de libnss-db comme source d’informations utilisateur:

  • Installez libnss-db, puis configurez /etc/nsswitch.conf afin de rechercher la source db en plus de la source normale files:

    passwd: fichiers db groupe: fichiers db shadow: fichiers db

    Les fichiers source db se trouvent dans /var/lib/misc (/var/lib/misc/passwd.db etc.). Vous pouvez ensuite conserver une copie principale de ces fichiers sur votre serveur central et synchroniser les clients avec rsync + cron. Inconvénients: il n'y a pas de script de gestion prêt à l'emploi permettant de gérer les fichiers de base de données sur le serveur (à ma connaissance), de plus, vous subissez un retard de synchronisation et devez configurer un moyen pour que rsync se connecte au serveur maître.

  • Les packages nss-updatedb et libpam-ccreds fournissent un moyen plus simple de le configurer: avec nss-updatedb, vous pouvez recréer localement les passwd.db et group.db, tandis que le shadow les informations sont gérées par libpam-ccreds. Vous trouverez des instructions pour les configurer dans les fichiers README accompagnant les packages.

6
Riccardo Murri

Des dossiers

En ce qui concerne les fichiers, je choisirais une synchronisation sur le réseau pour les fichiers courants (disons buntu One ou Dropbox ), puis un dossier partagé pour les fichiers plus volumineux (peut-être Musique, Photos). , Vidéo et ISO Ubuntu). Cela peut être un montage NFS, qui, en cas d'échec, importe peu, ou un partage Samba, ou probablement l'une des nombreuses technologies.

LDAP

L'échec de LDAP pose définitivement problème. Toutes sortes de comptes système dont vous ne connaissez normalement pas ne peuvent pas être traduits (nom <-> id id) et, dans le meilleur des cas, le système se bloquera de manière répétée une minute à la fois en attendant une réponse du serveur LDAP avant. retomber sur le système local. Ou le système peut simplement se bloquer et échouer complètement.

Il y a certains moyens de contourner cela . Vous pouvez configurer une copie locale et la synchroniser de différentes manières - voir les autres réponses à cette question et à la question associée. Vous pouvez également indiquer à LDAP de ne pas extraire les utilisateurs du système de l'annuaire LDAP, mais des fichiers locaux. Sur nos serveurs, nous avons mis ce qui suit à la fin de notre ldap.conf

# We need to ensure that various things can work without LDAP being available
# for example: booting, ssh in as root, Apache ...
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,daemon,dhcp,dhcpd,games,gdm,gnats,haldaemon,hplip,irc,klog,libuuid,list,lp,mail,man,messagebus,munin,mysql,nbd,news,ntp,nut,polkituser,proxy,Pulse,root,sshd,statd,sync,sys,syslog,uucp,www-data

Vous voulez vous assurer que tous les utilisateurs du système sont dans cette liste. Même alors, ce n'est probablement pas suffisant pour utiliser un ordinateur portable.

À partir de la page de manuel nss_ldap

nss_initgroups_ignoreusers <user1,user2,...,userN>
          This option directs the nss_ldap implementation of initgroups(3)
          to return NSS_STATUS_NOTFOUND if called with a listed  users  as
          its argument.

Donc, fondamentalement, LDAP prétend ne pas connaître ces utilisateurs sans même contacter le serveur maître. Le NSS a donc recours aux utilisateurs locaux et le système fonctionne correctement.

Une dernière idée est que si vous êtes prêt à consacrer votre temps à l’apprentissage LDAP, vous pouvez plutôt apprendre quelques notions de base marionnette et les utiliser pour que tous vos utilisateurs restent les mêmes sur tous les systèmes - voir cette recette de marionnettes par exemple. Puppet vous permettra également de faire beaucoup d'autres choses - installer des paquets communs, mettre en place divers aspects ...

2
Hamish Downer