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.
Nenhum comentário:
Postar um comentário