NIS 
Introduzione NIS è stato per tantissimi anni, uno dei servizi maggiormente utilizzato per la gestione/autenticazione centralizzata degli utenti. Con l'avvento di LDAP è andato via via scomparendo anche se in alcuni casi, ancora oggi, qualcuno continua ad utilizzarlo. Ricordiamo che il servizio NIS, non è il massimo della sicurezza in quanto le informazioni di autenticazione tra client e server vengono scambiati in chiaro. Considerato comunque l'utilizzo storico, vale la pena ricordare il principio di funzionamento e la procedura di configurazione. Esso è costituito dai seguenti tools: ypbind, ypserv e yppasswd. Il suffisso yp sta ad indicare Yellow Page.
Configurare un NIS server Il primo passo
consiste nell'impostare un dominio NIS di riferimento, denominato ad
esempio nislinuxguide (possibilmente diverso dal dominio DNS) su tutte le linux server e client che devono afferrire al servizo NIS; con il comando:
# domainname -y nislinuxguide
per rendere permanente l'afferenza, è necessario aggiungere al file /etc/sysconfig/network:
# NISDOMAIN=nislinuxguide
Dopo bisogna stabilire quali file di sistema che intervengono nella gestione degli account
devono essere disponibili ai client. Nel file /var/yp/Makefile, nella direttiva all sono indicate le "mappe" che i client nis posso importare dal server per la gestione degli account.
Rimuovere dalla direttiva "all" le mappe che non si desiderano esportare.
all: passwd group hosts rpc services netid protocols mail
Si procede poi alla configurazione del file /var/yp/securenets per definire i client autorizzati a contattare il server NIS.
# Autorizza localhost
0.0.0.0 255.0.0.0 127.0.0.0 # Questa linea permette l'accesso a
tutti, meglio specificare le reti autorizzate 0.0.0.0
Infine, è necessario inserire all'interno del file /etc/ypserv.conf gli indirizzi ip dei client che oltre al precedente permesso indicato, possono richiedere una o più mappe fra quelle esportate dal server, il catarattere '*' abilita tutti i client nis.
# Host : Map : Security
# tutti I clients posso richiedere questa mappa * : passwd.byname : port : yes # tutti I clients posso richiedere questa mappa * : passwd.byuid : port : yes # tutti I clients posso richiedere questa mappa * : group.byname : port : yes #
soltanto il client 192.168.200.253 può richiedere questa mappa 192.168.200.253 : mail.aliases : port : yes
NIS,
utilizza il demone portmap(RPC di SUN Microsystem) come servizio
sottostante, quindi è necessario attivare il demone portmap. Nis
utilizza una porta UDP scelta a caso.
Infine occorre attivare i servizi:
# /etc/init.d/portmap start
# /etc/init.d/ypserv start
e rendere tali servizi disponibili al prossimo riavvio del server # chkconfig --level 35 portmap on
# chkconfig --level 35 ypserv on
Per verificare il funzionamento del servizio NIS si utilizza il comando:
# rpcinfo -u localhost ypserv
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
A questo punto il server NIS deve generare il database con le mappe da esportare; a tal fine si utilizza il comando:
# /usr/lib/yp/ypinit -m
Verificate poi che nella directory /var/yp/nislinuxguide vengono creati i relativi file binari ossia le mappe NIS:
ll /var/yp/nislinuxguide/
-rw------- 1 root root 12444 21 ago 15:43 group.bygid
-rw------- 1 root root 12448 21 ago 15:43 group.byname
-rw------- 1 root root 12525 21 ago 15:43 hosts.byaddr
-rw------- 1 root root 12640 21 ago 15:43 hosts.byname
-rw------- 1 root root 13184 21 ago 15:43 mail.aliases
-rw------- 1 root root 13595 21 ago 15:43 netid.byname
-rw------- 1 root root 12770 21 ago 15:43 passwd.byname
-rw------- 1 root root 12750 21 ago 15:43 passwd.byuid
-rw------- 1 root root 29201 21 ago 15:43 protocols.byname
-rw------- 1 root root 14516 21 ago 15:43 protocols.bynumber
-rw------- 1 root root 16431 21 ago 15:43 rpc.byname
-rw------- 1 root root 14247 21 ago 15:43 rpc.bynumber
-rw------- 1 root root 49603 21 ago 15:43 services.byname
-rw------- 1 root root 102429 21 ago 15:43 services.byservicename
-rw------- 1 root root 12379 21 ago 15:43 ypservers
Quando sul master server si eseguono modifiche sui file di sistema esportati via NIS occorre ripropagare le mappe nis
sui vari client compreso i server slave, con i comandi:
# cd /var/yp
# make
Il programma
rpc.ypxfrd è utilizzato per velocizzare il trasferimento di mappe NIS molto grandi da un server NIS master ai server slave.
Se un server NIS slave riceve un messaggio il quale notifica la presenza di una nuova mappa, esso avvierà ypxfr per il trasferimento della nuova mappa. ypxfr leggerà i contenuti della mappa dal
server master utilizzando la funzione yp_all(). Questo processo può impiegare diversi minuti in presenza di mappe molto grandi che devono essere salvate dalla libreria.
è necessario avviare rpc.ypxfrd solo sul server NIS master col comando rpc.ypxfrd.
Configurare un Client NIS Aggiungere all'interno del file /etc/sysconfig/network la direttiva:
NISDOMAIN=nislinuxguide
Dopo editare il file /etc/yp.conf e impostare gli ip address del server nis e del server slave
domainname nislinuxguide server 192.168.200.253 domainname nislinuxguide server 192.168.200.254
Per assicurasi di aver assegnato il nome di dominio NIS correttamente si usa il comando: # domainname -y
nel nostro esempio visualizzeremo nislinuxguide
Accesso utenti
In generale, per fare in modo che gli utenti NIS del dominio a cui si
fa riferimento possano accedere da un certo client, occorre aggiungere
in coda un record speciale nei file /etc/passwd, /etc/group e
/etc/shadow sul client nis:
su /etc/passwd +::::::
su /etc/group +:::
su /etc/shadow
+::::::
Potrete pure utilizzare i caratteri + e - per abilitare/disabilitare gli utenti che potranno accedere al cominio NIS.
Se desiderate escludere l'utente guest, aggiungete semplicemente
-guest::::::: al vostro file /etc/passwd.
Se volete usare una differente shell (p.e. ksh) per l'utente "linux",
semplicemente aggiungete +linux::::::/bin/ksh al vostro file
/etc/passwd.
Potete pure utilizzare Netgroups per il controllo dell'utente.
Per esempio, per permettere l'accesso-login solo a dom, marco e linuxguide configuriamo il file /etc/passwd in questo modo:
+dom::::::: +marco::::::: +linuxguide::::::: Se vogliamo abilitare tutti i membri del netgroup sysadmin, configuriamo il nostro file /etc/passwd ne seguente modo:
+@sysadmins:::::::
Inserimento a dominio NIS Per agganciare un client al dominio NIS è necessario avviare nel seguente ordine tali servizi:
# /etc/ini.d/portmap start
# /etc/ini.d/ypbind start oppure eseguite il comando ypbind
Per verificare l'avvenuto inserimento al dominio e la funzionalità del
portmapper(demone necessario al funzionamento del NIS), si invia il
comando:
rpcinfo -p localhost
programma vers proto porta
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100007 2 udp 820 ypbind
100007 1 udp 820 ypbind
100007 2 tcp 823 ypbind
100007 1 tcp 823 ypbind
A
questo punto è possibile utilizzare i vari programmi client NIS, per
esempio ypcat il quale mostra l'elenco delle password trasferite dal
NIS server:
ypcat passwd
drigattieri:$1$OQ7P4.Jc$FBx/FAHdVBOOvlTD5yNIt1:500:503:Domenico Rigattieri:/nishome/drigattieri:/bin/bash
mrigattieri:$1$aBYtg8uP$mPHQjDbGL4KP9zESDiZwr.:501:100:Marco Rigattieri:/nishome/mrigattieri:/bin/bash
linuxguide:$1$7sJjzfug$byjHHef5gKOGXSsEX.pAe/:502:502::/nishome/linuxguide:/bin/bash
Per completare la configurazione del nis client bisogna predisporre il sistema ad utilizzare il nuovo metodo di autenticazione.
Quindi occorre configurare alcune direttive sul file Network Services Switch in /etc/nsswitch.conf il quale determina l'ordine delle ricerche effettuate
quando viene richiesta una certa informazione, proprio come il file
/etc/host.conf che determina il modo in cui effettuare le ricerche
degli host.
Per esempio la riga:
hosts: files nis dns
specifica
che le funzioni di ricerca degli hosts dovrebbero prima guardare nel
file locale /etc/hosts, di seguito fare una ricerca NIS ed infine
utilizzare il servizio dei nomi di dominio dns.
Un esempio di file di configurazione funzionante dovrebbe essere il seguente:
passwd: compat #di default è passwd: files group: nis files #di default è group: files shadow: compat #di default è shadow: files passwd_compat: nis files #di default non esiste, va creato shadow_compat: nis files #di default non esiste, va creato hosts: nis files dns #di default è: hosts: files dns
Per la ricerca degli host si deve impostare (o aggiungere) "nis" alla
riga relativa all'ordine di ricerca nel vostro file /etc/host.conf.
Autenticazione
Il metodo di autenticazione fin qui descritto esporta soltanto gli
account degli utenti ma non ne esporta la home directory. Quindi,
se un utente prova ad accedere su una linux box con funzioni di nis
client utilizzando l'account definito sul NIS server non troverà la sua
home directory e pertanto non verrà caricato il suo profilo di utenza.
Per ovviare a questo inconveniente è possibile far si che quando un
utente effettua il login da qualsiasi client nis possa montare in nfs
la propria home directory residente sul NIS server
Sul server inserire all'interno del file /ect/exports la seguente direttiva:
#192.168.200.0 indica la rete dei client autorizzati /nishome 192.168.200.0/24(rw,no_root_squash)
Quindi /etc/ini.t/nfs start per avviare il servizio NFS
Per i nuovi utenti NIS da creare eseguite il seguente comando per
specificare il nuovo path /nishome/... piuttosto che /home/.. di
default:
# useradd nuovo_utente -d /nishome/nuovo_utente
Per gli utenti già esistenti che dovranno accedere al dominio seguite la seguente procedura:
# mv /home/utente_esistente /nishome/
# usermod utente_esistente -d /nishome/utente_esistente
Dopo eseguire i seguenti comandi sui clients:
# mkdir /nishome
# mount -t nfs -o rw nis1.linuxguide.it:/nishome /nishome Configurare un NIS server di Backup/Slave
Per impostare una macchina come server nis di backup/slave, occorre
prima configurarlo come client e poi procedere come segue:
# ypwhich -m
# /usr/lib/yp/ypinit -s nis1.linuxguide.it (nis1.linuxguide.it è il nome del server nis è possibile specificare anche l'IP)
Per completare la configurazione inseriamo in /etc/crontab le linee seguenti per aggiornare le mappe ogni ora, ogni giorno alle 12:40 e due volte al giorno(alle 2:55 e 18:55):
5 * * * * /usr/lib/yp/ypxfr_1perhour 40 12 * * * /usr/lib/yp/ypxfr_1perday 55 2,18 * * * /usr/lib/yp/ypxfr_2perday
|