O HOWTO do NIS(YP)/NYS/NIS+

Anterior

Próximo


7. Configurando o cliente NIS

7.1. O daemon ypbind

Após haver compilado ou instalado o pacote, é hora de configurá-lo. Um lugar usual para o daemon ypbind é o diretório /usr/sbin. Algumas pessoas dizem que o ypbind não é necessário em sistemas com NYS; Isto é incorreto, pois ypwhich e ypcat sempre o necessitam.

É necessário fazer isso como superusuário (root), é claro. Os outros executáveis (ypwhich, ypcat, yppasswd, yppoll, ypmatch) devem ficar em um diretório acessível a todos os usuários, normalmente /usr/bin.

Versões mais novas do ypbind possuem um arquivo de configuração chamado /etc/yp.conf. É possível configurar um servidor NIS nele. Para maiores informações leia o manual do ypbind(8). Para o NYS também é necessário um arquivo. Por exemplo:

ypserver 10.10.0.1
ypserver 10.0.100.8
ypserver 10.3.1.1

Se o sistema consegue resolver nomes de máquinas sem NIS, é possível utilizar o nome, caso contrário é necessário usar o endereço IP. ypbind 3.3 possui um bug e irá usar apenas a última entrada (ypserver 10.3.1.1 no exemplo). Todas as outras entradas serão ignoradas, enquanto o ypbind-mt lida corretamente com estas entradas, e usará o que responder primeiro.

Pode ser uma boa idéia testar ypbind antes de incorporá-lo aos arquivos de incialização do sistema. Para testar o ypbind é necessário fazer o seguinte:

Neste ponto será possível usar programas clientes como ypcat, etc. Por exemplo, ypcat passwd.byname fornecerá a base de dados NIS completa.

IMPORTANTE: Caso o procedimento de teste tenha sido ignorado, tenha certeza que o nome do domínio NIS esteja configurado, e que o diretório esteja criado.

    /var/yp

Este diretório DEVE existir para o ypbind iniciar com sucesso.

Para verificar o nome de domínio, o comando /bin/ypdomainname do yp-tools 2.2. Ele utiliza a função yp_get_default_domain() que é mais restritiva, e não permite, por exemplo, o nome de domínio "(none)", que é o padrão no Linux e causa uma série de problemas.

Caso o teste tenha funcionado agora é hora de verificar os arquivos de inicialização do sistema, de forma que ypbind seja iniciado no momento da inicialização e seu sistema aja como um cliente NIS. Tenha certeza que domainname esteja configurado antes de iniciar o ypbind.

E é isso. Reinicie a máquina e observe as mensagens de inicialização para verificar se ypbind realmente está rodando.

7.2. Configurando um cliente NIS usando o NIS tradicional

Para consultas de hosts você deve configurar (ou adicionar) “nis” à ordem de busca no arquivo /etc/host.conf. Favor ler o manual "resolv+.8" para maiores detalhes.

Adicione a seguinte linha ao /etc/passwd nos seus clientes NIS:

+::::::

É possível usar os caracteres + e – para incluir/excluir ou alterar usuários. Caso você deseje excluir o usuário guest apenas adicione -guest ao seu arquivo /etc/passwd. Caso deseje usar um shell diferente (por exemplo, ksh) para o usuário “linux” (exemplo apenas), tudo bem. Apenas adicione "+linux::::::/bin/ksh" sem as aspas, no /etc/passwd. Campos no qual não se deseja alteração devem ser mantidos vazios. É também possível usar Netgroups para controle de usuários.

Por exemplo, para permitir o acesso a login apenas para os usuários miquels, dth e ed, e todos os membros do grupo sysadmin, mas ter os dados das contas de todos os outros usuários disponível, use:

      +miquels:::::::
      +ed:::::::
      +dth:::::::
      +@sysadmins:::::::
      -ftp
      +:*::::::/etc/NoShell

Preste atenção que no Linux também é possível alterar o campo senha, como feito neste exemplo. Também foi removido o login "ftp", de forma que não será mais reconhecido, e acesso anônimo ao ftp não funcionará mais.

O grupo será algo como

sysadmins (-,software,) (-,kukuk,)

IMPORTANTE: O recurso netgroup está implementado a partir da libc 4.5.26. Caso possua uma versão anterior a esta, qualquer usuário na base de dados NIS poderá acessar sua máquina ao você rodar ypbind!

7.3. Configurando um cliente NIS usando NYS

Tudo que é necessário é que o arquivo de configuração NIS (/etc/yp.conf) aponte o servidor correto. Também o arquivo de configuração Name Services Switch (/etc/nsswitch.conf) deve estar corretamente configurado.

É necessário instalar o ypbind. Não é necessário para a libc, mas as ferramentas NIS(YP) precisam do mesmo.

Caso deseje utilizar o recurso de incluir/excluir usuários (+/-guest/+@admins), deverá habilitar as opções "passwd: compat" e"group: compat" no arquivo nsswitch.conf. Note que não há "shadow: compat"! Deverá ser usado, ao invés disso, "shadow: files nis" neste caso.

O código-fonte do NYS é parte do fonte do libc 5 quando rodar o script “configure”, responda na primeira vez NÃO para a questão "Values correct" então responda SIM para a pergunta "Build a NYS libc from nys".

7.4. Configurando um cliente NIS usando glibc 2.x

