[comment]: # translation:outdated

[comment]: # ({14d0ad91-14d0ad91})
# 2 Używanie kluczy współdzielonych z wyprzedzeniem

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

[comment]: # ({3935bdee-3935bdee})
#### Przegląd

Każdy klucz pre-shared key (PSK) w Zabbix jest w rzeczywistości parą składającą się z:

-   jawnego ciągu identyfikatora PSK,
-   tajnej wartości ciągu PSK.

Ciąg identyfikatora PSK jest niepustym ciągiem UTF-8. Na przykład „PSK ID
001 Zabbix agentd”. Jest to unikalna nazwa, za pomocą której ten konkretny PSK jest
identyfikowany przez komponenty Zabbix. Nie umieszczaj poufnych informacji w
ciągu identyfikatora PSK — jest on przesyłany przez sieć bez szyfrowania.

Wartość PSK to trudny do odgadnięcia ciąg cyfr szesnastkowych, na przykład
„e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9”.

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

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

W Zabbix obowiązują ograniczenia rozmiaru dla tożsamości i wartości PSK; w niektórych
przypadkach biblioteka kryptograficzna może mieć niższy limit:

|Komponent|Maks. rozmiar tożsamości PSK|Min. rozmiar wartości PSK|Maks. rozmiar wartości PSK|
|---------|----------------------------|-------------------------|--------------------------|
|*Zabbix*|128 znaków UTF-8|128-bitów (16-bajtowy PSK, wprowadzany jako 32 cyfry szesnastkowe)|2048-bitów (256-bajtowy PSK, wprowadzany jako 512 cyfr szesnastkowych)|
|*GnuTLS*|128 bajtów (może zawierać znaki UTF-8)|\-|2048-bitów (256-bajtowy PSK, wprowadzany jako 512 cyfr szesnastkowych)|
|*OpenSSL 1.0.x, 1.1.0*|127 bajtów (może zawierać znaki UTF-8)|\-|2048-bitów (256-bajtowy PSK, wprowadzany jako 512 cyfr szesnastkowych)|
|*OpenSSL 1.1.1*|127 bajtów (może zawierać znaki UTF-8)|\-|512-bitów (64-bajtowy PSK, wprowadzany jako 128 cyfr szesnastkowych)|
|*OpenSSL 1.1.1a i nowsze*|127 bajtów (może zawierać znaki UTF-8)|\-|2048-bitów (256-bajtowy PSK, wprowadzany jako 512 cyfr szesnastkowych)|

::: noteimportant
 Zabbix frontend umożliwia skonfigurowanie ciągu tożsamości PSK o długości do 128 znaków oraz PSK o długości 2048 bitów niezależnie od używanych bibliotek kryptograficznych.<br>
Jeśli niektóre komponenty Zabbix obsługują niższe limity, obowiązkiem użytkownika jest skonfigurowanie tożsamości i wartości PSK z długością dozwoloną dla tych komponentów.<br>
Przekroczenie limitów długości skutkuje błędami komunikacji między komponentami Zabbix. 
:::

Zanim serwer Zabbix połączy się z agent przy użyciu PSK, serwer wyszukuje
w bazie danych tożsamość PSK i wartość PSK skonfigurowane dla tego agent
(w praktyce w pamięci podręcznej konfiguracji). Po odebraniu połączenia agent
używa tożsamości PSK i wartości PSK ze swojego pliku konfiguracyjnego. Jeśli obie
strony mają ten sam ciąg tożsamości PSK i tę samą wartość PSK, połączenie
może się powieść.

::: noteimportant
 Każda tożsamość PSK musi być powiązana tylko z jedną
wartością. Obowiązkiem użytkownika jest dopilnowanie, aby nie było dwóch
PSK z tym samym ciągiem tożsamości, ale różnymi wartościami. Niedopełnienie tego
może prowadzić do nieprzewidywalnych błędów lub zakłóceń komunikacji między komponentami Zabbix
używającymi PSK z tym ciągiem tożsamości PSK. 
:::

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

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

Na przykład 256-bitowy (32 bajty) PSK można wygenerować za pomocą
następujących poleceń:

-   przy użyciu *OpenSSL*:

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

