Yellow Pages 2 : Do lado do cliente

ArticleCategory:

System Administration

AuthorImage:

TranslationInfo:

Original in fr Fr�d�ric Raynal

fr to pt Patrick Carpalhoso

AboutTheAuthor:

Frederic Raynal prepara uma tese em inform�tica no INRIA. Ele gosta tamb�m ler (tanto Tolkien como Balzac) e ouvir musica (de Mozart a Philip Glass e de Led Zeppelin a Massive Attack passando por Bj�rk e Boris Vian, mas evitando cautelosamente o rap, a techno e outros ru�dos ;-)

Abstract:

O artigo anterior era uma introdu��o aos conceitos girando a volta das yellow pages (YPs). Neste artigos iramos ver como configurar o cliente, um exemplo pratico de funcionamento do cliente e uma apresenta��o das diferentes ferramentas que vem juntas. Por fim, veremos um pouco o NIS+

ArticleIllustration:

ArticleBody:

Introdu��o

O lado cliente dos servi�os ligados as yellow pages � baseado essencialmente sobre o dem�nio ypbind : ele emite os pedidos para o servidor das YPs. Em primeiro veremos ao pormenor o seu funcionamento e explicaremos como configura-lo. Depois veremos tamb�m como funciona o protocolo NIS. E na ultima parte deste artigo mostrara as diferentes ferramentas presentes no lado do cliente das YPs (as yp-tools).

Configurar o seu cliente NIS

A �nica coisa a fazer para por a funcionar um cliente NIS numa maquina � de executar o dem�nio ypbind.

ypbind

ypbind estabelece uma liga��o entre o cliente e o servidor NIS (to bind significa, entre outra coisa, ligar ou atar em ingl�s). Essa liga��o � vis�vel na directoria /var/yp/binding1 pelo o ficheiro convencional chamado domainname.version. A �nica vers�o actualmente suportada � a vers�o 2. Ent�o se o nome do meu dom�nio NIS � "messie", o ficheiro sera messie.2

O programa ypbind pertence ao super-utilizador (i.e. root), ele deve de estar ent�o no /sbin, ou no /usr/sbin.

Quando � executado, ypbind vai buscar as suas instru��es no ficheiro /etc/yp.conf. As entradas nesse ficheiro s�o :

Se esse ficheiro de configura��o esta incorrecto ou n�o existe, ypbind broadcast2 sobre toda a rede local a pesquisa de um servidor NIS para o dom�nio local.

Algumas opera��es b�sicas permitam de verificar que ypbind esta correctamente configurado.

  1. criar o seu ficheiro /etc/yp.conf ;
  2. verificar que portmap funciona (ps aux | grep portmap). Se n�o for o caso, executa-lo. Esse programa associa as ports TCP/IP (ou UDP/IP) do computador aos programas. A inicializa��es de um servidor RPC, este assinala ao portmap as portas que ele escuta e os n�meros dos programas que ele � suscept�vel de executar. Quando um cliente faz um pedido RPC para um numero de programa, ele contacta em primeiro portmap para saber a porta para a qual os pacotes RPC devem ser enviados. Como o descreve o funcionamento anterior, � ent�o necess�rio que portmap seja inicializado antes ypbind ;
  3. criar o direct�rio /var/yp ;
  4. executar ypbind ;
  5. utilizar o comando rpcinfo para se assegurar que ypbind funciona correctamente : ou ent�o em fun��o da vers�o de ypbind. A mensagem importante � aquela sobre a vers�o 2.
Agora que ypbind funciona correctamente, a vossa maquina passou a cliente NIS. Voc� j� pode utiliza-lo para efectuar pedidos a vosso servidor. Por exemplo, "ypcat passwd.byname" renvio todas as palavras-chave, ordenado por nome de utilizador presente na map correspondente.

Ultimos detalhes

Alguns ficheiros devem ainda ser ligeiramente alterados para que as YPs funcionam de maneira eficaz : O que diz respeito as shadow passwords via NIS, o seu suporte s� � poss�vel com a glibc2.x. � ent�o necess�rio pensar a especific�-lo no ficheiro nsswitch.conf

O protocolo NIS

Agora que o nosso cliente NIS esta completamente operacional, vamos ver como ele faz para recuperar as informa��es que ele necessita.

Quando um cliente necessita uma informa��o numa map das YPs, ele come�a por pesquisar no servidor YP. Para o encontrar, ele abre uma conex�o TCP para o ypbind local. O cliente informe-o do dom�nio (falamos aqui do dom�nio NIS) onde ele pertence ypbind broadcast via a fun��o RPC YPPROC_DOMAIN_NOACK. Os servidores NIS que servem esse dom�nio respondem com um ACK, os outros fazem de orelhas surdas.

