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.

Sleutelbestand authenticatie

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

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

# SSHKeyLocation=

Verwijder het commentaarsteken en stel het volledige pad in naar de map waar de openbare en privésleutels zich zullen bevinden:

SSHKeyLocation=/home/zabbix/.ssh

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

Het pad /home/zabbix is hier de home-directory voor het zabbix-gebruikersaccount, en .ssh is een map waarin standaard openbare en privésleutels zullen worden gegenereerd door een ssh-keygen-commando binnen de home-directory.

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

Voordat u de sleutels genereert, kunt u de home-directory herschikken naar /home/zabbix, zodat deze overeenkomt met de Zabbix-serverconfiguratieparameter SSHKeyLocation die hierboven is genoemd.

De volgende stappen kunnen worden overgeslagen als het zabbix-account handmatig is toegevoegd volgens de installatie sectie. In dat geval heeft het zabbix-account hoogstwaarschijnlijk al de home-directory /home/zabbix.

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

service zabbix-agent stop
       service zabbix-server stop

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

usermod -m -d /home/zabbix zabbix

Het is ook mogelijk dat een home-directory nog niet bestond op de oude locatie, dus deze moet worden gemaakt 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 aanvullende commando's worden uitgevoerd om machtigingen in te stellen voor de home-directory:

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

Eerder gestopte processen kunnen nu weer worden gestart:

service zabbix-agent start
       service zabbix-server start

Nu kunnen de stappen voor het genereren van de openbare en privésleutels worden uitgevoerd met de volgende commando's (voor een betere leesbaarheid zijn commandopromptopdrachten 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):
       <Laat leeg>
       # Enter same passphrase again: 
       <Laat leeg>
       # 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 gegenereerd in de map /home/zabbix/.ssh, wat overeenkomt met de Zabbix-serverconfiguratieparameter SSHKeyLocation.

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

Configuratieformulier voor shell

Deze stap moet slechts eenmaal worden uitgevoerd voor elke host die zal worden gecontroleerd met SSH-controles.

Met behulp van de volgende commando's kan het openbare sleutelbestand worden geïnstalleerd op een externe host 10.10.10.10, zodat de SSH-controles kunnen worden uitgevoerd met een root-account (voor een betere leesbaarheid zijn commandopromptopdrachten 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:
       <Voer het wachtwoord van root in>
       # 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-login 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 login succesvol is, dan is het configuratiegedeelte in de shell voltooid en kan de externe SSH-sessie worden afgesloten.

Itemconfiguratie

De daadwerkelijke uit te voeren commando's 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 dit geval worden de geretourneerde waarden ook opgemaakt als meerdere regels.

Alle verplichte invoervelden zijn gemarkeerd met een rood asterisk.

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

Parameter Omschrijving Opmerkingen
Type Selecteer hier SSH-agent.
Sleutel Unieke (per host) item-sleutel in het formaat ssh.run[unieke korte beschrijving,<ip>,<poort>,<codering>,<ssh-opties>] unieke korte beschrijving is vereist en moet uniek zijn voor elk SSH-item per host.

De standaardpoort is 22, niet de poort die is opgegeven in de interface waaraan dit item is toegewezen.

ssh-opties (ondersteund sinds versie 6.4.0) stellen u in staat om extra SSH-opties door te geven in het formaat sleutel1=waarde1;sleutel2=waarde2,waarde3. Meerdere waarden voor één sleutel kunnen worden doorgegeven, gescheiden door een komma (in dat geval moet de parameter geciteerd zijn); meerdere optiesleutels kunnen worden doorgegeven, gescheiden door een puntkomma. Ondersteunde optiesleutels en waarden zijn afhankelijk van de SSH-bibliotheek. Houd er rekening mee dat het "+"-teken voor het toevoegen van cipher-instellingen en "!" voor het uitschakelen van specifieke cipher-instellingen (zoals in GnuTLS en OpenSSL) niet worden ondersteund.

Voorbeelden:
=> 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"]
Verificatiemethode Een van de "Wachtwoord" of "Openbare sleutel".
Gebruikersnaam Gebruikersnaam om te verifiëren op de externe host. Vereist.
Openbare sleutelbestand Bestandsnaam van de openbare sleutel als Verificatiemethode "Openbare sleutel" is. Vereist. Voorbeeld: id_rsa.pub - standaard bestandsnaam van het openbare sleutelbestand dat is gegenereerd met het commando ssh-keygen.
Prive-sleutelbestand Bestandsnaam van de privésleutel als Verificatiemethode "Openbare sleutel" is. Vereist. Voorbeeld: id_rsa - standaard bestandsnaam van het privésleutelbestand.
Wachtwoord of
Sleutel-wachtwoordzin
Wachtwoord om te verifiëren of
Sleutel-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 Uitgevoerd shell-commando(s) met behulp van een SSH externe sessie. Voorbeelden:
date +%s
service mysql-server status
ps auxww | grep httpd | wc -l

De libssh2-bibliotheek kan uitvoerbare scripts mogelijk inkorten tot ~32KB.