Elke vooraf gedeelde sleutel (PSK) in Zabbix is eigenlijk een paar van:
De PSK identiteitssnaar is een niet-lege UTF-8 snaar. Bijvoorbeeld, "PSK ID 001 Zabbix agentd". Het is een unieke naam waarnaar deze specifieke PSK wordt verwezen door Zabbix-componenten. Plaats geen gevoelige informatie in de PSK identiteitssnaar - deze wordt onversleuteld over het netwerk verzonden.
De PSK waarde is een moeilijk te raden snaar van hexadecimale cijfers, bijvoorbeeld, "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9".
Er zijn groottebeperkingen voor PSK-identiteit en -waarde in Zabbix, in sommige gevallen kan een cryptobibliotheek een lagere limiet hebben:
Component | Maximale grootte PSK-identiteit | Minimale grootte PSK-waarde | Maximale grootte PSK-waarde |
---|---|---|---|
Zabbix | 128 UTF-8 karakters | 128-bit (16-byte PSK, ingevoerd als 32 hexadecimale cijfers) | 2048-bit (256-byte PSK, ingevoerd als 512 hexadecimale cijfers) |
GnuTLS | 128 bytes (kan UTF-8 karakters bevatten) | - | 2048-bit (256-byte PSK, ingevoerd als 512 hexadecimale cijfers) |
OpenSSL 1.0.x, 1.1.0 | 127 bytes (kan UTF-8 karakters bevatten) | - | 2048-bit (256-byte PSK, ingevoerd als 512 hexadecimale cijfers) |
OpenSSL 1.1.1 | 127 bytes (kan UTF-8 karakters bevatten) | - | 512-bit (64-byte PSK, ingevoerd als 128 hexadecimale cijfers) |
OpenSSL 1.1.1a en later | 127 bytes (kan UTF-8 karakters bevatten) | - | 2048-bit (256-byte PSK, ingevoerd als 512 hexadecimale cijfers) |
De Zabbix-frontend staat configuratie toe tot 128 tekens lange PSK-identiteitssnaar en een PSK van 2048 bits, ongeacht de gebruikte cryptobibliotheken.
Als sommige Zabbix-componenten lagere limieten ondersteunen, is het de verantwoordelijkheid van de gebruiker om de PSK-identiteit en -waarde te configureren met de toegestane lengte voor deze componenten.
Het overschrijden van de lengtelimieten kan leiden tot communicatiefouten tussen Zabbix-componenten.
Voordat de Zabbix-server verbinding maakt met een agent met behulp van PSK, zoekt de server de PSK-identiteit en -waarde op die is geconfigureerd voor die agent in de database (eigenlijk in de configuratiecache). Bij het ontvangen van een verbinding gebruikt de agent de PSK-identiteit en -waarde uit zijn configuratiebestand. Als beide partijen dezelfde PSK-identiteitssnaar en PSK-waarde hebben, kan de verbinding slagen.
Elke PSK-identiteit moet worden gekoppeld aan slechts één waarde. Het is de verantwoordelijkheid van de gebruiker om ervoor te zorgen dat er geen twee PSK's zijn met dezelfde identiteitssnaar maar met verschillende waarden. Als dit niet wordt gedaan, kan dit leiden tot onvoorspelbare fouten of verstoringen van de communicatie tussen Zabbix-componenten die PSK's gebruiken met deze PSK-identiteitssnaar.
Bijvoorbeeld, een 256-bit (32 bytes) PSK kan worden gegenereerd met de volgende commando's:
$ psktool -u psk_identiteit -p database.psk -s 32
Genereren van een willekeurige sleutel voor gebruiker 'psk_identiteit'
Sleutel opgeslagen in database.psk
$ cat database.psk
psk_identiteit:9b8eafedfaae00cece62e85d5f4792c7d9c9bcc851b23216a1d300311cc4f7cb
Merk op dat "psktool" hierboven een databasebestand genereert met een PSK-identiteit en zijn bijbehorende PSK. Zabbix verwacht alleen een PSK in het PSK-bestand, dus de identiteitssnaar en de dubbele punt (':') moeten uit het bestand worden verwijderd.
Op het agent-hostsysteem, schrijf de PSK-waarde in een bestand, bijvoorbeeld, /home/zabbix/zabbix_agentd.psk
. Het bestand moet de PSK bevatten in de eerste tekstregel, bijvoorbeeld:
Stel de toegangsrechten voor het PSK-bestand in - het moet alleen leesbaar zijn voor de Zabbix-gebruiker.
Bewerk de TLS-parameters in het configuratiebestand van de agent, zabbix_agentd.conf
, bijvoorbeeld, stel in:
De agent zal verbinding maken met de server (actieve controles) en alleen verbindingen accepteren van de server en zabbix_get
die PSK gebruiken. De PSK-identiteit zal "PSK 001" zijn.
Herstart de agent. Nu kunt u de verbinding testen met behulp van zabbix_get
, bijvoorbeeld:
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
(Om de downtime te minimaliseren, zie hoe u het verbindinstype kunt wijzigen in Beheer van vercijfering van verbindingen).
Configureer PSK-versleuteling voor deze agent in de Zabbix-frontend:
Voorbeeld:
Alle verplichte invoervelden zijn gemarkeerd met een rode asterisk.
Wanneer de configuratiecache is gesynchroniseerd met de database, zullen de nieuwe verbindingen PSK gebruiken. Controleer de logbestanden van de server en de agent op foutmeldingen.
Op de proxy, schrijf de PSK-waarde in een bestand, bijvoorbeeld, /home/zabbix/zabbix_proxy.psk
. Het bestand moet de PSK bevatten in de eerste tekstregel, bijvoorbeeld:
Stel de toegangsrechten voor het PSK-bestand in - het moet alleen leesbaar zijn voor de Zabbix-gebruiker.
Bewerk de TLS-parameters in het configuratiebestand van de proxy, zabbix_proxy.conf
, bijvoorbeeld, stel in:
De proxy zal verbinding maken met de server met behulp van PSK. De PSK-identiteit zal "PSK 002" zijn.
(Om de downtime te minimaliseren, zie hoe u het verbindinstype kunt wijzigen in Beheer van vercijfering van verbindingen).
Configureer PSK voor deze proxy in de Zabbix-frontend. Ga naar Beheer→Proxies, selecteer de proxy, ga naar het tabblad "Encryptie". Markeer bij "Verbindingen van proxy" PSK
. Plak in het veld "PSK-identiteit" de tekst "PSK 002" en "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9" in het veld "PSK". Klik op "Bijwerken".
Herstart de proxy. Deze zal beginnen met het gebruiken van met PSK versleutelde verbindingen naar de server. Controleer de logbestanden van de server en de proxy op foutmeldingen.
Voor een passieve proxy is de procedure zeer vergelijkbaar. Het enige verschil - stel TLSAccept=psk
in het configuratiebestand van de proxy in en stel "Verbindingen naar proxy" in de Zabbix-frontend in op PSK
.