Original in fr Frédéric Raynal
fr to de Bernhard Spanyar
de to en Guido Socher
en to en Lorne Bailey
en to pt Patrick Carpalhoso
Neste artigo iremos ver como configurar o servidor e veremos umas dicas sobre a forma de usar o NIS.
Neste artigo iremos falar da versão mais recente de ypserv. Recomendamos uma versão posterior à 1.3.2 visto que já suporta as "shadow passwords". Por outras palavras, estamos realmente a falar de NYS e não do "NIS tradicional" ainda que utilisamos a palavra NIS ao longo do artigo.
Primeiro iremos explicar os passos necessários para a instalação do servidor. Neste artigo trabalhamos com um host chamado "charly". O domínio NIS é "bosley" e os servidores escravos são "iron1", "iron2" e "iron3".
A seguir, tem de escolher um nome para o domínio NIS. Não é um dominio DNS mas sim um nome para uma região YP. Por questões de segurança, o nome tem de ser diferente do nome do servidor NIS.
O domínio é definido com o comando domainname :-) No nosso caso é:
root@charly >> /bin/domainname bosleyEsse comando só inicializa o domínio NIS em RAM. Para que seja permanente é necessário a linha seguinte no ficheiro/etc/sysconfig/network:
NISDOMAIN=bosleyIsto ira inicializar o domínio NIS automaticamente no próximo reboot.
Antes de poder iniciar o demónio ypserv necessitamos configura-lo editando o ficheiro/etc/ypserv.conf. É um ficheiro ASCII com a seguinte sintaxe:
option: [yes|no]As opções possíveis são: dns, o servidor ira pedir ao DNS para localizar os clientes que não estão no hosts-maps, sunos_kludge, obsoleto e xfr_check_port para utilizar uma porta após 1024 para o servidor (por defeito é "yes").
host:map:security:mangle[:field]Essas regras decidem quem pode ver que informação.
Agora podemos iniciar o servidor:
root@charly >> /etc/rc.d/init.d/ypserv startPara iniciar o servidor automaticamente é necessário editar o ficheiro rc.d ou com Redhat executar o comando:
root@charly >> /sbin/chkconfig --level 345 ypserv onPara verificar se tudo esta a funcionar digitar:
root@charly >> /usr/sbin/rpcinfo -u localhost ypservAntes de ver os pormenores temos que lembrar-nos o que aprendemos no primeiro artigo. Existem 2 tipos de servidor: mestre e escravo. Os servidores escravos só tem uma copia da base de dados do servidor mestre. Eles auxiliam o servidor mestre quando este leva muito tempo para atender os pedidos dos clientes ou quando não esta em funcionamento. A base de dados é unicamente mantida pelo servidor mestre. Ela é sobreposta sobre a base de dados dos clientes.
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
Agora esta tudo pronto ... excepto a base de dados. Em primeiro temos de a gerar. Gerar significa utilizar o Makefile ;-] O Makefile esta pré-preparado só precisamos de alterar umas linhas. O Makefile esta no /var/yp e esta claramente comentado. A linha mais importante é aquela onde os maps são definidos. No host charly é:
all: passwd group hosts rpc services netid protocols mail shadowDeve-se adicionar a possibilidade de manipular os "shadows passwords". Para poder efectuar isso é necessário adicionar "passwd" e "shadow" na lista de ficheiros e atribuir o valor verdadeiro a variável MERGE_PASSWD. MERGE_PASSWD determina se os ficheiros /etc/passwd e /etc/shadow estão unidos.# netgrp publickey
# networks ethers bootparams printcap \
# amd.home auto.master auto.home passwd.adjunct
Antes de iniciar o servidor temos de verificar um último pormenor: direitos de escrita. Existam duas formas para controlar os direitos. Os próprios métodos do ypserv ou via tcp_wrapper. Iremos ver os próprios métodos de segurança do ypserv.
Se possuir unicamente os binários de ypserv, então a opção -v ira imprimir as opções de configuração com que ypserv foi compilado. Necessitamos da opção "securenets" para utilizar o próprio control de acesso do ypseerv.
root@charly >> /usr/sbin/ypserv -vO ficheiro /var/yp/securenets contêm os pares de numeros netmask/network que podemos utilizar para controlar o acesso ao servidor. Por defeito é o seguinte:
ypserv - NYS YP Server version 1.3.9 (with securenets)
0.0.0.0 0.0.0.0Isto autoriza o acesso a qualquer pessoa no mundo. Temos de substituir isso. Para utilizar qualquer ligação de qualquer host para a rede 131.234.223.0 tem de escrever:
255.255.255.0 131.234.223.0Podemos reparar que temos unicamente endereços IP neste ficheiro. Não é possível utilizar o nome dos hosts.
Agora podemos criar a base de dados NIS utilizando o comando ypinit. Por defeito (definido no Makefile) ele ira ler os fricheiros de /etc e escrever no /var/yp. Os ficheiros que irão na nossa base de dados serão /etc/passwd, /etc/group, /etc/hosts, /etc/networks, /etc/services, /etc/protocols, /etc/netgroup e /etc/rpc.
A opção -m permita-lhe inicializar o servidor com "raw data" (-m para mestre), a opção -s copia a base de dados do mestre para o escravo (-s como escravo).
No Charly inicializamos a nossa base de dados da seguinte forma:
root@charly >> /usr/lib/yp/ypinit -mE já esta. A base de dados esta pronta :). Para cada um dos servidores escravos o commando ypinit tem de ser executado:Chegando a este ponto, já construimos a lista dos hosts que irão correr os servidores NIS.
Localhost esta na lista dos servidores NIS. nbsp; Continua a adicionar
O nome de os outros hosts, um por linha. Depois de introduzir a
lista, faça <control D>.
next host to add: localhost
next host to add: iron1
next host to add: iron2
next host to add: iron3
next host to add:
A actual lista de servidor NIS, fica da seguinte forma:localhost
iron1
iron2
iron3Is this correct? [y/n: y] y
We need some minutes to build the databases...
Building /var/yp/bosley/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/bosley'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
Updating shadow.byname...
# shadow publickey # networks ethers bootparams printcap \
# amd.home auto.master auto.home passwd.adjunct
gmake[1]: Leaving directory `/var/yp/bosley'
root@iron3 >> /usr/lib/yp/ypinit -s charlyPara testar o sistema utiliza um dos servidores como cliente e executa a partir deste ultimo um pedido:
root@iron3 >> ypcat passwd mulder:x:500:100::/home/mulder:/bin/csh scully:x:501:100::/home/scully:/bin/bashPode ver igualmente que as shadow passwords estão a funcionar. Temos um "x" onde deveriam estar as passwords :)
|
|
Para adicionar um novo servidor
escravo, executa o comando
/usr/lib/yp/ypinit -s charly
no novo
servidor e adiciona o nome no ficheiro /var/yp/ypservers no servidor mestre.
Se adicionar um novo utilizador varios maps serão alterados (passwd, shadow, alias, etc ...).
Depois dos maps terem sido alterados deve simplesmente executar make no /var/yp/ no servidor mestre. Isto ira actualizar a base de dados e colocar os dados nos escravos (utilizando yppush).O programa rpc.ypxfrd pode acelerar a transacção entre o mestre e escravo copiando unicamente os dados do mestre em vez de os recriar no escravo. rpc.ypxfrd deve de iniciar ao mesmo momento que ypserv e unicamente no mestre. Estre programa só é necessario se tiver grandes maps.
Como existem passwords que são fáceis de adivinhar existem também nomes de dominios NIS previsíveis. Os candidatos óbvios são nomes de maquinas e é possivel testar o dominio NIS com ypwhich.
O nome do dominio NIS esta visivel en varios lugares, especialmente na directoria /var/yp e nas suas subdirectorias. Ninguêm pode ter os direitos de leitura excepto o root e não pode ser exportado via NFS.
Não magoa utilizar tcp_wrapper em complemento ao /var/yp/securenets para controlar o processo do portmap.
É também uma vantagem o facto de não ter um encaminhamento por defeito no servidor NIS e, utilizar unicamente encaminhamentos estaticos para os clientes e os servidores escravos. Dessa forma o servidor não responde a pedidos que vêm de hosts desconhecidos.
Regras de firewall no router são medidas muitas eficientes para controlar acessos nos servidores NIS.
Essas medidas de segurança não aumentam a segurança no NIS em si mesmo mas sim a infrastrutura à volta dele. Dependentemente destes problemas o NIS é uma ferramente valiosa.