This is a translation of the original English documentation page. Help us make it better.

9 SSH controles

Overzicht

SSH-controles worden uitgevoerd als monitoring zonder agent. Voor SSH-controles is geen Zabbix-agent nodig.

Om SSH-controles uit te voeren, moet de Zabbix-server in eerste instantie worden geconfigureerd met SSH2-ondersteuning (libssh of libssh2). Zie ook: Vereisten.

Vanaf RHEL 8 wordt alleen libssh ondersteund. Voor andere distributies wordt libssh aanbevolen boven libssh2.

Configuratie

Wachtwoord authenticatie

SSH-controles bieden twee authenticatiemethoden: een gebruikersnaam/wachtwoord-paar en een authenticatie op basis van een sleutelbestand.

Als u geen gebruik wilt maken van sleutels, is geen aanvullende configuratie vereist, behalve het koppelen van libssh of libssh2 aan Zabbix als u de software zelf bouwt.

Authenticatie met sleutelbestanden

Om key-based authenticatie te gebruiken voor SSH-items, zijn bepaalde wijzigingen in de serverconfiguratie vereist.

Open het Zabbix serverconfiguratiebestand (zabbix_server.conf) als root en zoek naar de volgende regel:

# SSHKeyLocation=

Verwijder het #-teken en stel het volledige pad in naar de map waar de openbare en privésleutels zich bevinden:

SSHKeyLocation=/home/zabbix/.ssh

Sla het bestand op en herstart daarna de Zabbix-server.

Het pad /home/zabbix is hier de home-directory voor het gebruikersaccount zabbix, en .ssh is een directory waar standaard openbare en privésleutels worden aangemaakt door het ssh-keygen-commando in de home-directory.

Meestal maken installatiepakketten van de Zabbix-server van verschillende OS-distributies het gebruikersaccount zabbix aan met een andere home-directory, bijvoorbeeld /var/lib/zabbix (zoals bij systeemaccounts).

Voordat u de sleutels genereert, kunt u de home-directory opnieuw toewijzen aan /home/zabbix, zodat deze overeenkomt met de SSHKeyLocation-configuratieparameter van de Zabbix-server die hierboven wordt genoemd.

De volgende stappen kunnen worden overgeslagen als het zabbix-account handmatig is toegevoegd volgens de installatie sectie. In dat geval bevindt de home-directory van het zabbix-account zich waarschijnlijk al in /home/zabbix.

Om de home-directory van het zabbix-gebruikersaccount te wijzigen, moeten alle werkprocessen die dit gebruiken worden gestopt:

service zabbix-agent stop
       service zabbix-server stop

Om de locatie van de home-directory te wijzigen en deze te verplaatsen (indien deze al bestaat), moet het volgende commando worden uitgevoerd:

usermod -m -d /home/zabbix zabbix

Het is ook mogelijk dat de home-directory nog niet bestond op de oude locatie, dus deze moet worden aangemaakt op de nieuwe locatie. Een veilige poging om dat te doen is:

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

Om er zeker van te zijn dat alles veilig is, kunnen extra commando's worden uitgevoerd om de machtigingen voor de home-directory in te stellen:

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

De eerder gestopte processen kunnen nu weer worden gestart:

service zabbix-agent start
       service zabbix-server start

Nu kunnen de stappen worden uitgevoerd om de openbare en privésleutels te genereren met de volgende commando's (voor een betere leesbaarheid zijn commandoprompts uitgeschakeld):

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):
       <Leeg laten>
       # Enter same passphrase again:
       <Leeg laten>
       # 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+        |
       # +-----------------+

De openbare en privésleutels (id_rsa.pub en id_rsa) zijn standaard aangemaakt in de /home/zabbix/.ssh directory, die overeenkomt met de SSHKeyLocation-configuratieparameter van de Zabbix-server.

Andere sleuteltypen dan "rsa" kunnen worden ondersteund door het ssh-keygen gereedschap en SSH-servers, maar ze worden mogelijk niet ondersteund door libssh2 die door Zabbix wordt gebruikt.

Shell configuratieformulier

Deze stap moet slechts één keer worden uitgevoerd voor elke host die wordt gemonitord met SSH-controles.

Met behulp van de volgende commando's kan het publieke sleutelbestand worden geïnstalleerd op een externe host 10.10.10.10, zodat de SSH-controles kunnen worden uitgevoerd met een root-account (voor betere leesbaarheid zijn de commandoprompts uitgeschakeld):

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:
       <Root-wachtwoord invoeren>
       # Now try logging into the machine, with "ssh '[email protected]'",
       # and check to make sure that only the key(s) you wanted were added.

Nu is het mogelijk om de SSH-aanmelding te controleren met behulp van de standaard privésleutel (/home/zabbix/.ssh/id_rsa) voor het zabbix-gebruikersaccount:

sudo -u zabbix ssh [email protected]

Als de aanmelding succesvol is, is het configuratiegedeelte in de shell voltooid en kan de externe SSH-sessie worden gesloten.

Item configuratie

De daadwerkelijke commando('s) die moeten worden uitgevoerd, moeten worden geplaatst in het veld Uitgevoerd script in de itemconfiguratie. Meerdere commando's kunnen na elkaar worden uitgevoerd door ze op een nieuwe regel te plaatsen. In dat geval worden de geretourneerde waarden ook opgemaakt als meerdere regels.

Alle verplichte invoervelden zijn gemarkeerd met een rode asterisk.

De velden die specifieke informatie vereisen voor SSH-items zijn:

Parameter Beschrijving Opmerkingen
Type Selecteer hier SSH-agent.
Sleutel Unieke (per host) item-sleutel in de indeling ssh.run[unieke korte beschrijving,<ip>,<poort>,<codering>] unieke korte beschrijving is vereist en moet uniek zijn voor alle SSH-items per host.

De standaardpoort is 22, niet de poort die is gespecificeerd in de interface waaraan dit item is toegewezen.
Authenticatiemethode Een van de "Wachtwoord" of "Openbare sleutel".
Gebruikersnaam Gebruikersnaam om te authenticeren op de externe host. Vereist.
Bestand openbare sleutel Bestandsnaam van de openbare sleutel als Authenticatiemethode "Openbare sleutel" is. Vereist. Voorbeeld: id_rsa.pub - standaard bestandsnaam van de openbare sleutel gegenereerd door het commando ssh-keygen.
Bestand privésleutel Bestandsnaam van de privésleutel als Authenticatiemethode "Openbare sleutel" is. Vereist. Voorbeeld: id_rsa - standaard bestandsnaam van de privésleutel.
Wachtwoord of
Sleutel wachtwoordzin
Wachtwoord om te authenticeren of
Wachtwoordzin indien deze is gebruikt voor de privésleutel.
Laat het veld Sleutel wachtwoordzin leeg als er geen wachtwoordzin is gebruikt.
Zie ook bekende problemen met betrekking tot het gebruik van een wachtwoordzin.
Uitgevoerd script Uitgevoerde shellcommando('s) via een externe SSH-sessie. Voorbeelden:
date +%s
service mysql-server status
ps auxww | grep httpd | wc -l

De libssh2-bibliotheek kan uitvoerbare scripts inkorten tot ongeveer 32 kB.