Avanti Indietro Indice

8. Mettere su un Server NIS

8.1 Il Programma Server ypserv

Questo documento descrive solamente come impostare il server NIS "ypserv".

Il software per il server NIS lo si può trovare su:

  Sito               Directory                    Nome File

  ftp.kernel.org     /pub/linux/utils/net/NIS     ypserv-1.3.6.tar.gz

Per maggiori informazioni si può dare un'occhiata anche a http://www.suse.de/~kukuk/linux/nis.html.

L'impostazione del server è la stessa sia per il NIS tradizionale che per NYS.

Si compili il software per generare i programmi ypserv e makedbm. È possibile configurare ypserv per usare il file securenets oppure tcp_wrapper. Il tcp_wrapper è molto più flessibile, ma un sacco di gente ha diversi problemi ad usarlo. Inoltre alcuni file di configurazione di tcp_wrapper possono causare spreco di memoria. Se si hanno problemi con ypserv compilato per tcp_wrapper, lo si ricompili usando il file securenets. Il comando ypserv --version mostrerà quale versione si sta usando.

Se si fa funzionare il proprio server come master, si determinino quali file si vuole siano disponibili tramite NIS e poi si aggiungano o rimuovano le voci apposite nella regola "all" in /var/yp/Makefile. Si dovrebbe comunque dare un'occhiata al Makefile e modificare le opzioni all'inizio del file.

C'è stato un solo grosso cambiamento tra ypserv 1.1 e ypserv 1.2. Dalla versione 1.2 ypserv fa il cache dei file handle. Ciò significa che si deve sempre lanciare makedbm con l'opzione -c se si creano delle nuove mappe. Sincerarsi di usare il nuovo /var/yp/Makefile di ypserv 1.2 o successivo, o si aggiunga l'opzione -c a makedbm nel Makefile. Se non lo si fa, ypserv continuerà ad usare le vecchie mappe e non quelle aggiornate.

Ora si modifichino /var/yp/securenets e /etc/ypserv.conf. Per maggiori informazioni, leggere le pagine di manuale di ypserv(8) e ypserv.conf(5).

Assicurarsi che il portmapper (portmap(8)) sia in esecuzione, e si avvii il server ypserv. Il comando

    % rpcinfo -u localhost ypserv

dovrebbe restituire qualcosa di simile a

    program 100004 version 1 ready and waiting
    program 100004 version 2 ready and waiting

La riga "version 1" potrebbe non esserci a seconda della versione di ypserv e della configurazione usata. È necessaria solamente se si usano vecchi client SunOS 4.x.

Ora si generi la base di dati NIS (YP). Sul master, si lanci

    % /usr/lib/yp/ypinit -m

Su uno slave, assicurarsi che ypwhich -m funzioni. Ciò significa che lo slave dev'essere per prima cosa configurato come client NIS prima di poter eseguire

    % /usr/lib/yp/ypinit -s masterhost
per installare l'host come slave NIS.

È tutto, il proprio server è attivo e in esecuzione.

Se si hanno grossi problemi, si può avviare ypserv e ypbind in modalità di debug su xterm separate. L'output di debug dovrebbe mostrare cosa non va.

Se si deve aggiornare una mappa, si esegua make nella directory /var/yp del NIS master. Ciò aggiornerà una mappa se il file sorgente è stato modificato e invierà i file ai server slave. Non usare ypinit per aggiornare una mappa.

Non è male poi modificare il crontab di root *nello slave* server ed aggiungere le righe seguenti

      20 *    * * *    /usr/lib/yp/ypxfr_1perhour
      40 6    * * *    /usr/lib/yp/ypxfr_1perday
      55 6,18 * * *    /usr/lib/yp/ypxfr_2perday
Ciò assicura che la maggior parte delle mappe NIS saranno mantenute aggiornate, anche se un aggiornamento è stato perso a causa di un malfunzionamento (down) dello slave al momento dell'aggiornamento sul master.

Uno slave può essere aggiunto in qualsiasi momento. Per prima cosa, assicurarsi che il nuovo server slave abbia i permessi per contattare il master NIS. Poi eseguire

    % /usr/lib/yp/ypinit -s masterhost
sul nuovo slave. Sul server master si aggiunga poi il nome del nuovo server slave in /var/yp/ypservers e si esegua make in /var/yp per aggiornare le mappe.

