Задача: Хочу разобрать как при использовании системы мониторинга Zabbix 6.2 на Ubuntu 22.04 Server осуществлять связь с агентом на Ubuntu 22.04 Server использую PSK-шифрование. Нужно то для того чтобы обезопасить снимаемые данные, да и усложнить все настраиваемое в организации дабы если тот, кто придет на Ваше место не был в шоколаде. Просто как показывает мой больной опыт системного администрирования никто никогда не рассказывает, что и как настроено, а только поверхностно и все приходится разбирать самим.

Что потребуется для задумки:

Создать две виртуальные машины на тестовом полигоне под управлением Debian 10 + Proxmox 6.4-13 (у меня так), сеть использую 172.33.33.0/24

  • Система Ubuntu 22.04 + установленная на нее система мониторинга Zabbix 6.2
  • Еще одна система Ubuntu 22.04 на которую я буду устанавливать агент.

Шаг №1: Выполнено развертывание системы мониторинга (Zabbix 6.2) на Ubuntu 22.04 Server опираясь на заметку "Устанавливаем Zabbix 6.2 + Nginx on Ubuntu 22.04 Server"

  • IP: 172.33.33.112
  • Login: Admin
  • Pass: zabbix

Шаг №2: Развернута еще одна система Ubuntu 22.04 на которую устанавливаю Zabbix агент и связываю его с Zabbixсервером:

  • IP: 172.33.33.113
ekzorchik@srv-client:~$ wget https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-1+ubuntu22.04_all.deb
ekzorchik@srv-client:~$ sudo dpkg -i zabbix-release_6.2-1+ubuntu22.04_all.deb
ekzorchik@srv-client:~$ sudo apt-get update
ekzorchik@srv-client:~$ sudo apt install -y zabbix-agent
ekzorchik@srv-client:~$ sudo cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.backup
ekzorchik@srv-client:~$ sudo nano /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
DebugLevel=3
AllowKey=system.run[*]
LogRemoteCommands=1
Server=127.0.0.1,172.33.33.112
ServerActive=127.0.0.1,172.33.33.112
Hostname=srv-bionic
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1
ekzorchik@srv-client:~$ sudo systemctl enable zabbix-agent
Synchronizing state of zabbix-agent.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-agent
ekzorchik@srv-client:~$
ekzorchik@srv-client:~$ sudo systemctl restart zabbix-agent && sudo systemctl status zabbix-agent | head -n 5
● zabbix-agent.service - Zabbix Agent
     Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-09-29 09:16:32 MSK; 18ms ago
    Process: 13194 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
   Main PID: 13196 (zabbix_agentd)
ekzorchik@srv-client:~$
ekzorchik@srv-client:~$ sudo ss -ltp | grep zabbix
LISTEN 0      4096         0.0.0.0:zabbix-agent      0.0.0.0:*    users:(("zabbix_agentd",pid=13202,fd=4),("zabbix_agentd",pid=13201,fd=4),("zabbix_agentd",pid=13200,fd=4),("zabbix_agentd",pid=13199,fd=4),("zabbix_agentd",pid=13198,fd=4),("zabbix_agentd",pid=13197,fd=4),("zabbix_agentd",pid=13196,fd=4))
LISTEN 0      4096            [::]:zabbix-agent         [::]:*    users:(("zabbix_agentd",pid=13202,fd=5),("zabbix_agentd",pid=13201,fd=5),("zabbix_agentd",pid=13200,fd=5),("zabbix_agentd",pid=13199,fd=5),("zabbix_agentd",pid=13198,fd=5),("zabbix_agentd",pid=13197,fd=5),("zabbix_agentd",pid=13196,fd=5))
ekzorchik@srv-client:~$

Шаг №3: Генерируем ключ PSK и изменяем конфигурационный файл Zabbix Agent на работу с ключом – этот ключ нужно будет указывать при добавлении хоста с Zabbix Agent в Zabbix Server:

ekzorchik@srv-client:~$ sudo bash -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"
ekzorchik@srv-client:~$ sudo bash -c "cat /etc/zabbix/zabbix_agentd.psk"
474245161181b610d614e79cff937f95772abbd9c53b16b755349956caf153e5
ekzorchik@srv-client:~$ sudo chown zabbix:zabbix /etc/zabbix/zabbix_agentd.psk
ekzorchik@srv-client:~$ sudo chmod 700 /etc/zabbix/zabbix_agentd.psk
ekzorchik@srv-client:~$ sudo nano /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
DebugLevel=3
AllowKey=system.run[*]
LogRemoteCommands=1
Server=127.0.0.1,172.33.33.112
ServerActive=127.0.0.1,172.33.33.112
Hostname=srv-bionic
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=srv-client
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
ekzorchik@srv-client:~$ sudo systemctl restart zabbix-agent && sudo systemctl status zabbix-agent | head -n 5
● zabbix-agent.service - Zabbix Agent
     Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-09-29 09:21:34 MSK; 15ms ago
    Process: 14153 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
   Main PID: 14155 (zabbix_agentd)
