IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Alert.png Aquesta wiki forma part dels materials d'un curs
Curs: SambasobreLDAP, LinuxAdministracioAvancada
Fitxers: AutenticacioiAutoritzacionsLinux.pdf
Repositori SVN: https://anonymous@svn.projectes.lafarga.cat/svn/iceupc/SambaSobreLDAP
Usuari: anonymous
Paraula de pas: sense paraula de pas
Autors: Sergi Tur Badenas, Lluís Pérez Vidal

NIS (Network Information Service)

NIS és un protocol de servei directori (també anomenat “Yellow Pages” (YP)). Va ser creat per Sun Microsystems. Segueix una arquitectura client-servidor i el seu objectiu és distribuir i compartir informació en una xarxa d'ordinadors. Típicament s'utilitza per a mantenir, compartir i distribuir una base de dades centralitzada d'usuaris però també es pot utilitzar per a noms de màquina (DNS), e-mails aliades i altres bases de dades basades en text.

Com que el no “Yellow Pages” era una marca registrada en alguns països Sun va canviar el nom a NIS però com veurem totes les comandes de nis encara comencen per yp.

El seu principal avantatge és que és fàcil i ràpid de configurar. El principal problema de NIS és que no és un protocol "massa" segur i és millor utilitzar altres sistemes més segurs com kerberos o LDAP. Cal a dir també que és una solució de gestió d'usuaris de domini que cada cop s'utilitza menys (en detriment d'altres tecnologies com Active Directory o LDAP) i que és una solució poc flexible i poc escalable.

Inconvenients

  • És un protocol insegur i obsolet per als estàndards actuals
  • Tota la informació viatja en clar per la xarxa (usuaris i contrasenyes inclosos)
  • Només es pot utilitzar en un medi confiable.
  • La configuració per defecte de NIS és altament insegura.
  • No utilitza ports específics
  • Es pot configurar per per utilitzar ports específics.
  • Difícil de protegir amb un firewall (iptables).

Recursos:

Servidor NIS

Instal·lació

Per instal·lar nis hem d'executar:

$ sudo apt-get install nis
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Reading state information... Hecho
Se instalarán los siguientes paquetes extras:
  make portmap
Paquetes sugeridos:
  make-doc-non-dfsg
Se instalarán los siguientes paquetes NUEVOS:
  make nis portmap
0 actualizados, 3 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 393kB de archivos.
Se utilizarán 2191kB de espacio de disco adicional después de desempaquetar.
Seleccionando el paquete make previamente no seleccionado.
(Leyendo la base de datos ...  com edgy/main make 3.81-2 [148kB]
24484 ficheros y directorios instalados actualmente.)5-20ubuntu1 [31,9kB]
Desempaquetando make (de .../archives/make_3.81-2_i386.deb) ...[213kB]
Seleccionando el paquete portmap previamente no seleccionado.
Desempaquetando portmap (de .../portmap_5-20ubuntu1_i386.deb) ...
Seleccionando el paquete nis previamente no seleccionado.
Desempaquetando nis (de .../nis_3.16-1ubuntu3_i386.deb) ...
Configurando make (3.81-2) ...
Configurando portmap (5-20ubuntu1) ...
* Starting portmap daemon...                                                     [ ok ]  

Configurando nis (3.16-1ubuntu3) ...
Setting NIS domainname to: nisdomain
Starting NIS services: ypbind [binding to YP server .......... backgrounded] 

Durant la instal·lació ens preguntarà el nom de domini de NIS que volem utilitzar:

NISServer.jpg

Podem canviar aquest nom o consultar-lo amb la comanda domainname.

NIS depèn del servei portmap i l'instal·larà i l'executarà a l'instal·lar.

Podem consultar els fitxers que instal·la NIS amb la comanda:

$ dpkg -L nis

Tenim les següents comandes/aplicacions/servidors:

$ dpkg -L nis | grep bin
/bin
/bin/domainname
/usr/bin
/usr/bin/ypwhich
/usr/bin/ypmatch
/usr/bin/ypcat
/usr/bin/yppasswd
/usr/sbin
/usr/sbin/ypserv
/usr/sbin/yppush
/usr/sbin/rpc.ypxfrd
/usr/sbin/rpc.yppasswdd
/usr/sbin/yppoll
/usr/sbin/ypset
/usr/sbin/yptest
/usr/sbin/ypserv_test
/usr/sbin/ypbind
/usr/share/man/man8/ypbind.8.gz
/bin/ypdomainname
/bin/nisdomainname
/usr/bin/ypchsh
/usr/bin/ypchfn


I els següents fitxers de configuració:

$ dpkg -L nis | grep etc
/etc
/etc/init.d
/etc/init.d/nis
/etc/yp.conf
/etc/netgroup
/etc/ypserv.securenets
/etc/ypserv.conf

La resta de fitxers són manuals i documentació (carpeta /usr/share).

Control del servei NIS. Execució, parada, status i reconfiguració de NIS

Seguint els estàndards de Debian GNU/Linux (basat en el sistema d'scripts d'inicialització SystemV) l'script de control del dimoni NIS és:

/etc/init.d/nis

Les accions que podem fer amb el servei són start|stop|reload|force-reload|restart.

Cada cop que fem un canvi a la configuració de bind haurem de fer un restart o millor encara un reload del servei:

$ sudo /etc/init.d/nis reload

Tal com podem veure executant:

$ sudo updatedb
$ locate nis | grep rc
/etc/rc1.d/K18nis
/etc/rc2.d/S18nis
/etc/rc3.d/S18nis
/etc/rc4.d/S18nis
/etc/rc5.d/S18nis

El serveis NIS s'executa a partir del nivell 1 (cal destacar que no està disponible al nivell SINGLE USER MODE rcS.d).

Podeu trobar més informació a l'article Configuració de serveis en Linux.

Configuració de NIS

Els passos per configurar un servidor NIS són els següents:

  1. Modificar l'arxiu /etc/default/nis per indicar que volem utilitzar NIS com a servidor en aquesta màquina.
  2. Si no volem que el servidor sigui client d'ell mateix haurem de modificar el paràmetre NISCLIENT a yes.
  3. Cal modificar el fitxer /etc/yp.conf per afegir el nom de domini que hem escollit a la instal·lació.
  4. Al fitxer /etc/ypserv.conf podem deixar la configuració per defecte.
  5. Hem de configurar el rang de xarxa que pot accedir al servidor NIS amb el fitxer /etc/ypserv.securenets.
  6. Cal assegurar-se que al fitxer /etc/defaultdomain tenim el nom de màquina especificat durant la instal·lació. Si no ho podem canviar amb la comanda domainname.
  7. Els usuaris i els grups es donen d'alta al servidor de la forma habitual (com usuaris clàssics de Linux).
  8. Finalment executarem /usr/lib/yp/ypinit -m per inicialitzar la base de dades de NIS.
  9. Executem /etc/init.d/nis restart:

Cada cop que modifiquem o creem nous usuaris hem d'actualitzar la base de dades de NIS amb:

$ cd /var/yp
$ make

Fitxer /etc/default/nis

Tal i com s'indica a l'script de control del servei NIS:

$ cat /etc/init.d/nis | head
...................
# Customize the variables in /etc/default/nis rather than here
NISSERVER=false
NISMASTER=
YPPWDDIR=/etc

Aquest fitxer és el lloc ideal per configurar les variables de NIS.

Un servidor pot ser client NIS d'ell mateix indicant els paràmetres NISSERVER i NISCLIENT a true.

Fitxer /etc/yp.conf

Fitxer /etc/ypserv.conf

Fitxer /etc/ypserv.securenets

NIS a l'instal·lar dóna accés al servidor NIS a tothom de la xarxa. Haurem de canviar la configuració del client per tal d'indicar el rang de xarxa on es troben els clients. Modifiquem:

0.0.0.0                  0.0.0.0

per una cosa semblant al següent (en aquest cas volem donar accés a un subxarxa de classe C 192.168.1.0/24):

192.168.1.0              255.255.255.0

Fitxer /usr/lib/yp/ypinit

/usr/lib/yp/ypinit -m

Client NIS

Instal·lació

Client i servidor comparteixen el mateix client. Podem seguir els passos de la instal·lació del servidor.

Configuració

Els passos per configurar un servidor NIS són els següents:

  1. Modificar l'arxiu /etc/default/nis per indicar que volem utilitzar NIS com a client en aquesta màquina. La configuració per defecte acostuma a ser la de client. En tot cas cal assegurar-se que NISSERVER està establert a false i NISCLIENT a true.
  2. Cal modificar el fitxer /etc/yp.conf per afegir el nom de domini i el servidor de NIS que volem utilitzar.
  3. Cal modificar els fitxers /etc/passwd, /etc/shadow i /etc/group per adaptar-los a NIS.
  4. Al fitxer /etc/ypserv.conf podem deixar la configuració per defecte.
  5. Cal assegurar-se que al fitxer /etc/defaultdomain tenim el nom de domini de NIS.
  6. Executem /etc/init.d/nis restart:


Fitxer /etc/yp.conf

En la configuració de client hem de tenir les següents línies:

domain nom_del_domini_nis
ypserver ip_del_servidor_nis

És necessari assegurar-se que el nom de la màquina de NIS es pot resoldre per DNS o amb una entrada al fitxer de hosts com la següent:

192.168.1.100              servidornis

Configuració dels arxius /etc/passwd, /etc/shadow i /etc/group

Cal modificar aquests fitxers per tal de poder utilitzar NIS. Abans de fer cap modificació és molt recomanable fer una còpia de seguretat dels fitxers.

Al fitxer /etc/passwd hem d'afegir al final la línia:

+:::::

Al fitxer /etc/shadow hem d'afegir al final la línia:

+:::::


Al fitxer /etc/shadow hem d'afegir al final la línia:

+:::

En tot cas cal tenir en compte que el nombre de dos punts coincideixi amb el nombre paràmetres possibles en cada fitxer.

NIS commands

ypcat

ypmatch

ypwhich

ypclnt

yppasswd

ypset

ypmake

ypinit

yppush

ypserve

Troubleshooting

A l'executar/instal·lar NIS tarda en executar-se: Starting NIS services: ypbind [binding to YP server .......... backgrounded]

Aquest error és perquè encara no tenim configurat NIS.

S'ha de modificar l'arxiu /etc/default/nis per tal d'indicar que estem treballant amb un servidor. La línia:

NISSERVER=false

s'ha de canviar per

NISSERVER=master

Com podem saber si NIS s'està executant a un servidor

Amb la comanda rpcinfo podem saber si s'està executant un servidor NIS i la versió i protocols utilitzats:

$ rpcinfo -p 192.168.1.5 | grep yp
  100004    2   udp    695  ypserv
  100004    1   udp    695  ypserv
  100004    2   tcp    698  ypserv
  100004    1   tcp    698  ypserv