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

9

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

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

Jim
fonte

Respostas:

6

Nem o NFS nem o LDAP suportam operação desconectada: ou seja, quando o laptop não consegue acessar os servidores, ele não pode acessar nenhum diretório montado em NFS nem executar pesquisas de usuários. Basicamente, ele ficará preso.

Algumas soluções alternativas podem ser as seguintes.

Em vez de mouting diretórios home via NFS, você poderia manter diretórios locais um uso uníssono para sincronizá-los com o que está no servidor central. Você pode executar uníssono do cron, protegido por um teste que interrompe a operação se o servidor estiver inacessível. Este post no AskUbuntu e este outro fornecem uma discussão sobre o tópico de sincronização e algumas sugestões úteis.

Em relação ao problema de autenticação / autorização do usuário, as soluções giram em torno do uso de libnss-dbcomo fonte de informações do usuário:

  • Instale libnss-dbe configure /etc/nsswitch.confpara procurar a dbfonte além das regulares files:

    passwd: files db group: arquivos db shadow: arquivos db

    Os dbarquivos de origem estão localizados em /var/lib/misc ( /var/lib/misc/passwd.dbetc.). Você pode manter uma cópia principal desses arquivos no servidor central e sincronizar os clientes com rsync+ cron. Desvantagens: não há scripts de gerenciamento prontos para gerenciar os arquivos db no servidor (que eu conheço), além de sofrer um atraso de sincronização e precisar configurar uma maneira de rsyncconectar-se ao servidor mestre.

  • O nss-updatedbe libpam-ccredspacotes oferecem uma maneira mais limpa para configurá-lo: com nss-updatedbvocê pode recriar localmente a passwd.dbe group.db, enquanto a shadowinformação é gerida por libpam-ccreds. Instruções sobre como configurá-las podem ser encontradas nos READMEarquivos que acompanham os pacotes.

Riccardo Murri
fonte
@ Jorge: muito obrigado por esta sugestão! Atualizei o texto da resposta.
Riccardo Murri
2

arquivos

Quanto aos arquivos, eu usaria uma sincronização baseada na rede para arquivos comuns (como Ubuntu One ou Dropbox ) e depois teria uma pasta compartilhada para arquivos maiores (talvez ISOs de música, fotos, vídeo e Ubuntu). Pode ser uma montagem NFS, que quando falha não importa muito, ou um compartilhamento Samba, ou provavelmente uma de várias outras tecnologias.

LDAP

A falha no LDAP definitivamente causa problemas. Não é possível traduzir todos os tipos de contas do sistema das quais você normalmente desconhece (nome <-> número de identificação) e, na melhor das hipóteses, o sistema trava repetidamente por um minuto de cada vez enquanto aguarda uma resposta do servidor LDAP antes. voltando ao sistema local. Ou o sistema pode travar e falhar completamente.

Existem algumas maneiras de contornar isso . Você pode configurar uma cópia local e sincronizá-la de várias maneiras - consulte outras respostas a esta pergunta e à pergunta vinculada. Você também pode dizer ao LDAP para não obter os usuários do sistema no diretório LDAP, mas nos arquivos locais. Em nossos servidores, colocamos o seguinte no final de nossaldap.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ê deseja garantir que todos os usuários do sistema estejam nessa lista. Mesmo assim, provavelmente não é suficiente para o uso de 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 sequer entrar em contato com o servidor mestre; portanto, o NSS recorre aos usuários locais e o sistema funciona bem.

Uma última idéia é que, se você estiver disposto a gastar o tempo aprendendo LDAP, poderá aprender alguns bonecos básicos e usá- los para manter todos os usuários iguais em todos os sistemas - veja esta receita de bonecos, por exemplo. O Puppet permitirá que você faça muitas outras coisas - instalação de pacotes comuns, configuração comum de vários aspectos ...

Hamish Downer
fonte