FreeBSD
Autenticação para clientes Unix
NIS (Network Information Services)
O NIS (Network Information Services), também conhecido como YP (Yellow
Pages), foi desenvolvido pela Sun Microsystems para centralizar a administração
de máquinas com o sistema operacional SunOS. Com o tempo, tornou-se um
padrão entre os sistemas Unix Like, servindo geralmente para compartilhar
entre várias máquinas informações como contas de
usuários, grupos, nomes de máquinas etc.
Configuração do Servidor
O FreeBSD possui suporte nativo ao NIS, bastando configurá-lo, sem ter que instalar nada adicional. Para isso, adicione as seguintes linhas ao arquivo /etc/rc.conf:
portmap_enable="YES"
nisdomainname="teste-nis"
nis_server_enable="YES"
nis_yppasswd_enable="YES"
Com a primeira linha, confirmamos que o portmap estará rodando, pois
o NIS utiliza RPC. O parâmetro "nisdomainname" especifica o
nome do domínio NIS, que deve preferencialmente ser diferente do domínio
do hostname. Pode-se configurar o nome que achar mais adequado, mas não
deve ser confundido com o que chamamos simplesmente de domínio: o que
tratamos agora é o "domínio NIS". O parâmetro
"nis_yppasswd_enable" permite que os usuários troquem suas
senhas a partir das máquinas clientes. Após isso, reinicie a máquina.
Passamos agora a configurar o NIS. Os arquivos dos quais ele busca as informações
são chamados "NIS maps", e são guardados no diretório
"/var/yp". Estes arquivos são gerados a partir de alguns arquivos
de configuração que estão no diretório "/etc",
exceto um, que deve ser ajustado manualmente, que é o "master.passwd".
Vá até o diretório /var/yp e copie para lá o arquivo
/etc/master.passwd. Após isso, edite o arquivo (/var/yp/master.passwd)
e remova todas as contas administrativas, que não deverão ser
propagadas aos clientes, como por exemplo root, bin, tty, games etc. O arquivo
"/var/yp/master.passwd" deverá ter a permissão 600.
Execute o seguinte comando:
# ypinit -m teste-nis
O "ypinit" é um utilitário que inicializa os "NIS maps". O parâmetro -m indica que estamos configurando um servidor mestre (master). Serão apresentadas algumas informações e então uma linha com o seguinte:
master server : servteste
Ao invés de servteste deverá constar o hostname do seu servidor. Pressione Ctrl+D e então enter. O ypinit irá criar o arquivo /var/yp/Makefile. Este arquivo possui toda a configuração do NIS, sendo que assume por padrão que os clientes serão apenas FreeBSD. Caso haja algum Linux, deve-se editar o arquivo e descomentar a seguinte linha:
UNSECURE = "True"
Crie agora o arquivo /var/yp/securenets, com o seguinte conteúdo:
127.0.0.1 255.255.255.255
192.168.0.0 255.255.0.0
Este arquivo é uma lista de endereços de rede, espaço em branco, e a máscara de rede. As redes que forem especificadas são as autorizadas a utilizar o serviço NIS, ou seja, ninguém com endereço IP fora das especificadas conseguirá fazer uso do serviço. Isto visa restringir o acesso ao servidor, e se o arquivo securenets não for criado o acesso ficará liberado para todos, o que pode gerar problemas de segurança.
Terminadas estas etapas, temos um servidor NIS funcionando e capaz de autenticar os clientes. Um detalhe importante: toda vez que for modificada ou adicionada uma nova conta no sistema, deve-se executar a seguinte linha de comando:
# cd /var/yp ; make teste-nis
Isto irá recriar os "NIS maps", e sem isso o usuário recém-criado não conseguirá logar nas máquinas clientes.
Configuração dos Clientes (FreeBSD)
Edite o arquivo /etc/rc.conf e adicione as seguintes linhas:
portmap_enable="YES"
nisdomainname="teste-nis"
nis_client_enable="YES"
Edite o arquivo /etc/master.passwd, através do comando "vipw", e adicione a seguinte linha ao final do arquivo:
+:::::::::
Edite o arquivo /etc/group e adicione a seguinte linha ao final do arquivo:
+:*::
Edite o arquivo /etc/hosts e adicione um sinal de "+" em uma linha em branco no final do arquivo:
+
Após isso, reinicie a máquina e teste o login com uma conta de
usuário, deverá funcionar normalmente.
É interessante também que os diretórios home guardados
no servidor sejam compartilhados com os clientes. Para isso, pode ser utilizado
o NFS, adicionando no arquivo /etc/exports
do servidor uma linha que compartilha o /home e adicionando no arquivo /etc/fstabs,
nos clientes, uma linha que monta o /home. Deverá ser criado o diretório
/home nos clientes, para que nele seja montado o /home do servidor.
Como as permissões e propriedade dos arquivos serão mantidas,
e os UIDs e GIDs serão os mesmos, pois são resgatados via NIS,
o usuário que logar em uma máquina cliente terá acesso
de forma transparente a apenas seus arquivos, como se estivesse logando no servidor.
Atualizado em 03/02/04.
Heini Thomas Geib.
http://www2.unijui.edu.br/~heini