9 SSH провере

Преглед

SSH провере се изводе као надзор без агента. Zabbix агент није потребан за SSH провере.

За обављање SSH провера Zabbix сервер мора бити иницијално конфигурисан са SSH2 подршком (libssh или libssh2). Погледајте такође: Захтеви.

Почевши од RHEL 8, подржан је само libssh. За друге дистрибуције, libssh се предлаже уместо libssh2.

Конфигурација

Провера аутентичности приступном фразом

SSH провере обезбеђују две методе аутентификације – пар корисник/лозинка и датотека базирана на кључу.

Ако не намеравате да користите кључеве, није потребна додатна конфигурација, осим повезивања libssh или libssh2 са Zabbix-ом, ако градите из извора.

Провера аутентичности датотеке кључа

Да бисте користили аутентификацију засновану на кључу за SSH ставке, одређене промене у конфигурацији сервера су потребне.

Отворите конфигурациону датотеку Zabbix сервера (zabbix_server.conf) као root и потражите следећи ред:

# SSHKeyLocation=

Одкоментаришите га и поставите целу путању до директоријума у којој се налазе јавни и приватни кључеви:

SSHKeyLocation=/home/zabbix/.ssh

Сачувајте датотеку и поново покрените Zabbix сервер након тога.

Путања /home/zabbix овде је почетни директоријум за zabbix кориснички налог, а . ssh је директоријум у коме ће подразумевано бити јавни и приватни кључеви бити генерисани помоћу ssh-keygen команде унутар матичног директоријума.

Обично инсталациони пакети Zabbix сервера из различитих дистрибуција ОС-а креирају zabbix кориснички налог са кућним директоријумом негде другде, на пример, /var/lib/zabbix (као за системске налоге).

Пре генерисања кључева, могли бисте да преместите home директоријум у /home/zabbix, тако да одговараSSHKeyLocation Zabbix серверу горе поменути конфигурациони параметар.

Следећи кораци се могу прескочити ако је zabbix налог додат ручно према инсталационој секцији. У том случају је home директоријум за zabbix налог највероватније већ /home/zabbix.

Да промените home директоријум zabbix корисничког налога, сви покренути процеси који га користе морају бити заустављени:

systemctl stop zabbix-agent
       systemctl stop zabbix-server

Да бисте променили локацију матичног директоријума са покушајем да га преместите (ако постоји) треба извршити следећу наредбу:

usermod -m -d /home/zabbix zabbix

Такође је могуће да home директоријум није постојао на старој локацији, па би требало да буде креиран на новој локацији. Безбедан покушај да се то уради је:

test -d /home/zabbix || mkdir /home/zabbix

Да бисте били сигурни да је све безбедно, могу се извршити додатне команде подесите дозволе за home директоријум:

chown zabbix:zabbix /home/zabbix
       chmod 700 /home/zabbix

Претходно заустављени процеси сада могу поново да се покрену:

systemctl start zabbix-agent
       systemctl start zabbix-server

Сада се могу извршити кораци за генерисање јавног и приватног кључа са следећим командама (ради боље читљивости, командне линије су закоментарисане):

sudo -u zabbix ssh-keygen -t rsa
       # Generating public/private rsa key pair.
       # Enter file in which to save the key (/home/zabbix/.ssh/id_rsa):
       /home/zabbix/.ssh/id_rsa
       # Enter passphrase (empty for no passphrase):
       <Leave empty>
       # Enter same passphrase again: 
       <Leave empty>
       # Your identification has been saved in /home/zabbix/.ssh/id_rsa.
       # Your public key has been saved in /home/zabbix/.ssh/id_rsa.pub.
       # The key fingerprint is:
       # 90:af:e4:c7:e3:f0:2e:5a:8d:ab:48:a2:0c:92:30:b9 zabbix@it0
       # The key's randomart image is:
       # +--[ RSA 2048]----+# ||
       # |.|
       # |o|
       # | .o|
       # |+. S|
       # |.+o =|
       # |E .* =|
       # |=o . ..* .|
       # |... oo.o+|
       # +-----------------+

Јавни и приватни кључеви (id_rsa.pub и id_rsa) су подразумевано генерисани у директоријуму /home/zabbix/.ssh, што одговара конфигурационом параметру Zabbix сервера SSHKeyLocation.

Типови кључева који нису "rsa" могу бити подржани од стране ssh-keygen алата и SSH сервера, али их можда не подржава libssh2 који користи Zabbix.

Образац за конфигурацију shell-а