Se si vuole restringere l'accesso al proprio serve NIS agli utenti, si deve impostare il server NIS come un client eseguendo ypbind e aggiungere le voci-più ("+") a /etc/passwd _a mezza via_ del file delle password. Le funzioni di libreria ignoreranno tutte le normali voci dopo la prima voce NIS, ed otteranno le restanti informazioni attraverso NIS. In questo modo sono mantenute le regole di accesso NIS. Un esempio:

     root:x:0:0:root:/root:/bin/bash
     daemon:*:1:1:daemon:/usr/sbin:
     bin:*:2:2:bin:/bin:
     sys:*:3:3:sys:/dev:
     sync:*:4:100:sync:/bin:/bin/sync
     games:*:5:100:games:/usr/games:
     man:*:6:100:man:/var/catman:
     lp:*:7:7:lp:/var/spool/lpd:
     mail:*:8:8:mail:/var/spool/mail:
     news:*:9:9:news:/var/spool/news:
     uucp:*:10:50:uucp:/var/spool/uucp:
     nobody:*:65534:65534:noone at all,,,,:/dev/null:
     +miquels::::::
     +:*:::::/etc/NoShell
     [ Tutti i normali utenti DOPO questa riga! ]
     tester:*:299:10:Just a test account:/tmp:
     miquels:1234567890123:101:10:Miquel van Smoorenburg:/home/miquels:/bin/zsh

Quindi l'utente tester esisterà, ma avrà la shell impostata a /etc/NoShell. miquels avrà l'accesso normale.

In alternativa, si può modificare il file /var/yp/Makefile ed impostare NIS ad usare un altro file di password come sorgente. Su sistemi grossi, i file delle password e dei gruppi NIS sono solitamente salvati in /var/yp/ypfiles/. Se lo si fa i normali strumenti per l'amministrazione del file delle password come passwd, chfn e adduser non funzioneranno più e si avrà bisogno di speciali strumenti fatti su misura.

Comunque yppasswd, ypchsh e ypchfn ovviamente funzioneranno.

8.2 Il Programma Server yps

Per l'impostazione del server NIS "yps" si faccia riferimento al paragrafo precedente. L'impostazione del server "yps" è simile _ma_ non esattamente la stessa, quindi si faccia attenzione se si prova ad applicare le istruzione di "ypserv" a "yps"! "yps" non è supportato da alcun autore e contiene alcuni problemi di sicurezza. Quindi non è affatto consigliabile usarlo!

Il software per il server NIS "yps" può essere trovato su:

  Sito                   Directory                  Nome File

  ftp.lysator.liu.se    /pub/NYS/servers            yps-0.21.tar.gz
  ftp.kernel.org        /pub/linux/utils/net/NIS    yps-0.21.tar.gz

8.3 Il Programma rpc.ypxfrd

rpc.ypxfrd è usato per velocizzare i trasferimenti di grosse mappe NIS dal NIS master ai diversi slave. Se un server NIS slave riceve un messaggio che attesta la presenza di una nuova mappa, avvierà ypxfr per trasferire la nuova mappa. ypxfr leggerà il contenuto di una mappa dal server master usando la funzione yp_all(). Questo processo può durare diversi minuti quando esistono mappe molto grosse che devono essere salvate dalla libreria di database.

Il server rpc.ypxfrd velocizza il processo di trasferimento permettendo si server NIS slave di copiare semplicemente i file di mappa del master piuttosto che si costruiscano da soli la propria copia. rpc.ypxfrd usa un protocollo di trasferimento basato su RPC, cosicché non è necessario per la costruzione di nuove mappe.

rpc.ypxfrd può essere avviato da inetd. Però poiché si avvia molto lentamente, dovrebbe essere lanciato assieme a ypserv. È necessario avviare rpc.ypxfrd solo sul master.

8.4 Il Programma rpc.yppasswdd

Ogni qual volta gli utenti cambiano le loro password, la base di dati NIS delle password e probabilmente altre basi di dati NIS che dipendono da questa dovrebbero essere aggiornate. Il programma "rpc.yppasswdd" è un server che gestisce le modifiche delle password e assicura che le informazioni NIS sia aggiornate di conseguenza. rpc.yppasswdd è ora integrato in ypserv. Non serve più il vecchio yppasswd-0.9.tar.gz o yppasswd-0.10.tar.gz, e non dovrebbero essere più usati. Il rpc.yppasswd in ypserv 1.3.2 ha il pieno supporto per le shadow. yppasswd fa ora parte di yp-tools-2.2.tar.gz,

Si deve lanciare rpc.yppasswd solo nel server NIS master. Di default, gli utenti non hanno il permesso di cambiare il loro nome o la loro shell di login. È possibile permettere tali modifiche con le opzioni -e chfn o -e chsh.

Se i propri file passwd e shadow sono in una directory diversa da /etc, si deve aggiungere l'opzione -D. Per esempio, se si sono messi tutti i file sorgente in /etc/yp e si vuole che gli utenti possano cambiare la propria shell, si deve avviare rpc. yppasswdd con i seguenti parametri:

   rpc.yppasswdd -D /etc/yp -e chsh

oppure

   rpc.yppasswdd -s /etc/yp/shadow -p /etc/yp/passwd -e chsh

Non c'è molto altro da fare. Ci si deve solamente assicurare che rpc.yppasswdd usi gli stessi file di /var/yp/Makefile. Gli errori saranno registrati usando syslog.


Avanti Indietro Indice