This is an old revision of the document!
Table of Contents
Installazione NIS server
Installato il pacchetto nis, si è specificato come nome di dominio il dominio DNS dell'host, in questo esempio mydomain.org. Viene salvato in /etc/defaultdomain
(vedi avanti come cambiarlo).
Fare attenzione al contenuto dei seguenti file:
- /etc/defaultdomain
- /etc/default/nis
- /etc/hosts
- /etc/ypserv.securenets
Conviene che in /etc/hosts
i nomi dei server NIS siano presenti sia nella versione breve che in quella completa, qualcosa del tipo:
127.0.0.1 localhost.localdomain localhost 10.0.1.47 nisserver.mydomain.org nisserver
Poiché vogliamo essere NIS master server, in /etc/default/nis
si imposta
NISSERVER=master
Per decidere chi ha accesso al server NIS si mette in /etc/ypserv.securenets
una riga come segue (commentando la riga che garantisce accesso a tutti):
255.255.255.0 10.0.1.0
NOTA: se il server NIS ha più di una interfaccia di rete e si vuole rispondere a richieste broadcast da parte dei client, è opportuno aggiungere in /etc/ypserv.securenets
anche tutti gli indirizzi alternativi del server NIS, oltre all'indirizzo loopback:
# Always allow access for localhost 255.0.0.0 127.0.0.0 # Allow access from localhost (when proxying broadcast requests?) # See Debian bugs: # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=280537 # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=126177 # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329382 255.255.255.255 192.168.144.2
infatti pare che ypserv
- in risposta ad una richiesta broadcast di un client - inoltri a sé stesso una richiesta broadcast utilizzando l'indirizzo IP aggiuntivo che non è nelle securenets, facendo fallire la richiesta del client e generando questo errore in syslog:
ypserv[9960]: refused connect from 192.168.144.2:46594 to procedure ypproc_domain_nonack (mydomain.org,;0)
Bisogna inizializzare il database del dominio NIS, che verrà tenuto nella directory /var/yp/mydomain.org/
. Si usa il comando
/usr/lib/yp/ypinit -m
Per testare il corretto funzionamento del server si può usare il comando ypcat passwd
. Mostra tutte le voci del database “passwd” presente nel server NIS. Quali database ci sono sul server NIS lo si vede dal file /var/yp/nicknames
. Per es. le shadow password si vedono con ypcat shadow.byname
.
Per modificare il nome del dominio NIS da mydomain.org a newdomain.org:
/etc/init.d/nis stop vi /etc/defaultdomain rm -r /var/yp/mydomain.org domainname newdomain.org /usr/lib/yp/ypinit -m /etc/init.d/nis start
Utenti NIS separati da quelli di sistema
Invece di usare i file in /etc/
(passwd, group, …), si vogliono usare delle copie in /var/yp/ypfiles
. Modificare /var/yp/Makefile
:
YPSRCDIR = /var/yp/ypfiles YPPWDDIR = /var/yp/ypfiles
Si deve editare anche /etc/default/nis
:
YPPWDDIR=/var/yp/ypfiles
Per fare in modo che ypinit riesca a generare i database necessari bisogna provvedere i seguenti file:
- group
- hosts
- netgroup
- passwd
- protocols
- rpc
- services
- shadow
NIS client
Si installa il pacchetto nis. Chiunque voglia essere NIS client (eventualmente anche il NIS server stesso) deve impostare NISCLIENT=true
nel file /etc/default/nis
.
Per integrare gli utenti e i gruppi NIS in quelli standard unix si deve modificare /etc/passwd
aggiungendo la riga:
+::::::
Analogamente in /etc/group
si deve mettere:
+:::
La ricerca del NIS server avviene tramite richieste broadcast sulla rete locale. Per evitarle (potrebbero fallire per regole di firewall) si dichiarano esplicitamente i server in /etc/yp.conf
:
# We states NIS servers explicitly to avoid broadcast requests. ypserver bianca.rigacci.org ypserver neve.rigacci.org
Un altro motivo per cui la richiesta broadcast potrebbe fallire è se il server NIS è multihomed (ha più di una interfaccia di rete), vedi la nota sopra riguardo ypserv.securenets
.
NIS slave server
Configurare l'host che dovrà essere slave server come se fosse un NIS client, quindi mettere in /etc/default/nis
la riga NISSERVER=slave
.
Sul master modificare /var/yp/Makefile
mettendo NOPUSH=“false”
, quindi eseguire /usr/lib/yp/ypinit -m
.
Riavviare NIS sullo slave ed eseguire /usr/lib/yp/ypinit -s <master_server>
per trasferire il contenuto dei file.
Le repliche dovrebbero avvenire automaticamente dal master allo slave. Nel caso qualcosa vada storto è opportuno configurare un cron job sullo slave come suggerito dal file nis.debian.howto:
20 * * * * root /usr/lib/yp/ypxfr_1perhour >/dev/null 2>&1 40 6 * * * root /usr/lib/yp/ypxfr_1perday >/dev/null 2>&1 55 6,18 * * * root /usr/lib/yp/ypxfr_2perday >/dev/null 2>&1
Firewall
Se il server NIS è protetto da firewall che filtra in base al numero di porta si deve avere l'accortezza di impostare i vari server su porte predefinite (non su porte dinamiche come sarebbe l'impostazione predefinita) ed aprire di conseguenza il firewall. Come per il servizio NFS la gestione delle porte è affidata a portmapper, vedere in proposito la pagina relativa.
In particolare si devono indicare le porte per ypserv, yppasswdd, ypbind, fypxfrd.
In un sistema Debian vedere /etc/default/nis
:
YPSERVARGS="--port 808" YPPASSWDDARGS="--port 600"