====== Zabbix - включаем шифрование для Агента (Agent Encryption) ======
Если необходимо шифровать соединение между агентом и сервером нам потребуется включить шифрование. Можно использовать шифрование по сертификату или по PSK (ключу Pre-Shared Key). В этом примере я рассмотрю именно PSK, т.к. это на мой взгляд самый удобный способ шифрования: ключ сгенерировать легко и просто, так же можно использовать несколько ключей.
===== Установка Агента =====
Если у нас Linux или что-то подобное - нам повезло, ставим агента при помощи apt, rpm и прочих удобных штук, агент уже идет со всеми необходимыми библиотеками. Если Windows - придется немного поработать руками. Загружаем агента отсюда: https://www.zabbix.com/download_agents при этом нам нужна версия с поддержкой шифрования (в поле Encryption должно быть написано OpenSSL).
Распаковываем агента в папку, например C:\Zabbix
[Устарело, официальный агент уже слинкован со всеми библиотеками]
Теперь нам нужны библиотеки OpenSSL. Самое лучшее - взять вот отсюда https://support.zabbix.com/browse/ZBXNEXT-3047 уже собранный агент Zabbix. Т.к. у них версии агентов часто довольно старенькие, можно брать последнюю версию - из нее мы и выковыряем библиотеки. Вытаскиваем из архива файлы libcrypto-1_1.dll, libssl-1_1.dll и msvcr120.dll в нашу папку C:\Zabbix
===== Создаем ключ PSK =====
Оригинал: https://www.zabbix.com/documentation/current/ru/manual/encryption/using_pre_shared_keys
For example, a 256-bit (32 bytes) PSK can be generated using the following commands:
with OpenSSL:
$ openssl rand -hex 32
af8ced32dfe8714e548694e2d29e1a14ba6fa13f216cb35c19d0feb1084b0429
with GnuTLS:
$ 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
Note that “psktool” above generates a database file with a PSK identity and its associated PSK. Zabbix expects just a PSK in the PSK file, so the identity string and colon (':') should be removed from the file.
Полученный ключ сохраняем в файл zabbix_agentd.psk и копируем его в C:\Zabbix
===== Настройка агента =====
Добавляем в файл zabbix_agentd.conf настройки шифрования:
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSK001
TLSPSKFile=C:\Zabbix\zabbix_agentd.psk
===== Установка службы и запуск =====
Установка в качестве службы:
zabbix_agentd.exe --config "C:\Zabbix\conf\zabbix_agentd.conf" --install
Запуск:
net start "Zabbix Agent"
===== Остановка и удаление службы =====
Остановка:
net stop "Zabbix Agent"
Удаление службы:
zabbix_agentd.exe --uninstall
Если в процессе удаления/установки службы возникает сообщение "zabbix_agentd.exe [416]: ERROR: cannot create service [Zabbix Agent]: [0x00000430] The specified service has been marked for deletion." и сам сервис висит в непонятном статусе - просто закройте все остнастки по управлению службами и повторите попытку
===== Настройка сервера Zabbix =====
Заходим в настройки хоста (Configuratino -> Hosts -> ваш_хост) и открываем закладку Encyption. Заполняем поля:
* Connection to host: PSK (Подключение к хосту от сервера Zabbix)
* Connection from host: PSK (Подключение от хоста к серверу Zabbix)
* PSK identity: PSK001 (Номер ключа в файле)
* PSK: ваш_PSK_ключ (Сам ключ)
Применяем настройки, запускаем агент и смотрим логи - все должно заработать.
{{tag>zabbix agent encryption openssl TLS шифрование агент заббикс windows}}