ekzorchik@srv-client:~$

Шаг №4: Добавляю хост с Zabbix Agent и psk ключом на Zabbix Server:

http://172.33.33.112 - Username&Password (Admin:zabbix) - Sign In - Configuration - Hosts - Create Host

вкладка Host

  • Host name: srv-client
  • Templates: нажимаю Select, (Template group) нажимаю Select, (Template groups) нажимаю Templates/Operating system, отмечаю галочкой Linux by Zabbix agent и нажимаю Select
  • Host groups: GRP_US_2204 (если не создана, то набираем и выбираем new)
  • Interfaces: Add - Agent
  • IP address: 172.33.33.113
  • Connect to: IP
  • Port: 10050
  • Enabled: Отмечаю галочкой

Ниже скриншот как выглядит вкладка Host

Добавляю Host в Zabbix 6.2

перехожу на вкладку Encryption

  • Connections to host: PSK
  • Connections from host: PSK
  • PSK identity: srv-client
  • PSK: а сюда вставляем содержимое sudo bash -c "cat /etc/zabbix/zabbix_agentd.psk", которое проделывали выше на системе Ubuntu 22.04 Server на которую установили Zabbix клиент.

Ниже скриншот для наглядного понимания, как это выглядит:

Для добавляемого Hosts указываю ключ PSK

и после нажимаю Add

Шаг №5: Добавленный хост в систему мониторинга Zabbix 6.2 выглядит как:

http://172.33.33.112 - Username&Password (Admin:zabbix) - Sign In - Configuration - Hosts -

Связь с хостом через PSK не установлена, ошибка.

так что не получилось, внимательно читаю информационное сообщение если навести указатель мыши на красную иконку ZBX

Get value from agent failed: TCP successful, cannot establish TLS to [[172.33.33.113]:10050]: SSL_connect() set result code to SSL_ERROR_SSL: file ../ssl/record/rec_layer_s3.c line 1584 func ssl3_read_bytes: error:0A000410:SSL routines::sslv3 alert handshake failure: SSL alert number 40: TLS read fatal alert "handshake failure"

проверил zabbix_agentd.conf и обнаружил что у меня в параметре TLSPSKIdentity= указано неправильно имя хоста, было srv-bionic, изменил на srv-client и перезапустив сервис Zabbix-агента проверяю что теперь в Hosts на Zabbix-сервере:

ekzorchik@srv-client:~$ sudo nano /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
DebugLevel=3
AllowKey=system.run[*]
LogRemoteCommands=1
Server=127.0.0.1,172.33.33.112
ServerActive=127.0.0.1,172.33.33.112
Hostname=srv-bionic
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=srv-client
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
ekzorchik@srv-client:~$ sudo systemctl restart zabbix-agent && sudo systemctl status zabbix-agent | head -n 5
● zabbix-agent.service - Zabbix Agent
     Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-09-29 09:39:36 MSK; 14ms ago
    Process: 14196 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
   Main PID: 14198 (zabbix_agentd)
ekzorchik@srv-client:~$

Отметил хост srv-client, нажал Enable и буквально сразу же обновился статус добавленного хоста:

Хост успешно добавлен с использованием шифрования PSK

Шаг №6: Проверяю на Zabbix сервер в Webинтерфейсе какие и есть ли собираемые данный через агента для хоста srv-client:

http://172.33.33.112 - Username&Password (Admin:zabbix) - Sign In - Monitoring - Latest data -

  • Hosts: Select, Select, захожу в группу GRP_US_2204 и отмечаю галочкой srv-client, нажимаю Select

и нажимаю Apply

вот получаемые данные с агента задействую шаблон при использовании шифровании трафика

Данный с хоста снимаются и передаются зашифрованными при использовании ключа PSK

Если так присмотреться к получаемым данным, то можно ни заметить, что данные идут за действуя шифрование, но так интереснее, плюс Вы как системный администратор становитесь более опытным чем Ваши коллеги, которые просто отсиживают рабочий день.

Итого заметка работоспособна и будет в последствии применяться. С уважением автор блога Олло Александр aka ekzorchik.