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/zabbix, тако да одговара параметру конфигурације SSHKeyLocation Zabbix сервера поменутом горе.

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

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

systemctl stop zabbix-agent
       systemctl stop zabbix-server

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

usermod -m -d /home/zabbix zabbix

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

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

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

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

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

systemctl start zabbix-agent
       systemctl start zabbix-server

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

sudo -u zabbix ssh-keygen -t rsa
       # Генерисање пара јавног/приватног rsa кључа.
sudo -u zabbix ssh-keygen -t rsa
       # Генерисање пара јавног/приватног rsa кључа.
       # Унесите датотеку у коју желите да сачувате кључ (/home/zabbix/.ssh/id_rsa):
       /home/zabbix/.ssh/id_rsa
       # Унесите лозинку (празно ако нема лозинке):
       <Leave empty>
       # Поново унесите исту лозинку: 
       <Leave empty>
       # Ваша идентификација је сачувана у /home/zabbix/.ssh/id_rsa.
       # Ваш јавни кључ је сачуван у /home/zabbix/.ssh/id_rsa.pub.
       # Отисак прста кључа је:
       # 90:af:e4:c7:e3:f0:2e:5a:8d:ab:48:a2:0c:92:30:b9 zabbix@it0
       # Случајна слика кључа је:
       # +--[ RSA 2048]----+
       # |  |
       # |  .  |
       # |  o  |
       # | .  o  |
       # |+  . S  |
       # |.+  o =  |
       # |E .  * =  |
       # |=o . ..* .  |
       # |... oo.o+  |
       # +-----------------+

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

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

Формулар за конфигурацију шкољке

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

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

sudo -u zabbix ssh-copy-id [email protected]
       # Аутентичност домаћина '10.10.10.10 (10.10.10.10)' не може бити утврђена.
       # RSA отисак кључа је 38:ba:f2:a4:b5:d9:8f:52:00:09:f7:1f:75:cc:0b:46.
       # Да ли сте сигурни да желите да наставите повезивање (да/не)?
       да
       # Упозорење: Трајно додато '10.10.10.10' (RSA) на листу познатих хостова.
       # [email protected] лозинка:
       <Enter root password>
       # Сада покушајте да се пријавите на машину, са "ssh '[email protected]'",
       # и проверите да ли су додати само кључеви које сте желели.

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

sudo -u zabbix ssh [email protected]

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

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

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

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

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

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

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

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

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

Имајте на уму да знак "+" означава додавање подешавања шифре, а "!" за онемогућавање одређених подешавања шифровања (као у 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"]
=> ssh.run[PubkeyAcceptedKeyTypes,127.0.0.1,,,PubkeyAcceptedKeyTypes=ssh-rsa]

подсистем омогућава пропуштање SSH подсистема, ограничавајући SSH везу на одређене операције које подсистем дозвољава (нпр., датотека преноси помоћу SFTP-а или управљање мрежним уређајима помоћу NETCONF-а). Имајте на уму да коришћење подсистема може захтевати и употребу специфичне синтаксе скрипте у параметру Извршена скрипта.

Примери:
=> ssh.run[SFTPBackup,192.0.2.18,,,,sftp]
=> ssh.run[Cisco1234,192.0.2.18,,,,netconf]
Метод аутентификације Један од "Лозинка" или "Јавни кључ".
Корисничко име Корисничко име (до 255 знакова) за аутентификацију на удаљеном хосту. Обавезно.
Датотека јавног кључа Име датотеке јавног кључа ако је Метод аутентификације "Јавни кључ". Обавезно. Пример: id_rsa.pub - подразумевано име датотеке јавног кључа генерисано командом ssh-keygen.
Датотека приватног кључа Име датотеке приватног кључа ако је Метод аутентификације "Јавни кључ". Обавезно. Пример: id_rsa - подразумевано име датотеке приватног кључа.
Лозинка или
Шифраза за кључ
Лозинка (до 255 знакова) за аутентификацију или
Шифраза ако је коришћена за приватни кључ.
Оставите поље Шифраза за кључ празно ако лозинка није коришћена.
Погледајте такође познати проблеми у вези са употребом лозинке.
Извршена скрипта Извршена(е) шел команда(е) коришћењем SSH удаљене сесије. Повратна вредност извршене(их) шел команди(а) је ограничена на 16MB (укључујући скраћене размаке на крају); такође се примењују ограничења базе података.

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

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

Пример (за NETCONF подсистем):
<rpc>
<get-software-information/>
</rpc>
]]>]]>
<rpc>
<close-session/>
</rpc>
]]>]]>