Il modo standard per cambiare una password NIS è invocare yppasswd, su alcuni sistemi questo è solo un alias per passwd. Questo comando usa il protocollo yppasswd e necessita dell'esecuzione di un processo rpc.yppasswdd sul server NIS master. Il protocollo ha lo svantaggio che la vecchia password verrà trasmessa in chiaro attraverso la rete. Questo non è problematico, se la sostituzione della password avviene con successo. In questo caso, la vecchia password viene sostituita con una nuova. Ma se il cambiamento della password fallisce, un attaccante può utilizzare la password in chiaro per effettuare il login come questo utente. Ancora più pericoloso: se l'amministratore di sistema sostituisce la password NIS di un altro utente, la password di root del server NIS master è trasferita in chiaro sulla rete. E questo non verrà cambiato.
Una soluzione è non utilizzare yppasswd per sostituire la password. Invece, una buona alternativa è il comando rpasswd dal pacchetto pwdutils.
Sito Directory Nome File ftp.kernel.org /pub/linux/utils/net/NIS pwdutils-2.3.tar.gz ftp.suse.com /pub/people/kukuk/pam/pam_pwcheck pam_pwcheck-2.2.tar.bz2 ftp.suse.com /pub/people/kukuk/pam/pam_unix2 pam_unix2-1.16.tar.bz2 |
rpasswdcambia le password per gli account degli utenti su un server remoto tramite una connessione sicura SSL. Un utente normale può cambiare solo la password del proprio account, se l'utente conosce la password per l'account dell'amministratore (al momento questa è la password di root sul server), egli può sostituire la password per ogni account se invoca rpasswd con l'opzione -a.
Per il server si necessita innanzitutto del certificato, il nome del file predefinito per questo è /etc/rpasswdd.pem. Il file può essere creato con il seguente comando:
openssl req -new -x509 -nodes -days 730 -out /etc/rpasswdd.pem -keyout /etc/rpasswdd.pem |
È necessario anche un file di configurazione di PAM per rpasswdd . Se gli account NIS sono archiviati in /etc/passwd, la seguente è un buon punto di partenza per un configurazione di lavoro:
#%PAM-1.0 auth required pam_unix2.so account required pam_unix2.so password required pam_pwcheck.so password required pam_unix2.so use_first_pass use_authtok password required pam_make.so /var/yp session required pam_unix2.so |
Se i sorgenti per le mappe delle password di NIS sono archiviati in un'altra posizione (per esempio in /etc/yp), l'opzione nisdir di pam_unix2 può essere usata per trovare i file sorgenti in altri luoghi:
#%PAM-1.0 auth required pam_unix2.so account required pam_unix2.so password required pam_pwcheck.so nisdir=/etc/yp password required pam_unix2.so nisdir=/etc/yp use_first_pass use_authtok password required pam_make.so /var/yp session required pam_unix2.so |
Ora si avvii il demone rpasswdd sul server master NIS.
Poiché il cambio della password viene fatto con moduli PAM, rpasswdd è pure in grado di permettere i cambiamenti delle password per NIS+, LDAP o altri servizi supportati da un modulo di PAM.
Su ogni client è necessario solo il file di configurazione /etc/rpasswd.conf che contiene il nome del server. Se il server non parte sulla porta predefinita, la porta corrente può pure essere menzionata qui:
# rpasswdd eseguito su master.example.com server master.example.com # La porta 774 è la porta predefinita port 774 |