13. Cambiare le password con rpasswd

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.

13.1. Configurazione del server

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.

13.2. Configurazione del Client

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