|
|
Este artigo está disponível em: English Castellano Deutsch Francais Nederlands Portugues Turkce |
por Frédéric Raynal <pappy(at)users.sourceforge.net> Sobre o autor: Frédéric Raynal está actualmente a preparar a sua tese final no INRIA na area da computação cientifica. Oiço frequentemente o último album de "16 Horse Power" (muito bom, mas igualmente muito potente) e "The for carnation", um pouco frio mas também muito bom. Traduzido para Português por: Patrick Carpalhoso <carpalhoso(at)mail.telepac.pt> Conteúdo: |
Abstrato:
Neste artigo vamos ver a instalação passo a passo de um servidor
NIS.
Iremos ver qual é o software necessário, os ficheiros de configuração e
a criação da base de dados.
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.
|
Páginas Web mantidas pelo time de Editores LinuxFocus
© Frédéric Raynal, FDL LinuxFocus.org |
Informação sobre tradução:
|
2002-12-06, generated by lfparser version 2.31