ypbind reenvia ao cliente o resultado da pesquisa (falhan�o ou sucesso) e, se ele a tiver, o endere�o do primeiro servidor YP que lhe respondeu. O cliente pode agora fazer o pedido a esse servidor, composto do dom�nio, da map e da chave.

Esse protocolo � relativamente lente porque ele utiliza as conex�es RCP. Ainda mais, ele utiliza tamb�m muitas sockets. Para evitar essa situa��o, ypbind n�o espera que o cliente o contacta para encontrar os servidores. Na realidade ele guarda no ficheiro /var/yp/binding/. uma lista de servidor para cada dom�nio e verifica regularmente que eles funcionam correctamente.

As yp-tools

Esta sec��o apresenta muito rapidamente algumas ferramentas do package yp-tools. Para saber mais, cada uma das instru��es disp�em de uma p�gina man muita detalhada ;-P

Algumas palavras sobre NIS+

Ao longo deste artigo, em nenhum momento abordamos uma variante de NIS, a saber NIS+. Numa rede, NIS causa enormes problemas em termo de seguran�a. Por exemplo, se o servidor NIS esta mal protegido e que uma pessoa mal intencionada descobre :

  1. o nome do dom�nio NIS
  2. o endere�o IP de um cliente NIS
s� lhe resta ent�o fazer passar-se por a maquina com o IP do cliente e enviar um ypcat passwd para recuperar de uma forma descansada o ficheiro das palavras-chave :-(

NIS+ ofere�a uma camada suplementar de seguran�a integrando um protocolo de autentifica��o baseado sobre uma troca de chaves e suportando a numera��o dos dados.

Os dados s�o armazenados em tabelas, que s�o por elas colocadas em directorias diferentes. Cada coluna de uma tabela disp�em de um qualificativo definindo, por exemplo, se os dados s�o "case sensitive", em formato bin�rio, etc ...

A estrutura descrita permita simplesmente gerir os direitos de acceso sobre as directorias e as tabelas, mas tamb�m sobre as colunas das tabelas. Isso implica que podemos proibir o acesso a tabelas das palavras-chaves a todos os utilizadores que n�o s�o autenticados no servidor NIS+, mas autorizar a todos os utilizadores certificados a aceder a toda a tabela das palavras-chaves, excepto os campos "passwd". S� o propriet�rio do campo "passwd" podera v�-lo.

Existem 4 niveis de direitos :

  1. Nobody (ningu�m) : o utilizador n�o � autenticado ;
  2. Owner (propriet�rio) : o utilizador � autenticado e ele � o proprietario ;
  3. Group (groupe) : o utilizador � autenticado e ele esta no grupo para esse objecto ;
  4. World (mondo) : o utilizador � autenticado mas ele n�o � nem proprietatio, nem no grupo para esse objecto.

Nessa configura��o, root � um utilizador como os outros ... enfim, quase ;-) Se ele n�o tiver as permiss�es adequadas, ele n�o pode mais ver as palavras-chaves dos outros utilizadores. Ele n�o poder� mais se autentificar como um outro utilizador ... mas, ele poder� sempre fazer descansadamente um su :)

Os dados que transitam pela a rede n�o ser�o cryptados, a exep��o das palavras-chaves : nenhuma palavra-chave transita em claro sobre a rede.

NIS+ � uma ferramenta potente ... mas complicado a implementar. Como Thorsten Kuduk (ele trabalha sobre NIS, NIS+, NIS-HOWTO ... enfim, uma pessoa que sabe do que se trata ;-) escreve :
"A escolhe emtre NIS e NIS+ � f�cil de fazer : utiliza NIS quando n�o tem necessidade de seguran�a importante. NIS+ � bem mas problem�tico a administrar (particularmente do lado do servidor)"

Conclus�o

Agora sabemos como inserir uma nova maquina numa rede existente e tendo um servidor NIS. Veremos, no pr�ximo epis�dio, como configurar o servidor e o seu funcionamento.


Footnotes

... var/yp/binding1
As localiza��es dos ficheiros s�o raramente especificadas porque elas varient de uma distribui��o a outra. Por exemplo, para ter um dem�nio ypbind inicializado ao arranque : /etc/init.d/nis, /sbin/init.d/ypclient, /etc/rc.d/init.d/ypbind, /etc/rc.local
... broadcast2
isso significa que a mensagem � emitida sobre todo a sub-rede sem destinat�rio especifico com um endere�o do tipo X.Y.0.0
... netgroup3
O ficheiro /etc/netgroup define os grupos compostos dos triplets (host, user, domain) servem para verificar as permiss�es quando se utiliza os comandos "a distancia" (remote logins, shells ou mount por exemplo). Ver a p�gina man para mais pormenor.