NetWorker: Identificazione dei client che richiedono la cancellazione delle informazioni peer "Errore-Errore protocollo SSL"
Summary: Nel file /nsr/logs/daemon.raw del server NetWorker sono presenti numerosi errori di tipo "Unable to complete SSL handshake with nsrexecd on host 'CLIENT_NAME': Si è verificato un errore in seguito a un errore del protocollo SSL." A parte un possibile problema di connessione, ciò rende difficile l'analisi dei registri per qualsiasi altra procedura di risoluzione dei problemi. Questo articolo evidenzia i passaggi che è possibile seguire per risolvere questo problema dalla connessione lato server e lato client. ...
Instructions
In alcune situazioni, il server NetWorker daemon.raw potrebbe essere inondata da errori di connessione di autenticazione GSS (Generic Security Service) tra due sistemi NetWorker:
MM/DD/YYYY HH:MM:SS 5 13 9 3635926784 26586 0 NSR_HOSTNAME nsrexecd SSL critical Unable to complete SSL handshake with nsrexecd on host 'CLIENT_NAME': An error occurred as a result of an SSL protocol failure. To complete this request, ensure that the certificate attributes for CLIENT_NAME and NSR_NAME match in the NSRLA database on each host.
Oppure
MM/DD/YYYY HH:mm:SS 5 12 10 11256 2900 0 NSR_NAME nsrexecd GSS critical An authentication request from CLIENT_NAME was denied. The 'NSR peer information' provided did not match the one stored by NSR_NAME. To accept this request, delete the 'NSR peer information' resource with the following attributes from NSR_NAME's NSRLA database: name: CLIENT_NAME; NW instance ID: CLIENT_ID; peer hostname: CLIENT_NAME MM/DD/YYYY HH:mm:SS 0 0 0 6384 6380 0 NSR_NAME nsrd NSR info Authentication Warning: Conflicting NSR peer information resources detected for host 'CLIENT_NAME'. Please check server daemon log for more information.
Dal server NetWorker, a un prompt dei comandi come utente root o amministratore, eseguire:
nsradmin -C -y -p nsrexecd "nsr peer information"
Questo comando controlla ogni risorsa del certificato peer nella risorsa del server NetWorker nsrladb e tenta di correggerlo. Questa operazione deve essere eseguita anche sui client che segnalano questo problema. Ciò può verificarsi per molti client e diventa difficile isolare tutti i diversi host che richiedono una correzione.
È possibile utilizzare il seguente processo per determinare quali sistemi richiedono l'esecuzione nsradmin -C -y o potrebbe richiedere l'eliminazione manuale delle informazioni peer.
Host Linux:
- Eseguire il rendering del
daemon.raw:
nsr_render_log -S "1 weeks ago" /nsr/logs/daemon.raw > /nsr/logs/daemon.out 2<&1
NOTA: In questo esempio viene eseguito solo il rendering dell'ultima 1 settimana di messaggi. In questo modo si evita di verificare la presenza di problemi peer che potrebbero non verificarsi più. Altri filtri sono spiegati in: NetWorker: Come utilizzare nsr_render_log (in inglese)
- Creare un file contenente solo gli errori di connessione dell'autenticazione GSS:
cat /nsr/logs/daemon.out | grep "SSL handshake" > GSS_error.out
Oppure:
cat /nsr/logs/daemon.out | grep "NSR peer information" > GSS_error.out
NOTA: A seconda dell'errore di autenticazione GSS specifico osservato, modificare la
filter Utilizzato da grep per raccogliere l'output richiesto.
- Creare un file contenente solo i nomi dei client dal file di output GSS:
cat GSS_error.out | awk {'print $24'} | sort > client.out
Questo comando utilizza i comandi awk e print di Linux per stampare solo column contenente il nome del client dal messaggio di errore di connessione SSL completo. A seconda del filter number used, modificare il numero di stampa per generare correttamente i nomi dei client se l'esempio precedente non restituisce i risultati previsti.
- Esaminare il file utilizzando il comando univoco per generare solo un'istanza di ciascuno dei client che riportano questo problema:
cat client.out | uniq
Esempio:
[root@nsrserver logs]# nsr_render_log daemon.raw > daemon.out 2<&1
[root@nsrserver logs]# cat daemon.out | grep "SSL handshake" > GSS_error.out
[root@nsrserver logs]# cat GSS_error.out | awk {'print $24'} | sort > client.out
[root@nsrserver logs]# cat client.out | uniq
'client1':
'client2':
'client3':
'client4':
'client5':
'client6':
I nomi host di cui sopra sono stati modificati; Ora, invece di centinaia di voci in daemon.raw, solo una voce per ogni client segnala questo comportamento.
- Connettersi ai sistemi client segnalati tramite SSH o RDP (Remote Desktop Protocol) e utilizzare un prompt dei comandi root/amministrativo per eseguire:
nsradmin -C -y -p nsrexecd "nsr peer information"
L'esecuzione di questo comando sul server e sul client dovrebbe garantire che il nsrladb in ogni sistema contiene le informazioni corrette sul certificato peer. Se viene rilevata una mancata corrispondenza, il certificato viene eliminato e il successivo tentativo di connessione tra il server e il client dovrebbe generarne uno nuovo.
Le nsradmin Il comando mostra quali host presentano una mancata corrispondenza e quale azione è stata intrapresa nell'output.
L'eliminazione manuale delle informazioni peer è descritta in dettaglio nell'articolo NetWorker: Correzione di informazioni NSR peer incoerenti
- I file di output possono essere eliminati quando non sono più necessari:
rm -rf filename
Host Windows:
- Aprire un prompt di Windows PowerShell come amministratore.
- Modificare le directory nella directory di log di NetWorker:
cd "C:\Program Files\EMC NetWorker\nsr\logs"
Nell'esempio si presuppone che venga utilizzato il percorso di installazione predefinito. Se NetWorker è stato installato in un'altra posizione, modificare il comando di conseguenza.
- Eseguire il rendering del
daemon.raw:
nsr_render_log -S "1 weeks ago" daemon.raw > daemon.out
NOTA: In questo esempio viene eseguito solo il rendering dell'ultima 1 settimana di messaggi. In questo modo si evita di verificare la presenza di problemi peer che potrebbero non verificarsi più. Altri filtri sono spiegati in: NetWorker: Come utilizzare nsr_render_log (in inglese)
- Creare un file contenente solo gli errori di connessione dell'autenticazione GSS:
elect-String -Path .\daemon.out -pattern "SSL handshake" > GSS_error.out
Oppure:
Select-String -Path .\daemon.out -pattern "NSR peer information" > GSS_error.out
NOTA: A seconda dell'errore di autenticazione GSS specifico osservato, modificare "
filter" utilizzato da grep per raccogliere l'output richiesto.
- Generare un output che mostra i sistemi univoci che segnalano gli errori di autenticazione GSS:
Get-Content .\GSS_error.out | %{ $_.Split(' ')[9]; } | Sort | Unique
filter number used, modificare il numero di stampa per generare i nomi dei client se l'esempio precedente non restituisce i risultati previsti.
Esempio:
PS C:\Program Files\EMC NetWorker\nsr\logs> Get-Content .\GSS_error.out | %{ $_.Split(' ')[9]; } | Sort | Unique
13120
13932
2808
2828
2856
2900
2920
2956
5716
6088
6328
6380
6772
6852
8196
9388
networker-mc.emclab.local
redhat.emclab.local
winsrvr.emclab.local
- Connettersi ai sistemi client segnalati tramite SSH o RDP e utilizzare un prompt dei comandi root/amministrativo per eseguire:
nsradmin -C -y -p nsrexecd "nsr peer information"
L'esecuzione di questo comando sul server e sul client dovrebbe garantire che il nsrladb in ogni sistema contiene le informazioni corrette sul certificato peer. Se viene rilevata una mancata corrispondenza, il certificato viene eliminato e il successivo tentativo di connessione tra il server e il client dovrebbe generarne uno nuovo.
Le nsradmin Il comando mostra quali host presentano una mancata corrispondenza e quale azione è stata intrapresa nell'output.
L'eliminazione manuale delle informazioni peer è descritta in dettaglio nell'articolo NetWorker: Correzione di informazioni NSR peer incoerenti
- I file di output possono essere eliminati quando non sono più necessari.