você está aqui: Home  → Arquivo de Mensagens

Criando servidor-cliente NFS e NIS

Colaboração: Felipe Augusto Batista Reis

Data de Publicação: 01 de Janeiro de 2005

Neste tutorial vamos mostrar uma forma simples de como se criar um em uma rede interna uma forma de montagem e autenticação remota. Vamos aprender mesmo como fazer um servidor-cliente de NIS rodar em sua rede, que em conjunto com o NFS poderá lhe dar uma forma simples de autenticção remota.

Este tutorial não o ensinará o que é NIS e NFS, ele tem como alvo os que já possuem um breve conhecimento em Linux ou que sejam esforçados e queiram aprender como usar o Linux. Ao final do tutorial haverão links para paginás que lhes darão mais informação sobre os servidores NIS e NFS.

PACOTES:

Para tudo seja feito com classe lhe aconselho os seguintes pacotes.

  • NFS:nfs-server, nfs-utils, portmap, nmap, rpcinfo
  • NIS:ypserv, yp-tools, yppasswdd, ypbind, portmap

1° passo

Para que possamos fazer com o NIS faça autenticação remotamente temos que primeiro ter algo que permita isso, esse é o NFS. Nós não entramos a fundo no NFS pois existe muito documento sobre o assunto na internet e também por se tratar de algo extramente simples.

O que vc precisa é de editar o arquivo /etc/exports e colocar as seguintes linhas.

  /home/ ip_da_maquina_remota(rw,no_root_squash)

O que temos aqui é o seguinte.

/home/: Este é o o poderemos montar uma ou mais maquina remotas, no caso o /home desta maquiná.