Овај корак треба извршити само једном за сваког домаћина који ће бити праћен од стране SSH провера.

Коришћењем следећих команди може се инсталирати јавни кључ датотеке на удаљеном домаћину 10.10.10.10, тако да се SSH провере могу извршити са root налогом (ради боље читљивости, командне линије су коментарисане):

sudo -u zabbix ssh-copy-id [email protected]
       # The authenticity of host '10.10.10.10 (10.10.10.10)' can't be established.# RSA key fingerprint is 38:ba:f2:a4:b5:d9:8f:52:00:09:f7:1f:75:cc:0b:46.
       # Are you sure you want to continue connecting (yes/no)?
       yes
       # Warning: Permanently added '10.10.10.10' (RSA) to the list of known hosts.
       # [email protected]'s password:
       <Enter root password>
       # Now try logging into the machine, with "ssh '[email protected]'",
       # and check to make sure that only the key(s) you wanted were added.

Сада је могуће проверити SSH логовање користећи подразумевани приватни кључ (/home/zabbix/.ssh/id_rsa) за zabbix кориснички налог:

sudo -u zabbix ssh [email protected]

Ако је пријава успешна, онда је конфигурациони део у shell-у завршена и удаљена SSH сесија се може затворити.

Конфигурација ставке

Стварне команде које треба да се изврше морају бити смештене у Извршену скрипту поље у конфигурацији ставке. Више команди се може извршити једна за другом тако што ће се поставити на новој линији. У овом случају враћене вредности ће такође бити форматиране као вишелинијске.

Сва обавезна поља за унос су означена црвеном звездицом.

Поља која захтевају специфичне информације за SSH ставке су:

Parameter Description Comments
Type Изаберите ** SSH агента** овде.
Кључ Јединствени (по домаћину) кључ ставке у формату ssh.run[unique short description,<ip>,<port>,<encoding>,<ssh options>] јединствени кратак опис је обавезан и треба да буде јединствен за сваку SSH ставку по домаћину.

Подразумевани порт је 22, а не порт наведен у интерфејсу којем је ова ставка додељена.

ssh опције омогућавају да се прослеђују додатне SSH опције у формату key1=value1;key2=value2,value3. Више вредности за један кључ може се пренети одвојено зарезом (у овом случају, параметар мора бити под наводницима); вишеструки кључеви опција се могу прослеђивати раздвојени тачком и зарезом.

Подржани су следећеопције кључева: KexAlgorithms, HostkeyAlgorithms, Ciphers, MACs. Подршка за кључ и вредност опција зависи од SSH библиотеке; ако опција није подржана, биће враћена грешка и ставка ће постати неподржана.

Имајте на уму да знак "+" за додавање подешавања шифре и "!" за онемогућавање одређених подешавања шифрирања (као у GnuTLS и OpenSSL) нису подржани.

Примери:
=> ssh.run[KexAlgorithms,127.0.0.1,,,Ciphers=aes128-ctr]
=> ssh.run[KexAlgorithms,,,,"KexAlgorithms=diffie-hellman-group1-sha1;HostkeyAlgorithms=ssh-rsa,ssh-dss,ecdh-sha2-nistp256"]
Метода аутентификације Једна од "лозинке" или "јавног кључа".
Корисничко име Корисничко име (до 255 карактера) за аутентификацију на удаљеном домаћину. Обавезно.
Датотека јавног кључа Име датотеке јавног кључа ако је Метод аутентификације "Јавни кључ". Обавезно. Пример: id_rsa.pub - подразумевано име датотеке јавног кључа генерисано командом ssh-keygen.
Датотека приватног кључа Име датотеке приватног кључа ако је Метод аутентификације "Јавни кључ". Обавезно. Пример: id_rsa - подразумевано име датотеке приватног кључа.
Лозинка или
Кључна приступна фраза
Лозинка (до 255 карактера) за потврду идентитета или
Лозинка ако је коришћена за приватни кључ.
Оставите поље Кључна приступна фраза празно ако приступна фраза није коришћена.
Погледајте и познате проблеме у вези употреба приступне фразе.
Извршена скрипта Извршена(е) shell команде(е) помоћу SSH удаљене сесије. Повратна вредност извршене(их) shell команди(е) је ограничена на 16MB (укључујући размак на крају који је скраћен); ограничења базе података такође се примењују.

Имајте на уму да библиотека libssh2 може да скрати извршне скрипте на ~32kB.

Примери :
date +%s
systemctl status mysql-server
ps auxww | grep httpd | wc -l