-   przy użyciu *GnuTLS*:

```{=html}
<!-- -->
```
      $ psktool -u psk_identity -p database.psk -s 32
      Generating a random key for user 'psk_identity'
      Key stored to database.psk
      
      $ cat database.psk 
      psk_identity:9b8eafedfaae00cece62e85d5f4792c7d9c9bcc851b23216a1d300311cc4f7cb

Należy pamiętać, że powyższe polecenie „psktool” generuje plik bazy danych zawierający tożsamość PSK
oraz skojarzony z nią PSK. Zabbix oczekuje w pliku PSK wyłącznie samego PSK, dlatego
z pliku należy usunąć ciąg tożsamości oraz dwukropek (':').

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

[comment]: # ({43b9af4e-0c5c40b9})
#### Konfigurowanie PSK do komunikacji serwer-agent (przykład)

Na hoście agenta zapisz wartość PSK do pliku, na przykład
`/home/zabbix/zabbix_agentd.psk`. Plik musi zawierać PSK w pierwszym
ciągu tekstowym, na przykład:

    1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952

Ustaw prawa dostępu do pliku PSK — musi on być czytelny tylko dla użytkownika Zabbix.

Edytuj parametry TLS w pliku konfiguracyjnym agenta `zabbix_agentd.conf`,
na przykład ustaw:

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

agent będzie łączył się z serwerem (aktywne testy) i akceptował od serwera
oraz `zabbix_get` tylko połączenia używające PSK. Tożsamość PSK będzie miała wartość „PSK
001”.

Uruchom ponownie agent. Teraz możesz przetestować połączenie za pomocą `zabbix_get`,
na przykład:

    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

(Aby zminimalizować przestój, zobacz, jak zmienić typ połączenia w [zarządzaniu
szyfrowaniem
połączeń](/manual/encryption#connection-encryption-management)).

Skonfiguruj szyfrowanie PSK dla tego agenta w frontendzie Zabbix:

-   Przejdź do: *Data collection → Hosts*
-   Wybierz host i kliknij kartę **Encryption**

Przykład:

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

Wszystkie wymagane pola wejściowe są oznaczone czerwoną gwiazdką.

Gdy pamięć podręczna konfiguracji zostanie zsynchronizowana z bazą danych, nowe
połączenia będą używać PSK. Sprawdź pliki dziennika serwera i agenta pod kątem komunikatów o błędach.

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

[comment]: # ({5b4b0ac1-2200dfcb})
#### Konfigurowanie PSK dla komunikacji serwer - aktywny proxy (przykład)

Na proxy zapisz wartość PSK do pliku, na przykład
`/home/zabbix/zabbix_proxy.psk`. Plik musi zawierać PSK w pierwszym
wierszu tekstu, na przykład:

    e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9

Ustaw prawa dostępu do pliku PSK - musi on być dostępny do odczytu tylko dla użytkownika Zabbix.

Edytuj parametry TLS w pliku konfiguracyjnym proxy `zabbix_proxy.conf`, na
przykład ustaw:

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

proxy będzie łączył się z serwerem przy użyciu PSK. Tożsamość PSK będzie miała wartość „PSK
002”.

(Aby zminimalizować przestój, zobacz jak zmienić typ połączenia w [Zarządzaniu
szyfrowaniem
połączeń](/manual/encryption#connection-encryption-management)).

Skonfiguruj PSK dla tego proxy w Zabbix frontend. Przejdź do
*Administration→Proxies*, wybierz proxy i przejdź do zakładki „Encryption”. W
sekcji „Connections from proxy” zaznacz `PSK`. Wklej do pola „PSK identity”
wartość „PSK 002”, a
do pola „PSK” wartość
„e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9”.
Kliknij „Update”.

Uruchom ponownie proxy. Zacznie on używać połączeń szyfrowanych opartych na PSK do
serwera. Sprawdź pliki dziennika serwera i proxy pod kątem komunikatów o błędach.

W przypadku pasywnego proxy procedura jest bardzo podobna. Jedyna różnica -
ustaw `TLSAccept=psk` w pliku konfiguracyjnym proxy i ustaw „Connections to
proxy” w Zabbix frontend na `PSK`.

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