[comment]: # translation:outdated

[comment]: # ({14d0ad91-14d0ad91})
# 2 Utilizzo delle chiavi precondivise

[comment]: # ({/14d0ad91-14d0ad91})

[comment]: # ({3935bdee-3935bdee})
#### Panoramica

Ogni chiave pre-condivisa (PSK) in Zabbix è in realtà una coppia composta da:

-   stringa di identità PSK non segreta,
-   valore della stringa PSK segreta.

La stringa di identità PSK è una stringa UTF-8 non vuota. Ad esempio, "PSK ID
001 Zabbix agentd". È un nome univoco con cui questo specifico PSK viene
riferito dai componenti di Zabbix. Non inserire informazioni sensibili nella
stringa di identità PSK: viene trasmessa sulla rete senza crittografia.

Il valore PSK è una stringa di cifre esadecimali difficile da indovinare, ad esempio,
"e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9".

[comment]: # ({/3935bdee-3935bdee})

[comment]: # ({540b9ee2-a75bbda5})
#### Limiti di dimensione

In Zabbix esistono limiti di dimensione per l'identità e il valore PSK; in alcuni
casi una libreria crittografica può avere un limite inferiore:

|Componente|Dimensione massima identità PSK|Dimensione minima valore PSK|Dimensione massima valore PSK|
|---------|-------------------------------|----------------------------|-----------------------------|
|*Zabbix*|128 caratteri UTF-8|128 bit (PSK da 16 byte, inserita come 32 cifre esadecimali)|2048 bit (PSK da 256 byte, inserita come 512 cifre esadecimali)|
|*GnuTLS*|128 byte (può includere caratteri UTF-8)|\-|2048 bit (PSK da 256 byte, inserita come 512 cifre esadecimali)|
|*OpenSSL 1.0.x, 1.1.0*|127 byte (può includere caratteri UTF-8)|\-|2048 bit (PSK da 256 byte, inserita come 512 cifre esadecimali)|
|*OpenSSL 1.1.1*|127 byte (può includere caratteri UTF-8)|\-|512 bit (PSK da 64 byte, inserita come 128 cifre esadecimali)|
|*OpenSSL 1.1.1a e successive*|127 byte (può includere caratteri UTF-8)|\-|2048 bit (PSK da 256 byte, inserita come 512 cifre esadecimali)|

::: noteimportant
 Zabbix frontend consente di configurare una stringa di identità PSK lunga fino a 128 caratteri e una PSK lunga fino a 2048 bit indipendentemente dalle librerie crittografiche utilizzate.<br>
Se alcuni componenti Zabbix supportano limiti inferiori, è responsabilità dell'utente configurare identità e valore PSK con una lunghezza consentita per tali componenti.<br>
Il superamento dei limiti di lunghezza comporta errori di comunicazione tra i
componenti Zabbix. 
:::

Prima che Zabbix server si connetta all'agent usando PSK, il server cerca
nel database l'identità PSK e il valore PSK configurati per quell'agent
(in realtà nella cache di configurazione). Quando riceve una connessione, l'agent
utilizza l'identità PSK e il valore PSK dal proprio file di configurazione. Se entrambe
le parti hanno la stessa stringa di identità PSK e lo stesso valore PSK, la connessione
può riuscire.

::: noteimportant
 Ogni identità PSK deve essere associata a un solo
valore. È responsabilità dell'utente assicurarsi che non esistano due
PSK con la stessa stringa di identità ma valori diversi. In caso contrario,
si possono verificare errori imprevedibili o interruzioni della comunicazione tra i componenti Zabbix
che utilizzano PSK con questa stringa di identità PSK. 
:::

[comment]: # ({/540b9ee2-a75bbda5})

[comment]: # ({3e166db9-3e166db9})
#### Generazione della PSK

Ad esempio, una PSK a 256 bit (32 byte) può essere generata utilizzando i
seguenti comandi:

-   con *OpenSSL*:

```{=html}
<!-- -->
```
      $ openssl rand -hex 32
      af8ced32dfe8714e548694e2d29e1a14ba6fa13f216cb35c19d0feb1084b0429

-   con *GnuTLS*:

```{=html}
<!-- -->
```
      $ psktool -u psk_identity -p database.psk -s 32
      Generazione di una chiave casuale per l'utente 'psk_identity'
      Chiave salvata in database.psk
      
      $ cat database.psk 
      psk_identity:9b8eafedfaae00cece62e85d5f4792c7d9c9bcc851b23216a1d300311cc4f7cb

