User Tools

Site Tools


doc:appunti:linux:sa:nis

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:nis [2018/01/03 12:04] – [NIS client] niccolodoc:appunti:linux:sa:nis [2020/12/16 16:27] (current) niccolo
Line 1: Line 1:
-====== Installazione NIS server ======+====== Network Information Service ======
  
-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).+Pages relate to **[[wp>Network_Information_Service]]**.
  
-Fare attenzione al contenuto dei seguenti file: +  * **[[nis_server]]** 
- +  * **[[nis_user_shutdown_problem]]**
-  * **/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: +
- +
-<file> +
-127.0.0.1       localhost.localdomain localhost +
-10.0.1.47       nisserver.mydomain.org nisserver +
-</file> +
- +
-Poiché vogliamo essere **NIS master server**, in ''**/etc/default/nis**'' si imposta +
-<file> +
-NISSERVER=master +
-</file> +
- +
-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): +
- +
-<file> +
-255.255.255.0 10.0.1.0 +
-</file> +
- +
-**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: +
- +
-<file> +
-# 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 +
-</file> +
- +
-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: +
- +
-<code> +
-ypserv[9960]: refused connect from 192.168.144.2:46594 to procedure ypproc_domain_nonack (mydomain.org,;0) +
-</code> +
- +
-Bisogna **inizializzare il database** del dominio NIS, che verrà tenuto nella directory **''/var/yp/mydomain.org/''**. Si usa il comando +
- +
-<code> +
-/usr/lib/yp/ypinit -m +
-</code> +
- +
-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//: +
- +
-<code> +
-/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 +
-</code> +
- +
-====== 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**'': +
- +
-<file> +
-YPSRCDIR = /var/yp/ypfiles +
-YPPWDDIR = /var/yp/ypfiles +
-</file> +
- +
-Si deve editare anche **''/etc/default/nis''**: +
- +
-<file> +
-YPPWDDIR=/var/yp/ypfiles +
-</file> +
- +
-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 +
- +
-Dopo aver modificato il contenuto di tali file bisogno aggiornare lo stato del server NIS: +
- +
-<code> +
-make -C /var/yp +
-</code> +
- +
-Per far partecipare gli utenti NIS a gruppi di sistema (ad esempio plugdev, lpadmin, ecc. di Ubuntu) bisogna aggiungere le voci opportune in **''/var/yp/ypfiles/group''** e modificare il valore di **''MINGID''** in ''/var/yp/Makefile'' in modo che tali gruppi siano esportati via NIS. +
-====== 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: +
- +
-<file> +
-+:::::: +
-</file> +
- +
-Analogamente in **''/etc/shadow''** e **''/etc/group''** si deve mettere rispettivamente: +
- +
-<file> +
-+:::::::: +
-</file> +
- +
-<file> +
-+::: +
-</file> +
- +
-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''**: +
- +
-<file> +
-# We states NIS servers explicitly to avoid broadcast requests. +
-ypserver bianca.rigacci.org +
-ypserver neve.rigacci.org +
-</file> +
- +
-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''+
- +
-L'utente autenticato via NIS può cambiare la propria password con **''yppasswd''**. Durante il cambio password **il server NIS indica al client il nome dello stesso server**, quindi il client deve poterlo **risolvere in indirizzo IP**. Verificare le opportune impostazioni di **/etc/hosts**, ecc. +
-====== 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: +
- +
-<file> +
-20 *    * * *    root  /usr/lib/yp/ypxfr_1perhour >/dev/null 2>&+
-40 6    * * *    root  /usr/lib/yp/ypxfr_1perday  >/dev/null 2>&+
-55 6,18 * * *    root  /usr/lib/yp/ypxfr_2perday  >/dev/null 2>&+
-</file> +
- +
-====== 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 [[nfs|pagina relativa]]+
- +
-In particolare si devono indicare le porte per **ypserv**, **yppasswdd**, FIXME ypbind, fypxfrd. +
- +
-In un sistema Debian vedere **''/etc/default/nis''**: +
- +
-<file> +
-YPSERVARGS="--port 808" +
-YPPASSWDDARGS="--port 600" +
-</file> +
- +
-====== Directory home su NFS ====== +
- +
-Attenzione al percorso delle home directory, se si sceglie qualcosa di diverso da **''/home/''** potrebbe essere necessario aggiustare qualcosa, come la configurazione di **''apparmor''** nelle recenti versioni Ubuntu GNU/Linux (es. 12.04). +
- +
-Il rischio è di incappare in errori "Permission denied" nella lettura o scrittura di file della propria home directory, nonostante che i permessi sembrino a posto, vedere ad esempio il [[https://bugs.launchpad.net/ubuntu/+source/evince/+bug/778638|bug 778638]]+
- +
-Ad esempio se le home directory sono state montate su **''/nfshome/''**, lanciando **''evince''** si può notare l'errore: +
- +
-<code> +
-(evince:21345): Gtk-WARNING **: Attempting to read the recently used resources file at +
-    `/nfshome/francesco/.local/share/recently-used.xbel', +
-    but the parser failed: Failed to open file '/nfshome/francesco/.local/share/recently-used.xbel': Permission denied. +
-</code> +
- +
-contestualmente il kernel logga: +
- +
-<code> +
-Jan  9 11:35:02 nisclient kernel: [ 5422.898561] type=1400 audit(1357727702.213:1085): +
-    apparmor="DENIED" operation="chmod" parent=12077 profile="/usr/bin/evince" +
-    name="/nfshome/francesco/.local/share/recently-used.xbel" pid=12470 comm="evince" +
-    requested_mask="w" denied_mask="w" fsuid=1003 ouid=1003 +
-</code> +
- +
-In questo caso è sufficiente modificare il file **''/etc/apparmor.d/tunables/home''** impostando: +
- +
-<file> +
-@{HOMEDIRS}=/home/ /nfshome/ +
-</file>+
doc/appunti/linux/sa/nis.1514977473.txt.gz · Last modified: 2018/01/03 12:04 by niccolo