8. Di cosa si ha bisogno per impostare NIS+ ?

8.1. Il Software

Il codice per client NIS+ per Linux è stato sviluppato per la GNU C library 2. Vi è pure un port per libc5 di Linux, in quanto nel passato la maggior parte delle applicazioni commerciali erano linkate con questa libreria e non è possibile ricompilarle per utilizzare glibc. Ci sono problemi con libc5 e NIS+: i programmi statici non possono essere collegati con questa libreria e programmi compilati con questa non lavoreranno con altre versioni di libc5.

Come sistema base avete bisogno di una glibc basata su Distribuzioni come Debian, Red Hat Linux o Suse Linux. Se avete una distribuzione Linux che non ha glibc 2.1.1 o successive, dovete aggiornarla ad una nuova versione.

Il software per il client NIS+ può essere reperito da:
  Sito             Directory                     Nome File

  ftp.gnu.org     /pub/gnu/glibc                 glibc-2.3.2.tar.gz,
                                                 glibc-linuxthreads-2.3.2.tar.gz
  ftp.kernel.org   /pub/linux/utils/net/NIS+     nis-utils-1.4.1.tar.gz

Si dovrà dare pure un'occhiata a http://www.linux-nis.org/nisplus/ per maggiori informazioni e gli ultimi sorgenti.

8.2. Impostare un client NIS+

IMPORTANTE: per impostare un client NIS+ leggete i vostri documenti NIS+ di Solaris per sapere cosa fare dal lato server! Questo documento descrive solamente che cosa fare dal lato client.

Dopo l'installazione della nuova libc e degli strumenti NIS, create le credenziali per il nuovo client sul server NIS+. Assicurarsi che portmap sia in esecuzione. Poi verificate che il vostro PC Linux abbia la stessa ora del server NIS+. Per RPC sicure avete solo una piccola finestra di circa 3 minuti nella quale le credenziali sono valide. Una buona idea è di lanciare xntpd su ogni host. Dopo questo, eseguite

domainname nisplus.domain.
nisinit -c -H <NIS+ server>

per inizializzare il file d'avvio. Si legga la pagina man di nisinit per maggiori opzioni. Assicurarsi che domainname sia sempre impostato dopo il riavvio. Se non conoscete il nome del dominio NIS+ nella vostra rete, chiedete all'amministratore di sistema/rete.

Ora dovrete sostituire il vostro file /etc/nsswitch.conf Assicuratevi che il solo servizio dopo publickey sia nisplus ("publickey: nisplus"), e null'altro!

Poi avviate keyserv e assicuratevi che sia sempre attivo come primo demone dopo portmap all'accensione. Eseguite
keylogin -r
per immagazzinare la chiave segreta di root nel vostro sistema. (Spero abbiate aggiunto la chiave pubblica per il nuovo host sul server NIS+?).

niscat passwd.org_dir dovrà mostrare ora tutte le voci nel database passwd.

8.3. NIS+, keylogin, login e PAM

Quando un utente effettua il login, ha bisogno di impostare la sua chiave privata al keyserv. Questo viene fatto chiamando "keylogin". Il login del pacchetto shadow farà questo per l'utente, se è stato compilato con glibc 2.1. Per un login con PAM, si deve sostituire il file /etc/pam.d/login per utilizzare pam_unix2, non pwdb, che non supporta NIS+. Un esempio:

#%PAM-1.0
auth       required	/lib/security/pam_securetty.so
auth       required	/lib/security/pam_unix2.so       set_secrpc
auth       required	/lib/security/pam_nologin.so
account    required	/lib/security/pam_unix2.so
password   required	/lib/security/pam_unix2.so
session    required	/lib/security/pam_unix2.so

8.4. Il file nsswitch.conf

Il file Network Services Switch /etc/nsswitch.conf determina l'ordine di ricerca quando viene richiesto un certo tipo di informazione, proprio come il file /etc/host.conf che determina l'ordine delle ricerche degli host. Per esempio, la riga

    hosts: files nisplus dns

specifica che le funzioni di ricerca degli host dovranno prima verificare nel file locale /etc/hosts, seguendo poi un lookup di NIS+ e finalmente attraverso il servizio di nomi di dominio (/etc/resolv.conf e named), a questo punto se nessuna corrispondenza è stata trovata, viene restituito un errore.

Un buon file /etc/nsswitch.conf per NIS+ è:
#
# /etc/nsswitch.conf
#
# Un esempio del file di configurazione del Name Service Switch. Il file
# dovrebbe essere ordinato con i servizi più utilizzati all'inizio.
#
# La voce '[NOTFOUND=return]' indica che la ricerca di una voce dovrebbe
# fermarsi se la ricerca nella voce precedente non ha restituito nulla.
# Si noti che se la ricerca fallisce per altre ragioni (perché nessun
# server NIS risponde) allora la ricerca continua con la nuova voce.
#
# Le voci ammesse sono:
#
#	nisplus			Usa NIS+ (NIS versione 3)
#	nis			Usa NIS (NIS versione 2), chiamato pure YP
#	dns			Usa DNS (Domain Name Service)
#	files			Usa i file locali
#	db			Usa il database /var/db
#	[NOTFOUND=return]	La ricerca si ferma se nulla è stato trovato finora
#

passwd:     compat
group:      compat
shadow:     compat

passwd_compat: nisplus
group_compat:  nisplus
shadow_compat: nisplus

hosts:      nisplus files dns

services:   nisplus [NOTFOUND=return] files
networks:   nisplus [NOTFOUND=return] files
protocols:  nisplus [NOTFOUND=return] files
rpc:        nisplus [NOTFOUND=return] files
ethers:     nisplus [NOTFOUND=return] files
netmasks:   nisplus [NOTFOUND=return] files
netgroup:   nisplus
bootparams: nisplus [NOTFOUND=return] files
publickey:  nisplus
automount:  files
aliases:    nisplus [NOTFOUND=return] files