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 tekens | 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 tekens bevatten) | - | 2048-bit (256-byte PSK, ingevoerd als 512 hexadecimale cijfers) |
OpenSSL 1.0.x, 1.1.0 | 127 bytes (kan UTF-8 tekens bevatten) | - | 2048-bit (256-byte PSK, ingevoerd als 512 hexadecimale cijfers) |
OpenSSL 1.1.1 | 127 bytes (kan UTF-8 tekens bevatten) | - | 512-bit (64-byte PSK, ingevoerd als 128 hexadecimale cijfers) |
OpenSSL 1.1.1a en later | 127 bytes (kan UTF-8 tekens bevatten) | - | 2048-bit (256-byte PSK, ingevoerd als 512 hexadecimale cijfers) |
De Zabbix-frontend staat configuratie toe tot een PSK-identiteitsreeks van 128 tekens 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 een toegestane lengte voor deze componenten.
Het overschrijden van de lengtebeperkingen kan leiden tot communicatiestoringen tussen Zabbix-componenten.
Voordat de Zabbix-server verbinding maakt met een agent met behulp van PSK, zoekt de server de geconfigureerde PSK-identiteit en PSK-waarde voor die agent op in de database (eigenlijk in de configuratiecache). Bij het ontvangen van een verbinding gebruikt de agent de PSK-identiteit en PSK-waarde uit het configuratiebestand. Als beide partijen dezelfde PSK-identiteitsreeks en PSK-waarde hebben, kan de verbinding lukken.
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 identiteitsreeks maar verschillende waarden. Het niet naleven van deze regel kan leiden tot onvoorspelbare fouten of verstoringen van de communicatie tussen Zabbix-componenten die PSK's gebruiken met deze PSK-identiteitsreeks.
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 de host van de agent, schrijf de PSK-waarde in een bestand, bijvoorbeeld /home/zabbix/zabbix_agentd.psk
. Het bestand moet de PSK bevatten in de eerste tekstreeks, bijvoorbeeld:
Stel de toegangsrechten in voor het PSK-bestand - het moet alleen leesbaar zijn voor de Zabbix-gebruiker.
Bewerk de TLS-parameters in het configuratiebestand van de agent zabbix_agentd.conf
, bijvoorbeeld:
De agent zal verbinding maken met de server (actieve checks) en alleen verbindingen accepteren van de server en zabbix_get
met behulp van PSK. De PSK-identiteit wordt "PSK 001".
Herstart de agent. Nu kun je 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 je het verbindingsstype kunt wijzigen in Beheer van vercijferde verbindingen).
Configureer versleuteling met PSK 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 nieuwe verbindingen PSK gebruiken. Controleer de logbestanden van de server en 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 tekstreeks, bijvoorbeeld:
Stel de toegangsrechten in voor het PSK-bestand - het moet alleen leesbaar zijn voor de Zabbix-gebruiker.
Bewerk de TLS-parameters in het configuratiebestand van de proxy zabbix_proxy.conf
, bijvoorbeeld:
De proxy zal verbinding maken met de server met behulp van PSK. De PSK-identiteit wordt "PSK 002".
(Om de downtime te minimaliseren, zie hoe je het verbindingsstype kunt wijzigen in Beheer van vercijferde verbindingen).
Configureer PSK voor deze proxy in de Zabbix frontend. Ga naar Administratie → Proxies, selecteer de proxy, ga naar het tabblad "Versleuteling". Markeer bij "Verbindingen van proxy" PSK
. Plak in het veld "PSK-identiteit" "PSK 002" en in het veld "PSK" "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9". 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 proxy op foutmeldingen.
Voor een passieve proxy is de procedure erg vergelijkbaar. Het enige verschil is dat je TLSAccept=psk
instelt in het configuratiebestand van de proxy en "Verbindingen naar proxy" in de Zabbix frontend instelt op PSK
.