Gli strumenti per la distribuzione dei comandi supportano i trasporti sia della shell remota (rsh o rcmd) sia i trasporti ssh. Per autorizzare l’utente che avvia l’operazione di distribuzione dei comandi ed eseguirne uno nel sistema remoto di destinazione, ciascuno di essi richiede delle specifiche operazioni di configurazione. Per gli strumenti di distribuzione dei comandi è necessario che il sistema remoto non chieda la password. Per consentire questo accesso non interattivo, sia il trasporto di rsh, sia di ssh dovranno essere preconfigurati in ogni sistema remoto. Le sezioni seguenti descrivono le operazioni di configurazione necessarie per abilitare le operazioni di distribuzione dei comandi per ogni tipo di trasporto.
Impostazione della protezione per la shell remota |
 |
Quando si utilizza il trasporto dei comandi con la shell remota, il file $HOME/.rhosts dell’utente locale deve essere configurato in ogni sistema remoto di destinazione. Per i dettagli sulla configurazione del file $HOME/.rhosts, consultare la manpage rhosts(4).
Impostazione della protezione per ssh |
 |
ssh utilizza le chiavi pubbliche dell’host per l’autenticazione degli host remoti e supporta l’autenticazione della chiave pubblica per autenticare gli utenti. Quando le chiavi pubbliche degli utenti sono configurate correttamente in un gruppo di sistemi remoti, questi saranno in grado di accedervi senza che sia richiesta una password. La configurazione manuale di ssh per l’accesso non interattivo è una procedura in più fasi, in cui i file di configurazione di ssh saranno modificati in ogni sistema. Lo strumento csshsetup semplifica moltissimo la configurazione della relazione di fiducia per ssh. Ad esempio, quando si utilizzano gli strumenti per la distribuzione dei comandi in un cluster Serviceguard, in genere si desidera di poter eseguire i comandi da un qualsiasi membro e di poterli indirizzare verso qualsiasi altro membro. Questo richiede la distribuzione di n^2 chiavi pubbliche per ssh. Cominciare creando un file di testo che elenchi i membri del cluster, uno per riga. Eseguire csshsetup utilizzando questo file. Questo comando deve essere eseguito solo una volta, dato che configura ogni membro del cluster:
# csshsetup -r -f elenco_membri.txt
L'opzione -r indica a csshsetup di distribuire le chiavi in modo condiviso oppure in modo n^2. All’utente sarà chiesta la password in ogni host remoto. Quindi csshsetup automatizzerà tutta la procedura di distribuzione delle chiavi pubbliche.
L’uso di csshsetup non è specifico dei cluster Serviceguard; può essere utilizzato per un qualsiasi gruppo di sistemi. Inoltre, non è necessario che la relazione di fiducia sia bidirezionale. Omettere l’opzione -r quando si imposta una relazione di fiducia unidirezionale tra l’host corrente ed un gruppo di host remoti di destinazione. Per ulteriori dettagli, consultare la manpage csshsetup(1).
Note sulla sicurezza |
 |
Il protocollo della shell remota è intrinsecamente insicuro. Si tratta del protocollo utilizzato dai “comandi r” di Berkeley, rlogin, rcp, remsh, eccetera. Per ragioni di principio, molti amministratori di sistema disattivano l’uso dei comandi “r”. Ad esempio, lo strumento di rafforzamento della protezione Bastille offre l’opzione predefinita per disattivare questi servizi non sicuri. Se disattivati, l’opzione pdsh -R rsh per utilizzare il trasporto della shell remota non funzionerà.
Se i servizi “r” non sono stati disattivati, l’uso dell’opzione pdsh -R rsh da parte di utenti non privilegiati sarà comunque disattivato per impostazione predefinita, a causa dell’intrinseco rischio per la sicurezza. Per impostazione predefinita, solamente gli utenti con autorizzazioni di root saranno in grado di utilizzare l'opzione pdsh -R rsh. Questo perché le chiamate alla libreria rcmd della shell remota richiedono l'uso di una porta privilegiata. Anche se gli utenti privilegiati possono utilizzare -R rsh, il trasporto ssh è comunque preferibile.
Se nel proprio ambiente gli host e gli utenti sono fidati, sarà possibile abilitare l'uso dell'opzione pdsh -R rsh per gli utenti non privilegiati con i comandi seguenti:
# cd /opt/dsau/bin/pdsh
# chown root:bin pdsh
# chmod u+s pdsh