O que acontece com a autenticação do usuário LDAP e os compartilhamentos do diretório inicial do NFS quando estão fora da rede?

8

Atualmente tenho várias máquinas na rede doméstica que são uma mistura de desktops e laptops estáticos. Ele está ficando incontrolável para mim e impraticável para todos eles terem diretórios de usuário locais, configurações e segurança, então estou pensando em usar o LDAP para gerenciamento de usuários comuns e o NFS para diretórios compartilhados.

O que acontece quando um dos laptops está na estrada? A rede doméstica está inacessível, por isso a autenticação falhará e voltará para o armazenamento local? Além disso, quando o laptop retorna, há uma maneira de ressincronizar o armazenamento doméstico para o servidor NFS?

    
por Jim 16.10.2010 / 08:23

2 respostas

6

Nem o NFS nem o LDAP suportam a operação desconectada: isto é, quando o laptop não pode alcançar os servidores, ele não será capaz de acessar Diretórios montados em NFS, nem será capaz de realizar pesquisas de usuários. Basicamente, ficará preso.

Algumas soluções alternativas podem ser as seguintes.

Em vez de criar diretórios iniciais via NFS, você pode manter os diretórios locais diretórios um uso uníssono para sincronizar -los com o único no servidor central. Você pode correr em uníssono cron, guardado por um teste que aborta a operação se o servidor estiver inacessível. This post on AskUbuntu e este outro um fornecer uma discussão sobre o tema da sincronização e alguns úteis sugestões.

Com relação ao problema de autenticação / autorização do usuário, as soluções giram em torno de usar o libnss-db como uma fonte para o usuário informação:

  • Instale libnss-db e configure /etc/nsswitch.conf para pesquisar a db source além do regular files :

    passwd: arquivos db   grupo: arquivos db   shadow: arquivos db

    Os arquivos de origem db estão localizados em /var/lib/misc ( /var/lib/misc/passwd.db etc.) Você pode então manter uma cópia mestre desses arquivos em seu servidor central e sincronizar os clientes com rsync + cron . Desvantagens: não há ready-made scripts de gerenciamento para gerenciar os arquivos db no servidor (que eu sei de), além de você incorrer em um atraso de sincronização e ter que configurar uma maneira para rsync se conectar ao servidor mestre.

  • Os pacotes nss-updatedb e libpam-ccreds fornecem um produto de limpeza maneira de configurar: com nss-updatedb você pode recriar localmente o passwd.db e group.db , enquanto a informação shadow é gerenciado por libpam-ccreds . Instruções de como configurá-las podem ser encontrado nos arquivos README que acompanham os pacotes.

por Riccardo Murri 16.10.2010 / 11:55
2

Arquivos

Quanto aos arquivos, eu iria para uma sincronização baseada em rede para arquivos comuns (digamos Ubuntu One ou Dropbox ) e depois ter uma pasta compartilhada para arquivos maiores (talvez Música, Fotos, Vídeo e ISOs do Ubuntu). Isso pode ser uma montagem do NFS, que quando falhar não importa muito, ou um compartilhamento do Samba, ou provavelmente uma dentre várias outras tecnologias.

LDAP

A falha do LDAP definitivamente causa problemas. Todos os tipos de contas do sistema que você normalmente não conhece não podem ser traduzidos (nome < - > id number) e o sistema irá, na melhor das hipóteses, travar repetidamente por um minuto enquanto espera por uma resposta do LDAP servidor antes de voltar ao sistema local. Ou o sistema pode simplesmente travar e falhar completamente.

Existem algumas maneiras de contornar isso . Você pode configurar uma cópia local e sincronizá-la de várias maneiras - veja outras respostas a essa pergunta e à pergunta vinculada. Você também pode informar ao LDAP para não obter os usuários do sistema do diretório LDAP, mas de arquivos locais. Em nossos servidores, colocamos o seguinte no final de nosso 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

Você gostaria de ter certeza de que todos os usuários do sistema estão nessa lista. Mesmo assim, provavelmente não é suficiente para o uso do laptop.

Na página do manual 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.

Então, basicamente, o LDAP finge que não conhece esses usuários sem nem mesmo entrar em contato com o servidor master, então o NSS recai sobre os usuários locais e o sistema funciona bem.

Uma última idéia é que, se você estiver disposto a gastar o tempo aprendendo LDAP, você pode aprender um pouco do fantoche básico e use-o para manter todos os seus usuários iguais em todos os sistemas - consulte esta receita de fantoches por exemplo. O Puppet permitirá que você faça muitas outras coisas também - instalando pacotes comuns, configurações comuns de vários aspectos ...

    
por Hamish Downer 16.10.2010 / 17:09