Avanti Indietro Indice

7. Cosa serve per mettere su NIS+?

7.1 Il Software

Il codice dei client NIS+ per Linux è stato sviluppato per la libreria C 2 della GNU. Esiste anche un port per la libc5 di Linux, in quanto la maggior parte delle applicazioni commerciali sono linkate con questa libreria e non è possibile ricompilarle per usare la glibc. Ci sono problemi con libc5 e NIS+: non è possibile fare il link di questa con i programma statici, e i programmi compilati con questa non funzioneranno con altre versioni della libc5.

Ci si deve procurare e compilare GNU C Library 2.1 per piattaforme basate su Intel o GNU C Library 2.1.1 per piattaforme a 64bit. Come sistema di partenza è necessaria una distribuzione basata su glibc come Debian 2.x, RedHat 5.x o SuSE Linux 6.x.

Qualsiasi sia la distribuzione, è necessario ricompilare il compilatore gcc/g++, libstdc++ e ncures. Per la Redhat, è necessario fare pesanti modifiche alla configurazione PAM. Per SuSE Linux 6.0, è necessario ricompilare il pacchetto shadow.

Il software per i client NIS+ può essere ottenuto da:

  Sito              Directory                    Nome File

  ftp.funet.fi     /pub/gnu/funet                libc-*, glibc-crypt-*,
                                                 glibc-linuxthreads-*
  ftp.kernel.org   /pub/linux/utils/net/NIS+     nis-utils-19990223.tar.gz
  ftp.kernel.org   /pub/linux/utils/net/NIS+     pam_keylogin-1.2.tar.gz

Le distribuzioni basate su glibc possono essere scaricate da:

  Sito                   Directory

  ftp.debian.org         /pub/debian/dists/slink
  ftp.redhat.com         /pub/redhat/redhat-5.2
  ftp.suse.de            /pub/SuSE-Linux/6.0

Per la compilazione della libreria C della GNU, si invita a seguire le istruzioni ricevute con il software. Qui è dove si può trovare la libc5 modificato, basata su NYS e con i sorgenti di glibc che rimpiazzano quelli della libc5 standard:

  Sito               Directory                  Nome File

  ftp.kernel.org     /pub/linux/utils/net/NIS+  libc-5.4.44-nsl-0.4.10.tar.gz

Per maggiori informazioni e gli ultimi sorgenti si dovrebbe guardare a http://www.suse.de/~kukuk/linux/nisplus.html.

7.2 Mettere su un client NIS+

IMPORTANTE: Per l'impostazione di un client NIS+, si legga la documentazione del NIS+ di Solaris per sapere cosa fare dal lato server! Questo documento descrive solamente cosa fare dal lato client!

Dopo aver installato la nuova libc e i nis-tools, si creino le credenziali per il nuovo client nel server NIS+. Assicurarsi che portmap sia in esecuzione. Poi controllare che il proprio PC Linux abbia la stessa ora del Server NIS+. Per le RPC sicure si ha solo una piccola finestra di circa 3 minuti nella quale credenziali sono valide. Una buona idea è di eseguire xntpd su ognuno degli host. Dopo di questo, lanciare

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

per inizializzare il file d'avvio. Si legga la pagina man di nisinit per ulteriori opzioni. Assicurarsi che il nome di dominio rimanga sempre impostato dopo un reboot. Se non si conosce il nome del dominio NIS+ della propria rete, si chieda al proprio amministratore di sistema/rete.

Ora si dovrebbe modificare il proprio file /etc/nsswitch.conf. Assicurarsi che il solo servizio dopo publickey sia nisplus ("publickey: nisplus"), e niente altro!

Dopo di che, avviare keyserv e assicurarsi che sia sempre avviato all'avvio del sistema. Eseguire

keylogin -r
per salvare la chiave segreta ("secretkey") di root nel proprio sistema (spero si sia già aggiunta la chiave pubblica ("publickey") per il nuovo host nel server NIS+?).

Ora "niscat passwd.org_dir" dovrebbe mostrare tutte le voci nella base di dati passwd.

7.3 NIS+, keylogin, login e PAM

Quando un utente effettua il login, è necessario che imposti la sua chiave segreta in keyserv. Ciò è fatto lanciando "keylogin". Il programma di login del pacchetto shadow fa questa cosa al posto dell'utente, se è stato compilato con la glibc 2.1. Per un programma di login con il supporto PAM, si deve installare pam_keylogin-1.2.tar.gz e cambiare il file /etc/pam.d/login per usare pam_unix_auth, e non pwdb, che non supporta NIS+. Un esempio:

#%PAM-1.0
auth       required     /lib/security/pam_securetty.so
auth       required     /lib/security/pam_keylogin.so
auth       required     /lib/security/pam_unix_auth.so
auth       required     /lib/security/pam_nologin.so
account    required     /lib/security/pam_unix_acct.so
password   required     /lib/security/pam_unix_passwd.so
session    required     /lib/security/pam_unix_session.so

7.4 Il File nsswitch.conf

Il file del Network Services Switch /etc/nsswitch.conf determina l'ordine delle ricerche ("lookup") effettuate quando è richiesta una data informazione, proprio come il file /etc/host.conf determina il modo con il quale sono effettuate le ricerche degli host. Per esempio, la riga:

    hosts: files nisplus dns

specifica che le funzioni di ricerca degli host dovrebbero prima guardare nel file /etc/hosts locale, poi effettuare un lookup NIS e alla fine una vera richiesta al domain name service (/etc/resolv.conf e named), e a quel punto, se non viene trovata alcuna corrispondenza, viene restituito un errore.

Un buon file /etc/nsswitch.conf file per NIS+ è:

#
# /etc/nsswitch.conf
#
# Un esempio di file di configurazione del Name Service Switch.
# Questo file dovrebbe essere ordinato in modo che i servizi più
# comuni siano all'inizio.
#
# La voce '[NOTFOUND=return]' indica che la ricerca di una voce
# dovrebbe fermarsi se la ricerca nella voce precedente non ha
# restituito niente.  Si noti che se la ricerca fallisce per qualche
# altra ragione (come la mancata risposta del server NIS) allora la
# ricerca continua con la voce successiva.
#
# Le voci ammesse sono:
#
#       nisplus         Usa NIS+ (NIS versione 3)
#       nis             Usa NIS (NIS versione 2), detto anche YP
#       dns             Usa DNS (Domain Name Service)
#       files           Usa file locali
#       db              Usa la base di dati /var/db
#       [NOTFOUND=return]   Ferma la ricerca se prima non è stato
#                           trovato niente
#

passwd:     compat
# per libc5: passwd: files nisplus
group:      compat
# per libc5: group: files nisplus
shadow:     compat
# per libc5: shadow: files nisplus

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


Avanti Indietro Indice