Si noti che "psktool" sopra genera un file di database con un'identità PSK
e la PSK associata. Zabbix si aspetta solo una PSK nel file PSK, quindi
la stringa di identità e i due punti (':') devono essere rimossi dal file.

[comment]: # ({/3e166db9-3e166db9})

[comment]: # ({43b9af4e-0c5c40b9})
#### Configurazione di PSK per la comunicazione server-agent (esempio)

Sul host dell'agent, scrivere il valore PSK in un file, ad esempio
`/home/zabbix/zabbix_agentd.psk`. Il file deve contenere la PSK nella prima
riga di testo, ad esempio:

    1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952

Impostare i diritti di accesso al file PSK: deve essere leggibile solo dall'utente Zabbix.

Modificare i parametri TLS nel file di configurazione dell'agent `zabbix_agentd.conf`,
ad esempio impostare:

    TLSConnect=psk
    TLSAccept=psk
    TLSPSKFile=/home/zabbix/zabbix_agentd.psk
    TLSPSKIdentity=PSK 001

L'agent si connetterà al server (controlli attivi) e accetterà dal server
e da `zabbix_get` solo connessioni che utilizzano PSK. L'identità PSK sarà "PSK
001".

Riavviare l'agent. Ora è possibile testare la connessione usando `zabbix_get`,
ad esempio:

    zabbix_get -s 127.0.0.1 -k "system.cpu.load[all,avg1]" --tls-connect=psk --tls-psk-identity="PSK 001" --tls-psk-file=/home/zabbix/zabbix_agentd.psk

(Per ridurre al minimo il tempo di inattività, vedere come modificare il tipo di connessione in [Connection
encryption
management](/manual/encryption#connection-encryption-management)).

Configurare la cifratura PSK per questo agent nel frontend di Zabbix:

-   Andare in: *Data collection → Hosts*
-   Selezionare l'host e fare clic sulla scheda **Encryption**

Esempio:

![psk\_config.png](../../../assets/en/manual/encryption/psk_config.png){width="600"}

Tutti i campi di input obbligatori sono contrassegnati con un asterisco rosso.

Quando la cache di configurazione viene sincronizzata con il database, le nuove
connessioni utilizzeranno PSK. Controllare i file di log del server e dell'agent per eventuali messaggi di errore.

[comment]: # ({/43b9af4e-0c5c40b9})

[comment]: # ({5b4b0ac1-2200dfcb})
#### Configurazione di PSK per la comunicazione server - proxy attivo (esempio)

Sul proxy, scrivere il valore PSK in un file, ad esempio
`/home/zabbix/zabbix_proxy.psk`. Il file deve contenere la PSK nella prima
riga di testo, ad esempio:

    e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9

Impostare i diritti di accesso al file PSK: deve essere leggibile solo dall'utente Zabbix.

Modificare i parametri TLS nel file di configurazione del proxy `zabbix_proxy.conf`, ad
esempio impostare:

    TLSConnect=psk
    TLSPSKFile=/home/zabbix/zabbix_proxy.psk
    TLSPSKIdentity=PSK 002

Il proxy si connetterà al server utilizzando PSK. L'identità PSK sarà "PSK
002".

(Per ridurre al minimo il tempo di inattività, vedere come modificare il tipo di connessione in [Connection
encryption
management](/manual/encryption#connection-encryption-management)).

Configurare la PSK per questo proxy nel frontend di Zabbix. Andare in
*Administration→Proxies*, selezionare il proxy, quindi aprire la scheda "Encryption". In
"Connections from proxy" selezionare `PSK`. Incollare nel campo "PSK identity"
"PSK 002" e
"e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9" nel
campo "PSK". Fare clic su "Update".

Riavviare il proxy. Inizierà a utilizzare connessioni cifrate basate su PSK verso il
server. Controllare i file di log del server e del proxy per eventuali messaggi di errore.

Per un proxy passivo la procedura è molto simile. L'unica differenza è:
impostare `TLSAccept=psk` nel file di configurazione del proxy e impostare "Connections to
proxy" nel frontend di Zabbix su `PSK`.

[comment]: # ({/5b4b0ac1-2200dfcb})