ip_da_maquina_remota: Este é o ip da maquina que iremos permitir que tenha seguindo por exemplo o /home(mostrado e explicado acima) montado em uma maquina ou rede(para dar permissões pode-se usar o '*', que especifica tudo.

(rw,no_root_squash): são as opções que usamos aqui. rw: da permissão de leitura e gravação para os ip's especificados. no_root_squash: da permissão ao root também.

(Nossa, disse que não iria falar de nfs, mas agora já quase montei um servidor de nfs... :D)

2° passo

AGORA O NIS

Vamos começar a montar o NIS pelo o arquivo /etc/ypserv.conf.

o ypserv.conf normalmente ja vem configurado... porém....

  #
  # ypserv.conf   In this file you can set certain options for the NIS server,
  #               and you can deny or restrict access to certain maps based
  #               on the originating host.
  #
  #               See ypserv.conf(5) for a description of the syntax.
  #
  
  # Some options for ypserv. This things are all not needed, if
  # you have a Linux net.
  
  # Should we do DNS lookups for hosts not found in the hosts table ?
  # This option is ignored in the moment.
  dns: no
  
  # How many map file handles should be cached ?
  files: 30
  
  # Should we register ypserv with SLP ?
  slp: no
  
  # xfr requests are only allowed from ports < 1024
  xfr_check_port: yes
  
  # The following, when uncommented,  will give you shadow like passwords.
  # Note that it will not work if you have slave NIS servers in your
  # network that do not run the same server as you.
  
  # Host                     : Domain  : Map              : Security
  #
  # *                        : *       : passwd.byname    : port
  # *                        : *       : passwd.byuid     : port
  
  # Not everybody should see the shadow passwords, not secure, since
  # under MSDOG everbody is root and can access ports < 1024 !!!
  *                          : *       : shadow.byname    : port
  *                          : *       : passwd.adjunct.byname : port
  
  # If you comment out the next rule, ypserv and rpc.ypxfrd will
  # look for YP_SECURE and YP_AUTHDES in the maps. This will make
  # the security check a little bit slower, but you only have to
  # change the keys on the master server, not the configuration files
  # on each NIS server.
  # If you have maps with YP_SECURE or YP_AUTHDES, you should create
  # a rule for them above, that's much faster.
  # *

3° passo

agora vamos configurar o /etc/yp.conf

  domain nome_do_dominio hostname x.x.x.x

O arquivo /etc/sysconfig/network(para distos estilo redhat) coloque na última linha "NISDOMAIN="nome_do_dominio_nis""

Se for por não houver /etc/sysconfig/network isso quer dizer que seu arquivo é o /etc/defaultdomain(em slack's, debian e etc...), é só colocar dentro do arquivo o nome do dominio NIS e mais nada.

domain nome_do_dominio: este é o nome do seu dominio NIS(não coloque o mesmo nome do donimio DNS, isso pode ser ruim!!) hostname x.x.x.x: este é o ip do seu servidor NIS

existem outras saidas, para vê-las de o comando "man yp.conf"

4° passo

Agora entre no diretório /var/yp/ edite o arquivo Makefile e troque as seguintes linhas.

  MERGE_PASSWD=true
  MERGE_GROUP=true

por

  MERGE_PASSWD=false
  MERGE_GROUP=false

5° passo

securenets

  #
  # securenets    This file defines the access rights to your NIS server
  #               for NIS clients. This file contains netmask/network
  #               pairs. A clients IP address needs to match with at least
  #               one of those.
  #
  #               One can use the word "host" instead of a netmask of
  #               255.255.255.255. Only IP addresses are allowed in this
  #               file, not hostnames.
  #
  # Always allow access for localhost
  255.0.0.0       127.0.0.0
  
  # This line gives access to everybody. PLEASE ADJUST!
  x.x.x.x           x.x.x.x

Para sua segurança modifique este arquivo de acordo com suas necessidades. no primeiro x.x.x.x você coloca sua mascara de rede, e no segundo você coloca sua rede para que somente sua rede tenha acesso.

EX:

  # This line gives access to everybody. PLEASE ADJUST!
  255.255.255.0           192.168.1.0

6° passo

Se você está por em um slackware terá que fazer algumas coisinhas a mais...

Para iniciar o seu servidor toda vez que a máquina for iniciada, teremos que tornar o arquivo /etc/rc.d/rc.yp executável:

  chmod +x /etc/rc.d/rc.yp

Agora, temos que fazer o servidor iniciar, edite as seguintes linhas: No /etc/rc.d/rc.yp, descomente as linhas abaixo:

  if [ -r /etc/defaultdomain ]; then
  nisdomainname ``cat /etc/defaultdomain``
  fi

Para fazer com que o nome do domínio NIS seja carregado deixa as linhas assim.

  if [ -x /usr/sbin/ypserv ]; then
  echo "Starting NIS server:  /usr/sbin/ypserv"
  /usr/sbin/ypserv
  fi

Para fazer com que seus usuários alterem suas senhas, habilite o rpc.yppasswdd. Assim com o comando yppasswd poderam fazê-lo.

  if [ -x /usr/sbin/rpc.yppasswdd ]; then
  echo "Starting NIS master password server:  /usr/sbin/rpc.yppasswdd"
  /usr/sbin/rpc.yppasswdd
  fi

Se gosta de praticidade coloque dentro do adduser(na última linha) a seguinte linha:

  ( cd /var/yp ; make )

Isso fará com que o NIS atualize sua base de dados toda vez que você adicinar um usário.

7° passo

AGORA É A VEZ DO CLIENTE

repita o 3° passo

Agora, edite o /etc/rc.d/rc.yp e deixe as seguintes linhas assim:

  if [ -r /etc/defaultdomain ]; then
  nisdomainname ``cat /etc/defaultdomain``
  fi
  
  if [ -d /var/yp ]; then
  echo "Starting NIS services:  /usr/sbin/ypbind -broadcast"
  /usr/sbin/ypbind -broadcast
  fi

Fora do arquivo, torne o rc.yp executável.

  chmod +x /etc/rc.d/rc.yp

8° passo

   /etc/nsswitch.conf

se você está usando uma distro estilo redhat deixe-o como esta. Se usa um slack mude as seguintes linhas.

Comente as seguintes linhas:

  passwd:         compat
  group:          compat

E descomente estas:

  # passwd:       files nis
  # shadow:       files nis
  # group:        files nis

9° passo

Agora você deve compartililhar os arquivos para que o servidor NIS saber quais serviços ele poderá buscar na sua rede. No nosso caso vamos compartilhar os arquivos /etc/passwd, group, shadow e gshadow para isso vamos colocar um sinal de mais na última linha de cada um deles.

  echo + >> /etc/passwd
  echo + >> /etc/group
  echo + >> /etc/shadow
  echo + >> /etc/gshadow

10° passo

Agora no servidor NIS entre no diretório /var/yp/ e de o comando ypserv e depois make, deverá aparecer uma pasta com o nome do seu dominio, pronto, as maquinas que estão no NFS e que estão no NIS já podem fazer login em qualquer maquiná da rede que tenha um cliente configurado.

Outra coisa... o diretório home do cliente deve sempre ser o mesmo diretório home do servidor, O que digo é que o o diretório no servidor onde ficam os usários deve ser o mesmo nome no cliente, por exemplo..

Se no seu servidor for o /home, você deverá montar no /home do cliente, se no servidor for /home/usuarios, nos clientes também deverá ser /home/usuários e assim por diante.

BIBLIOGRAFIA

UTILIDADES (Este documento não possui partes dos documentos abaixo citados)

  1. TuxResources
  2. Configuração do NIS
  3. Sistema de identificação em rede (NIS)
  4. NFS sem segredos


Veja a relação completa dos artigos de Felipe Augusto Batista Reis

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script