A glibc usa o "NIS tradicional", de forma que é necessário iniciar o ypbind. O arquivo de configuração Name Services Switch (/etc/nsswitch.conf) deve ser corretamente configurado. Caso utilize o modo compatível para passwd, shadow ou grupo, deve-se adicionar “+” no final destes arquivos e então será possível utilizar o recurso de incluir/excluir usuários. A configuração para linux é exatamente a mesma usada para o Solaris 2.x.

7.5. O arquivo nsswitch.conf

O arquivo Network Services Switch (/etc/nsswitch.conf) determina a ordem das buscas realizadas quando uma certa informação é requisitada, exatamente como o arquivo /etc/host.conf determina o modo como pesquisas de hosts são executadas. Por exemplo, a linha

    hosts: files nis dns

Especifica que funções de busca de hosts devem primeiro procurar no arquivo local /etc/hosts, seguido por uma busca NIS e finalmente pelo servidor de nome de domínio(/etc/resolv.conf e named), e que a partir de tal ponto, caso não seja encontrada a requisição correspondente, um erro é retornado. O arquivo deve ser legível por todos os usuários! É possível encontrar mais informações na página do manual (man) nsswitch.5 ou nsswitch.conf.5.

Um bom arquivo /etc/nsswitch.conf para NIS é:

#
# /etc/nsswitch.conf
#
# Um exemplo de arquivo de configuração para Name Service Switch. Este 
# arquivo deve ser ordenado com os usuários mais usados no começo.
#
# A entrada '[NOTFOUND=return]' significa que a busca por uma entrada
# deve parar caso a busca na entrada anterior retornou nada.
# note que caso a busca tenha falado por alguma outra razão
# (como nenhum servidor NIS respondendo) então a busca continua com a próxima entrada.
#
#
# As entradas possíveis são:
#
#       nisplus                 Use NIS+ (NIS versão 3)
#       nis                     Use NIS (NIS versão 2), também chamado YP
#       dns                     Use DNS (Domain Name Service)
#       files                   Use os arquivos locais
#       db                      Use as bases de dados no /var/db
#       [NOTFOUND=return]       Pare de procurar se não encontrou até então
#

passwd:     compat
group:      compat
# Para libc5, deve-se usar shadow: files nis
shadow:     compat

passwd_compat: nis
group_compat: nis
shadow_compat: nis

hosts:      nis files dns

services:   nis [NOTFOUND=return] files
networks:   nis [NOTFOUND=return] files
protocols:  nis [NOTFOUND=return] files
rpc:        nis [NOTFOUND=return] files
ethers:     nis [NOTFOUND=return] files
netmasks:   nis [NOTFOUND=return] files
netgroup:   nis
bootparams: nis [NOTFOUND=return] files
publickey:  nis [NOTFOUND=return] files
automount:  files
aliases:    nis [NOTFOUND=return] files

passwd_compat, group_compat e shadow_compat são entradas suportadas apenas por glibc 2.x. Caso não existam regras shadow no /etc/nsswitch.conf, a glibc usará a regra passwd para buscas. Existem outros módulos para buscas para glib, como hesiod. Para maiores informações, leia a documentação da glibc.

7.6. Senhas Shadow com NIS

Senhas shadow sobre NIS são sempre uma má idéia. A segurança dada pelo uso de shadow é perdida, além de ser um recurso suportado apenas por algumas poucas bibliotecas C linux. Uma boa forma de evitar senhas shadow sobre NIS é colocar apenas os usuários do sistema local em /etc/shadow. Remova as entradas de usuários NIS do arquivo shadow, e coloque as senhas de volta no passwd. De forma que possa usar shadow para login local de superusuário e passwd normal para usuários NIS, além de ter a vantagem de funcionar com todos os clientes NIS.

7.6.1. Linux

A única biblioteca libc para Linux que suporta senhas shadow sobre NIS é a GNU C Library 2.x. A libc5 do Linux não oferece suporte a isso, Bem, a libc5 do Linux compilada com NYS habilitado possui algum código para tal, entretanto severamente problemático em algums casos, e não funciona corretamente com todas as entradas presentes no arquivo shadow. Evite usá-lo.

7.6.2. Solaris

Solaris não suporta senhas shadow sobre NIS.

7.6.3. PAM

Linux-PAM 0.75 versões mais novas suportam senhas shadow sobre NIS caso seja usado o módulo pam_unix.so ou caso seja instalado o módulo extra pam_unix2.so. Sistemas mais antigos, que usam pam_pwdb/libpwdb (por exemplo, o Red Hat Linux 5.x) precisam mudar as entradas presentes no arquivo /etc/pam.d/*Todas as regras pam_pwdb devem ser substituídas por um módulo pam_unix_*.

Um exemplo de arquivo /etc/pam.d/login parece-se com o seguinte:

#%PAM-1.0
auth     requisite      pam_unix2.so            nullok #set_secrpc
auth     required       pam_securetty.so
auth     required       pam_nologin.so
auth     required       pam_env.so
auth     required       pam_mail.so
account  required       pam_unix2.so
password required       pam_pwcheck.so          nullok
password required       pam_unix2.so            nullok use_first_pass use_authtok
session  required       pam_unix2.so            none # debug or trace
session  required       pam_limits.so

Anterior

Home

Próximo

O que é necessário para configurar o NIS?

 

O que é necessário para configurar o NIS+ ?