This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved. |
1. Introduzione
In questo articolo ti mostreremo tutto ciò che c'è da sapere sulla gestione degli utenti in Checkmk. Ma prima di entrare nei dettagli, dobbiamo chiarire alcuni termini.
In Checkmk, un utente è una persona che ha accesso all'interfaccia utente. Un utente ha uno o più ruoli. Questi ruoli sono alla base dei permessi.
Non appena un utente è responsabile di host e servizi specifici, viene identificato come contatto. Un contatto normalmente vede solo i propri host e servizi nell'ambiente di monitoraggio e può ricevere notifiche in caso di problemi relativi a questi.
Ci sono anche utenti che non sono contatti.
Un esempio è cmkadmin, che viene generato automaticamente quando si crea un’istanza.
Questo utente può vedere tutti gli host e i servizi, ma solo perché il ruolo Administrator contiene il permesso See all hosts and services, e non necessariamente perché sarebbe un contatto per tutto.
Se un contatto è stato creato al solo scopo di ricevere notifiche (ad esempio per inoltrare le notifiche a un sistema di ticket), potrebbe essere utile crearlo in modo tale che non sia possibile effettuare il login all'interfaccia.
Un contatto fa sempre parte di uno o più gruppi di contatti.
Lo scopo di questi gruppi è assegnare i contatti a host e servizi.
Ad esempio, il contatto hhirsch potrebbe far parte del gruppo di contatti linux e questo, a sua volta, potrebbe essere assegnato a tutti gli host Linux tramite una regola.
Non è possibile assegnare direttamente i contatti a host o servizi e ciò potrebbe infatti creare difficoltà nella pratica (ad esempio quando un utente lascia l'organizzazione).
In sintesi:
Gli utenti possono utilizzare l'interfaccia utente.
I contatti sono utenti responsabili di host e servizi specifici.
I gruppi di contatto definiscono di cosa è responsabile un utente.
I ruoli definiscono quali permessi ha un utente.
2. Gestione degli utenti nell'ambiente di configurazione
2.1. Panoramica
La pagina di gestione degli utenti si trova all'indirizzo Setup > Users > Users. In un'istanza appena creata, questa pagina ha questo aspetto (nell'immagine sono state ridotte solo alcune colonne della tabella):

L'immagine sopra mostra tutti gli utenti che sono stati creati automaticamente al momento della creazione dell'istanza:
Un utente automazione, seguito dall'utente singolo (cmkadmin) per il login interattivo con password.
Con la Checkmk Appliance, questo utente può avere un nome diverso, poiché sei tu a definire il suo nome e la sua password.
Questo utente cmkadmin ha le seguenti proprietà:
Ha il ruolo Administrator e quindi tutti i permessi.
Non è un contatto per nulla e non riceve notifiche.
Può comunque vedere tutto (grazie al suo ruolo di Administrator).
Scegli la password di questo utente quando crei l’istanza. Puoi anche modificare questa password in qualsiasi momento in seguito.
Il modulo per creare un nuovo utente (con
) o modificare un utente esistente (con
) è diviso in cinque sezioni.
La prima sezione riguarda l'identità.
2.2. Identità

Come sempre in Checkmk, l'ID di un dataset (Username) non può essere modificato in seguito. Viene utilizzato per l'accesso e anche come chiave interna in tutti i file e le strutture di dati.
L'indirizzo e-mail è facoltativo ed è richiesto solo se l'utente deve diventare un contatto da avvisare via e-mail (è necessaria la configurazione SMTP). Allo stesso modo, il campo Pager address è destinato alle notifiche via SMS o sistemi simili. Se scrivi i tuoi script di notifica, puoi accedere ai valori in questi campi e usarli per qualsiasi scopo.
Con Monitored sites puoi, se vuoi, limitare l'accesso alle istanze esistenti. Questo è particolarmente utile per ambienti molto grandi, come un monitoraggio distribuito con centinaia di istanze. Se un utente ha bisogno solo di un certo numero di queste istanze per i suoi host, la GUI contatterà solo le istanze selezionate per configurare le visualizzazioni, il che a sua volta migliora notevolmente la performance.
2.3. Sicurezza

Questa box serve per il login e l'autorizzazione. L'opzione "Automation secret for machine accounts" è pensata per gli account che accedono a Checkmk tramite HTTP/HTTPS e si autenticano tramite l'URL. Ti mostreremo come farlo qui sotto.
Per i ruoli, devi selezionarne almeno uno. In teoria potresti assegnare più ruoli a un utente, che otterrebbe così i diritti di tutti questi ruoli. Con i ruoli predefiniti, tuttavia, ciò avrebbe poco senso.
Se blocchi gli utenti con l'opzione "disable the login to this account", appariranno nella tabella con il simbolo "
".
Non potranno più effettuare il login, ma rimarranno comunque nel sistema.
Se un utente è un contatto, le notifiche non ne risentiranno e l'utente continuerà a ricevere e-mail, ecc.
Se l'utente era connesso al momento del blocco, verrà automaticamente disconnesso.
2.4. Gruppi di contatto

Non appena assegni un utente a uno o più gruppi di contatti, questo utente diventa un contatto. Quando viene creato un nuovo sito, viene creato anche il gruppo di contatti Everything, che contiene sempre tutti gli host e tutti i servizi. Un utente in questo gruppo sarà quindi automaticamente responsabile di tutti gli host e i servizi.
2.5. Notifiche

Nella box "Notifications", puoi usare l'opzione "Receive fallback notifications" per specificare che questo contatto riceverà le notifiche quando non si applica alcuna regola di notifica.
2.6. Impostazioni personali

Gli utenti possono anche modificare autonomamente tutte le impostazioni in questa box tramite User > Edit profile (tranne che con il ruolo Guest user). A parte la selezione della lingua dell'interfaccia, queste impostazioni sono raramente necessarie. I dettagli si trovano come sempre nell'aiuto in linea.
2.7. Impostazioni dell'interfaccia

Gli utenti possono anche personalizzare le impostazioni dell'interfaccia da soli utilizzando User > Edit profile. Di particolare interesse è l'opzione "Show more / Show less" per determinare se Checkmk debba mostrare più o meno informazioni nell'interfaccia. Se vuoi vedere sempre tutto, puoi forzare questa opzione qui con "Enforce show more".
3. Gruppi di contatto
3.1. Creazione e edizione dei gruppi di contatto
I gruppi di contatti sono il collegamento tra host e servizi da un lato e i contatti dall'altro. Ogni gruppo di contatti rappresenta una responsabilità per un'area specifica nel tuo panorama IT. Ad esempio, il gruppo di contatti "SAP" potrebbe comprendere tutte le persone che gestiscono i sistemi SAP ed essere assegnato a tutti gli host e i servizi che forniscono tali servizi in questo ambiente.
Puoi gestire i gruppi di contatto tramite Setup > Users > Contact groups. La figura seguente mostra questo modulo con tre gruppi di contatto creati manualmente:

Creare un nuovo gruppo è semplicissimo. Come sempre, l’ID è permanente e l’alias è un nome visualizzato che puoi modificare in qualsiasi momento in seguito:

Il nuovo gruppo di contatti è vuoto sotto due aspetti: non contiene né contatti né host o servizi. L'assegnazione dei gruppi di contatti ai contatti avviene tramite i profili utente, come hai già visto durante la modifica dell'utente.
Impostazione della visibilità dell'inventario
Inoltre, puoi impostare la visibilità dell'inventario rilevato con l'inventario HW/SW. Per impostazione predefinita l'inventario completo è visibile, ma può anche essere completamente nascosto o abilitato in modo selettivo con l'opzione "Allowed to see parts of the tree" e i percorsi interni dell'inventario:

Per poter inserire le informazioni di percorso richieste, devi prima leggerle dai dati dell'inventario. Puoi quindi utilizzare queste informazioni per compilare i percorsi e le chiavi per rendere visibili, ad esempio, solo alcuni dati selezionati dell'inventario del processore (modello e architettura):

3.2. Aggiunta di host a un gruppo di contatto
Esistono due metodi per includere gli host nei gruppi di contatti: tramite cartella e tramite regole. È anche possibile combinare entrambi i metodi. In questo caso, all'host verrà assegnata un'aggregazione dei rispettivi gruppi di contatti.
Assegnazione tramite cartelle
Puoi accedere alle proprietà di una cartella tramite Folder > Properties mentre ti trovi nella cartella. Lì troverai l'opzione "Permissions". Seleziona questa checkbox per accedere alla selezione dei gruppi di contatti:

Lo scopo reale di questa opzione è impostare i permessi per la gestione degli host, che spieghiamo in dettaglio di seguito.
Non appena avrai assegnato i permessi a specifici gruppi di contatti, potrai a tua volta inserire questi gruppi come gruppi di contatti per gli host nel monitoraggio. In questo modo, potrai decidere se le assegnazioni debbano applicarsi anche agli host nelle sottocartelle e se anche i servizi di questi host debbano ricevere esplicitamente questi gruppi. I servizi senza assegnazioni esplicite ereditano tutti i gruppi di contatti di un host, anche quelli assegnati tramite regole.
L’ereditarietà dell’attributo “Permissions” (Assegnazione automatica) sulle cartelle viene sovrascritta a questo punto. Questo ti permette di aggiungere altri gruppi di contatto alle sottocartelle. L’assegnazione viene quindi effettuata anche in modo cumulativo tramite tutte le cartelle principali, se in queste cartelle principali è stata attivata l’opzione “Add these groups as contacts to all hosts in all subfolders of this folder” (Assegnazione automatica). |
A proposito, puoi trovare le opzioni dei gruppi di contatto in forma semplificata direttamente nei dettagli di un host. Ciò significa che puoi utilizzarle anche per assegnare gruppi di contatti a singoli host. Tuttavia, poiché questo può diventare rapidamente piuttosto confuso, dovresti farlo solo in casi eccezionali e, se dovesse rendersi necessario, potresti preferire lavorare con le regole.
Assegnazione tramite regole
Il secondo metodo — l'assegnazione dei gruppi di contatti tramite regole — è un po' più macchinoso, ma molto più flessibile. Ed è molto utile se non hai impostato la tua struttura di cartelle secondo principi organizzativi strutturati e quindi non puoi assegnare chiaramente le cartelle ai gruppi di contatti.
Il set di regole "Assignment of hosts to contact groups" necessario a questo scopo è disponibile all'indirizzo Setup > Hosts > Host monitoring rules. In questo set di regole troverai una regola predefinita generata al momento della creazione dell'istanza, che assegna tutti gli host al gruppo di contatto "Everything".

Tieni presente che questo set di regole è definito in modo tale che vengano valutate tutte le regole applicabili e non solo la prima! Può essere utile che un host appartenga a più di un gruppo di contatto. In tal caso avrai bisogno di un set di regole per ogni assegnazione.

3.3. Includere i servizi nei gruppi di contatto
Non sempre ha senso che un servizio si trovi negli stessi gruppi di contatto del suo host. Puoi quindi utilizzare il set di regole "Assignment of services to contact groups" (Assegna a tutti i gruppi di contatto dell'host) indipendentemente dai gruppi di contatto dell'host. Si applicano le seguenti regole:
Se a un servizio non è assegnato alcun gruppo di contatti, riceve automaticamente gli stessi gruppi di contatti del suo host.
Non appena almeno un gruppo di contatti viene assegnato esplicitamente a un servizio, questo non eredita più i gruppi di contatti dall’host.
In un ambiente semplice, è quindi sufficiente assegnare i gruppi di contatto solo agli host. Non appena hai bisogno di una maggiore differenziazione, puoi anche creare regole per i servizi.
3.4. Controllo delle assegnazioni
Puoi verificare se hai configurato correttamente tutte le regole e le cartelle controllando i dettagli di un host o di un servizio nell'ambiente di monitoraggio. Lì troverai le voci Host contact groups e Host contacts (o rispettivamente Service contact groups e Service contacts), che elencano le assegnazioni effettive per questo oggetto:

4. Visibilità di host e servizi
4.1. Panoramica
Il fatto che gli utenti normali (ruolo Normal monitoring user) vedano solo gli oggetti di cui sono contatti è tanto più importante quanto più grande è il tuo ambiente di monitoraggio. Questo non solo offre una panoramica chiara, ma impedisce anche agli utenti di intervenire dove non dovrebbero.
In qualità di amministratore (ruolo Administrator) hai ovviamente sempre la possibilità di vedere tutto. Questo è controllato tramite il permesso See all host and services. Nelle tue impostazioni personali, all'indirizzo Visibility of hosts/services, troverai la checkbox Only show hosts and services the user is a contact for. In questo modo puoi rinunciare volontariamente alla visualizzazione completa e visualizzare solo gli host e i servizi per i quali sei un contatto. Questa opzione è pensata per i ruoli duali, ovvero per chi è sia amministratore che utente normale.
Il ruolo "Guest user" è preimpostato in modo che i suoi utenti possano vedere tutto. Qui gli interventi o le impostazioni personali sono disabilitati.
Per gli utenti normali, la visibilità nell'ambiente di monitoraggio è implementata in modo tale che gli host e i servizi per i quali non sei un contatto non sembrino nemmeno esistere nel sistema. Tra le altre cose, i seguenti elementi tengono conto della visibilità:
Visualizzazioni di host e servizi
Snap-in Panoramica della barra laterale
Rapporti creati dall'utente
4.2. Visibilità dei servizi
Come abbiamo mostrato sopra, è possibile che tu sia un contatto per un host ma non per tutti i suoi servizi. Tuttavia, in tal caso potrai vedere tutti i servizi dell'host nella GUI.
Questa eccezione è predefinita perché solitamente è utile. In pratica, ciò significa, ad esempio, che il collega responsabile dell'host effettivo può vedere anche tutti i servizi collegati a quell'host, ma non riceve alcuna notifica relativa a tali servizi!
Se non ti piace questo approccio, puoi modificarlo nelle edizioni commerciali tramite Global settings > Monitoring core > Authorization settings. Se lì cambi l'impostazione "Services" in "Strict - Visible if user is contact for the service", gli utenti potranno vedere i servizi solo se sono stati assegnati direttamente come contatto per quel servizio.

A proposito, tutto questo non ha nulla a che vedere con il fatto che un servizio erediti i gruppi di contatti del suo host se al servizio non sono stati assegnati gruppi di contatti propri, poiché in tal caso saresti un contatto per il servizio e riceveresti quindi le sue notifiche.
4.3. Gruppi di host e gruppi di servizi
La seconda opzione nell'Authorization settingse globale riguarda i gruppi di host e di servizi. Normalmente puoi vedere un gruppo ogni volta che riesci a vedere almeno un elemento del gruppo, tuttavia il gruppo apparirà come se contenesse solo gli elementi che sono visibili a te.
Passando all'Strict - Visible if all members are visiblee si nasconderanno tutti i gruppi per i quali non sei un contatto per almeno un host o un servizio.
Tieni presente che queste due impostazioni di visibilità non hanno alcuna influenza sulle notifiche.
5. Notifiche
Anche le assegnazioni dei contatti influiscono sulle notifiche. Checkmk è preimpostato in modo tale che, in caso di problema, vengano avvisati tutti i contatti relativi all'host o al servizio interessato. Ciò avviene tramite una regola di notifica globale che viene generata automaticamente quando si creano nuove istanze. Si tratta di una funzionalità molto utile.
Tuttavia, se necessario, puoi adattare una regola o integrarla con altre regole, in modo che in casi estremi le notifiche possano essere inviate in modo completamente indipendente dai gruppi di contatto. Un motivo comune per farlo è che un utente non desidera ricevere determinate notifiche, o viceversa, desidera essere informato sui problemi relativi a singoli host o servizi, anche se non ne è direttamente responsabile (e quindi non è un contatto esplicito).
I dettagli sulla regola di notifica globale fornita da Checkmk sono disponibili nella Guida per principianti.
6. Ruoli e permessi
6.1. Ruoli predefiniti
Checkmk assegna sempre i permessi agli utenti tramite ruoli, mai direttamente. Un ruolo non è altro che un elenco di permessi. È importante capire che i ruoli definiscono il livello di permessi e non fanno riferimento a host o servizi specifici. A questo servono i gruppi di contatto.
Checkmk include i seguenti ruoli predefiniti, che non possono essere eliminati, ma possono essere personalizzati a piacere:
| Nome del ruolo | Alias | Permessi | Funzione |
|---|---|---|---|
|
Amministratore |
Tutti i permessi — in particolare il diritto di modificare i permessi. |
L'amministratore di Checkmk che gestisce il sistema di monitoraggio stesso. |
|
Utente di monitoraggio normale |
Può vedere solo i propri host e servizi, apportare modifiche nell'interfaccia web solo nelle cartelle condivise relative a questi e, in generale, non può fare nulla che influisca sugli altri utenti. |
L'utente Checkmk normale che accede al monitoraggio e reagisce alle notifiche. |
|
Utente di registrazione dell'agente |
Il permesso di registrare l'agente Checkmk di un host sul server Checkmk per la trasmissione dei dati crittografati con TLS — nient'altro. |
Questo ruolo viene assegnato all'utente automazione |
|
Utente ospite |
Può vedere tutto ma non modificare nulla. |
L'utente ospite è pensato semplicemente per "guardare", per cui tutti gli ospiti condividono un account comune. Utile anche per i monitoraggi di stato "pubblici" appesi al muro. |
|
Modello vuoto per ruoli con privilegi minimi |
Non può fare nulla. |
Questo ruolo non è pensato per essere assegnato direttamente. Può invece essere utilizzato per creare nuovi ruoli con solo i permessi minimi richiesti. Se in future versioni di Checkmk dovessero essere aggiunti nuovi permessi o modificati quelli esistenti, puoi comunque essere certo che un ruolo derivato da no_permissions non riceverà alcun permesso inaspettato. |
La gestione dei ruoli avviene tramite Setup > Users > Roles & permissions:

A proposito, quando si crea una nuova istanza Checkmk, viene creato un solo utente (cmkadmin) con il ruolo Administrator per il login all'interfaccia di Checkmk.
Gli altri ruoli possibili non verranno utilizzati per il momento.
Se hai bisogno di un utente ospite, devi crearlo tu stesso.
6.2. Personalizzazione dei ruoli esistenti
Come al solito, l'
ti porta alla modalità di modifica di un ruolo:

La particolarità in questo caso è che per ogni permesso ci sono tre opzioni: yes, no e default (yes) o default (no). Al momento dell'installazione tutti i valori sono impostati su default. Ai fini dell'autorizzazione stessa non fa differenza se hai impostato yes o default (yes). È tuttavia possibile che l'installazione di una nuova versione di Checkmk possa modificare un valore predefinito (anche se questo accade molto raramente). Un'impostazione che hai effettuato esplicitamente non sarebbe quindi influenzata dall'installazione.
Inoltre, questo principio ti permette di riconoscere molto rapidamente dove la tua installazione di Checkmk potrebbe essersi discostata dallo standard.
6.3. Definizione dei propri ruoli
Potresti essere sorpreso dal fatto che non ci sia un pulsante per creare un nuovo ruolo.
C'è una ragione precisa per questo.
Si creano nuovi ruoli derivandoli da quelli esistenti utilizzando
Clone.
Il nuovo ruolo non viene semplicemente creato come copia, ma mantiene la sua relazione con il ruolo originale (Based on role):

Questa connessione ha una funzione importante. Infatti, tutti i permessi del ruolo clonato che non sono impostati esplicitamente (cioè sono ancora impostati su default) verranno ereditati dal ruolo di origine. Le modifiche successive al ruolo di origine verranno trasferite al nuovo ruolo clonato. Questo è molto pratico se pensi a quanti permessi potrebbero esserci nel ruolo originale. Con una semplice copia, potresti facilmente perdere di vista ciò che è effettivamente speciale nel ruolo che hai definito per te stesso.
Questa funzione di derivazione risolve anche un altro problema: Dato che continuiamo a sviluppare Checkmk, vengono aggiunti continuamente nuovi permessi. Ogni volta decidiamo quindi in quale dei tre ruoli Administrator, Normal monitoring user e Guest user debba essere inserito il nuovo permesso. Dato che ciascuno dei tuoi ruoli deriva da uno dei ruoli predefiniti, il nuovo permesso viene automaticamente preimpostato su un valore sensato. Sarebbe molto poco pratico se, ad esempio, definissi il tuo ruolo utente e lì mancassero sempre i nuovi permessi. Dovresti adattare il tuo ruolo per ogni nuova funzionalità, affinché gli utenti possano utilizzarle.
6.4. Confronto dei ruoli con la visualizzazione a matrice
Se vuoi confrontare i permessi nei singoli ruoli, puoi avvalerti della visualizzazione a matrice, accessibile tramite Setup > Users > Roles & permissions > Roles > Permission matrix.
Questa opzione di menu crea la seguente visualizzazione, in cui non solo puoi confrontare i permessi dei singoli ruoli,
ma anche vedere dove i permessi sono stati impostati esplicitamente (
) o rimossi (
).

7. Impostazioni personali
Ogni utente può gestire alcune impostazioni del proprio profilo. Una descrizione dettagliata di tutte le opzioni disponibili è disponibile nell'articolo sull'interfaccia utente.
Una nota aggiuntiva per il monitoraggio distribuito: In un ambiente distribuito, qualsiasi nuova impostazione viene immediatamente trasferita a tutte le istanze di monitoraggio. Questo è l'unico modo per garantire che, in particolare, una password appena assegnata funzioni immediatamente ovunque — e non solo dopo la successiva attivazione delle modifiche. Tuttavia, questo funziona solo per le istanze accessibili tramite la rete in quel momento. Tutti gli altri siti ricevono gli aggiornamenti alla successiva attivazione delle modifiche.
8. Utenti speciali
Finora abbiamo spiegato come creare un "utente normale". Tuttavia, per vari motivi, ci sono anche utenti che hanno diritti o funzioni speciali.
Tra questi ci sono, ad esempio, gli amministratori e gli utenti automazione. Di seguito approfondiremo le loro caratteristiche speciali.
8.1. Amministratore
Durante l’installazione di Checkmk, viene creato un amministratore di default — come già menzionato sopra.
Questo amministratore si chiama cmkadmin.
Ora puoi continuare a lavorare con questo amministratore come preferisci, ma potresti non voler utilizzare questo amministratore predefinito.
Ad esempio, a causa di regolamenti interni all’azienda, perché vuoi definire più amministratori, o per rispettare raccomandazioni di sicurezza come lo standard OWASP Application Security Verification Standard (ASVS).
Innanzitutto, un amministratore è un utente come tutti gli altri. Viene quindi creato come descritto nel capitolo Gestione utenti nell'ambiente di configurazione. Tuttavia, sono determinanti i diritti assegnati all'utente tramite il ruolo selezionato.

Seleziona il ruolo "Administrator" quando crei l'utente. Anche tutte le altre impostazioni vengono effettuate per l'amministratore in base alle preferenze personali o alle specifiche interne dell'azienda.
8.2. Utente automazione (per servizi web)
Quando si effettua la connessione di Checkmk ad altri sistemi, spesso si desidera automatizzare alcune attività che normalmente avvengono tramite la GUI. Alcuni esempi sono:
Impostazione e rimozione di tempi di manutenzione programmati utilizzando uno script.
Gestione degli host tramite API REST.
Recupero dei dati dalle visualizzazioni in formato CSV o JSON per un'ulteriore elaborazione.
Recupero dello stato attuale delle aggregazioni BI per crearle come servizio.
In queste situazioni, il software esterno deve essere in grado di recuperare automaticamente determinati URL dall'interfaccia di Checkmk. Questo ovviamente solleva la questione di come l'utente effettui il login. Il metodo tradizionale tramite la finestra di dialogo di login è macchinoso e richiede il recupero di diversi URL in successione e il salvataggio di un cookie.
Per semplificare questo processo, Checkmk offre il concetto di utenti automazione. Questi utenti sono destinati esclusivamente al controllo remoto e non consentono un normale login tramite la GUI. L'autenticazione avviene tramite Autenticazione semplice HTTP.
In ogni sito Checkmk è già configurato un utente automazione: serve per registrare l'agente Checkmk sul server Checkmk per il trasferimento dei dati crittografati con TLS.
Per altre attività, puoi creare ulteriori utenti automazione, solitamente con il ruolo "administrator".
Si crea un utente automazione come un utente normale, ma non si assegna una password normale, bensì una password di automazione (Automation secret).
Puoi far creare automaticamente questa password con il cubo "
":

L'autenticazione semplice HTTP richiede per impostazione predefinita la password di automazione in chiaro.
Per farlo, imposta l'opzione Store the secret in cleartext.
La password viene quindi salvata nella directory dell'istanza sotto |
Un utente automazione ha un ruolo proprio come un utente normale e può anche essere un contatto. Ciò significa che puoi limitare i permessi e la visibilità di host e servizi secondo necessità.
Per il recupero automatico delle pagine web, inserisci quindi l'intestazione dell'Autenticazione semplice HTTP, che fondamentalmente ha questo aspetto: Authorization: Basic 1234567890abcdef.
La stringa di caratteri è la forma codificata in Base64 di username:password.
Ecco un esempio di recupero di una visualizzazione in formato JSON con l'utente automazione automation e la sua password di automazione — la codifica Base64 viene eseguita da curl:
Se lo script che recupera l'URL viene eseguito direttamente nel sito di monitoraggio, puoi leggere la password di automazione dell'utente direttamente dal file system.
Non si tratta di una vulnerabilità di sicurezza, ma è intenzionale:
Puoi scrivere script di automazione che non devono contenere la password di automazione e non richiedono un file di configurazione.
Per farlo, leggi il file ~/var/check_mk/web/myuser/automation.secret:
Puoi facilmente memorizzare il contenuto di questo file in una variabile nella shell, ad esempio in modo che possa essere letto in seguito con uno script:
9. Login automatico tramite URL
L'accesso automatico tramite URL nel browser descritto di seguito è stato disabilitato per motivi di sicurezza a partire dalla versione Checkmk 2.2.0 , poiché le credenziali (nome utente e password) trasmesse tramite URL vengono memorizzate nei file di log dell'Apache specifico dell'istanza (vedi Werk #14261). Se desideri utilizzare l'accesso automatico tramite URL nonostante questo rischio per la sicurezza, devi abilitarlo esplicitamente con l'impostazione globale Setup > General > Global settings > User interface > Login via GET requests. |
Come abbiamo visto, puoi utilizzare gli utenti automazione per recuperare qualsiasi URL tramite uno script, senza bisogno di effettuare il login. In situazioni che richiedono un vero e proprio login al browser, tuttavia, questo non funziona, poiché i dati di accesso per eventuali link inclusi (ad es. a immagini e iframe) non vengono trasmessi.
L'esempio migliore è il desiderio di appendere a una parete un monitor che mostri continuamente una specifica dashboard di Checkmk. Questo monitor deve essere controllato da un computer che, all'avvio, apra automaticamente il browser, effettui l'accesso a Checkmk e richiami la dashboard richiesta.
Per ottenere questo risultato, è meglio creare prima un utente speciale a questo scopo. Il ruolo "Guest user" è particolarmente adatto a questa funzione perché garantisce tutti i diritti di lettura, ma non consente alcuna modifica o intervento.
Crea l'URL per il login automatico come segue:
Inizia con:
http://mycmkserver/mysite/check_mk/login.py?_origtarget=Determina l'URL effettivo da visualizzare (ad es. quello della dashboard) con il tuo browser — preferibilmente senza navigazione — il che può essere fatto switchando Display > Show page navigation.
Aggiungi questo URL, tralasciando tutto ciò che precede la parte
/mysite/.Aggiungi all'URL le due variabili
_usernamee_passwordnel seguente formato:&_username=myuser&_password=mysecret.Aggiungi un altro
&_login=1.
Ecco un esempio di un URL di questo tipo:
http://mycmkserver/mysite/check_mk/login.py?_origtarget=/mysite/check_mk/dashboard.py?name=mydashboard&_username=myuser&_password=mypassword&_login=1Nota:
Nell'esempio, sostituisci i valori
mycmkserver,mysite,myuseremypasswordcon i tuoi valori appropriati. Non puoi usare l'utente automazione comemyuser, poiché l'accesso tramite la GUI non è consentito per questo utente.Se in uno di questi valori o nel valore di
_origtargetcompaiono i caratteri speciali&o%, devi sostituirli come segue:&con%26e%con%25.
Prova il tutto disconnettendoti da Checkmk nel browser, quindi copiando l'URL creato nella barra degli indirizzi del browser. Dovresti quindi essere reindirizzato direttamente alla pagina di destinazione, senza un dialogo di login. Allo stesso tempo sarai connesso e potrai richiamare direttamente i link contenuti nella pagina.
Puoi anche provare l'URL finito con curl sulla riga di comando.
Se hai fatto tutto correttamente, riceverai il codice di stato HTTP 302 FOUND e verrai reindirizzato all'indirizzo specificato Location, come nell'output abbreviato seguente:
Se nonostante questo messaggio di conferma non ottieni la visualizzazione desiderata nel browser, check l'URL indicato sotto Location — anche se è errato, curl restituirà il codice di stato HTTP 302 FOUND.
Se i dati di login non sono corretti, riceverai il codice di stato HTTP 200 OK,
ma vedrai solo il codice HTML della pagina di login, come nell'output abbreviato seguente:
10. Assegnazione dei permessi alle cartelle
10.1. Funzione del ruolo di "Normal monitoring user "
Se hai un ambiente di monitoraggio piuttosto esteso da gestire, ti conviene coinvolgere altri amministratori nella configurazione e soprattutto nella gestione di host e servizi. Per mantenere il controllo su chi è autorizzato ad apportare modifiche e su cosa può fare, e per evitare che le persone si intralcino a vicenda, puoi assegnare i permessi per Checkmk Setup in base alle cartelle.
Il primo passo è far lavorare i tuoi colleghi amministratori con i propri utenti basati sul ruolo "Normal monitoring user".
Questo ruolo ha fondamentalmente l'autorizzazione per l'ambiente di configurazione, ma con alcune restrizioni importanti:
Sono consentite solo modifiche a host, servizi, regole e aggregazioni BI.
Host, servizi e regole possono essere gestiti solo in cartelle condivise.
Le aggregazioni BI possono essere gestite solo in pacchetti BI condivisi.
Non è consentito nulla che abbia implicazioni globali.
Finché non hai ancora rilasciato alcuna cartella o pacchetto BI, ciò significa che gli utenti con il ruolo "Normal monitoring user" non possono inizialmente apportare alcuna modifica. Il menu "Setup" (Configurazione) appare così per i normali utenti di monitoraggio:

10.2. Consentire agli utenti di gestire gli host
Un utente riceve l'autorizzazione a creare, modificare e rimuovere host tramite i gruppi di contatto. La procedura è la seguente:
Aggiungi l'utente a un gruppo di contatto.
Indica una o più cartelle per le quali l'utente deve essere autorizzato.
Attiva la proprietà "Permissions" per queste cartelle e seleziona qui il gruppo di contatto.
L'esempio seguente mostra le proprietà di una cartella in cui tutti gli utenti del gruppo di contatto "Linux" sono autorizzati a gestire gli host.
L'opzione è stata attivata per consentire ciò anche nelle sottocartelle.

Sta a te decidere se includere automaticamente gli host nel gruppo di contatti.
In questo esempio l'opzione "Add these groups as contacts to all hosts in this folder" non è stata impostata e gli host non verranno aggiunti al gruppo di contatti "Linux".
Ciò significa che nell'ambiente di monitoraggio non saranno visibili al gruppo di contatti "Linux" (a meno che non ci sia una regola che se ne occupi).
Quindi, come puoi vedere, la visibilità (e la responsabilità nel monitoraggio) e l'autorizzazione per l'ambiente di configurazione possono essere regolate separatamente.
11. Password
11.1. Sicurezza delle password
La sicurezza è una priorità assoluta al giorno d'oggi. Per questo motivo, in alcune aziende esistono linee guida generali su come gestire le password. Checkmk offre diverse impostazioni per applicare tali impostazioni predefinite. Alcune di esse si trovano in Global settings > User management > Password policy for local accounts:

La prima opzione Minimum password length serve a garantire la qualità della password.
Per la seconda opzione Number of character groups to use ci sono in totale quattro gruppi di caratteri:
lettere minuscole
lettere maiuscole
cifre
caratteri speciali
Se inserisci qui un "4", la password dovrà contenere almeno un carattere per ciascuno dei gruppi sopra indicati.
Con un "2" si garantisce almeno che la password non sia composta, ad esempio, solo da lettere minuscole.
Queste impostazioni vengono checkate ogni volta che si cambia la password.
La terza opzione "Maximum age of passwords" (Modifica password) obbliga l'utente a cambiare la propria password a intervalli regolari. Una volta giunto il momento, al prossimo accesso alla pagina verrà visualizzato il seguente messaggio:

Gli utenti potranno proseguire solo dopo aver modificato la password.
Puoi richiedere la modifica della password iniziale al primo login. Questo si fa con l'opzione "Enforce change: Change password at next login or access" nella sezione "Security" nelle proprietà dell'utente in questione.
11.2. Politiche di login
In "Global settings > User management" troverai ulteriori impostazioni globali che regolano i logins degli utenti.
Blocco dopo logins non validi
Con l'impostazione "Lock user accounts after N logon failures" puoi bloccare un account dopo una serie di tentativi di login falliti:

Lo sblocco è quindi possibile solo da parte di un utente con il ruolo di amministratore (Administrator).
In qualità di amministratore, puoi sbloccare altri utenti tramite Setup > Users > Users e poi le proprietà dell'utente bloccato.
Tieni presente che anche gli account amministratore possono essere bloccati!
Se sei bloccato in modo permanente in quanto ultimo o unico amministratore, puoi sbloccare il tuo account solo tramite la riga di comando.
Per farlo, modifica il file ~/etc/htpasswd come utente dell’istanza e rimuovi il punto esclamativo dalla riga dell'utente interessato, in questo caso myuser:
A questo punto puoi effettuare nuovamente l'accesso.
Disconnessioni automatiche
Nella box "Session management" puoi specificare due diversi modi per terminare una sessione e combinarli tra loro: da un lato in base alla durata della sessione, dall'altro in base all'attività dell'utente.
Maximum session duration garantisce che la sessione venga terminata automaticamente dopo un determinato periodo di tempo. Tra le altre cose, questo riduce il rischio di un uso esterno della sessione, poiché non rimane attiva a tempo indeterminato:

Una volta scaduta la durata della sessione definita, l'utente deve effettuare nuovamente l'accesso, indipendentemente dal fatto che fosse attivo o meno alla fine della sessione. Allo stesso tempo, puoi utilizzare "Advise re-authentication before termination" per specificare quando l'utente deve essere avvisato di salvare i propri dati, disconnettersi e accedere nuovamente prima di una chiusura "forzata" della sessione:

L'impostazione Set an individual idle timeout assicura che una sessione venga terminata se un utente non utilizza attivamente la GUI per un periodo di tempo prolungato, ad esempio, se ha temporaneamente lasciato la propria postazione di lavoro senza effettuare il logout in Checkmk. Questo timeout può essere interrotto utilizzando attivamente la GUI. Tuttavia, non è sufficiente avere semplicemente una visualizzazione aperta che si ricarica regolarmente.
Prevenzione di logins multipli
L'impostazione "Limit login to single session at a time" impedisce a un utente di accedere a Checkmk con due browser contemporaneamente:

Questa opzione è anche collegata a un timeout per il logout automatico in caso di inattività. Anche questa funzione è utile. Supponiamo che tu abbia dimenticato di disconnetterti dalla tua postazione di lavoro prima di chiudere il browser. In questa situazione, senza un timeout, non potresti accedere da casa mentre sei di turno, poiché chiudere il browser o spegnere il computer non attiva automaticamente il logout!
Quando tenti un secondo login in parallelo, vedrai il seguente messaggio di errore:

In questo caso, il login può essere effettuato solo se chiudi attivamente la sessione esistente o aspetti che scada il timeout.
11.3. Autenticazione a due fattori
Per migliorare la sicurezza delle tue istanze Checkmk, Checkmk offre la funzione di autenticazione a due fattori per ogni utente. Questa autenticazione a due fattori si basa sullo standard internet FIDO2/WebAuthn. L'autenticazione si basa tradizionalmente sulla conoscenza (una password) e sul possesso (un autenticatore).
Puoi utilizzare qualsiasi hardware compatibile con FIDO2 supportato dal tuo browser e dal tuo sistema operativo. I token USB o NFC come lo YubiKey sono i più diffusi. In alternativa, è possibile utilizzare app Authenticator (ad esempio sullo smartphone) che generano una one-time password temporanea (TOTP).
Requisiti per il server Checkmk
A causa delle specifiche dello standard WebAuthn, ci sono tre prerequisiti per l'uso dell'autenticazione a due fattori:
L'interfaccia web di Checkmk è protetta con HTTPS.
L'indirizzo web è specificato come semplice nome host o come nome di dominio completo — in ogni caso come indirizzo di dominio valido.
L'URL viene sempre inserito nello stesso formato, ad esempio sempre
https://www.mycompany.com/mysite.
Setup

Ti verranno ora proposte due opzioni contrassegnate dal simbolo a forma di chiave
per aggiungere il secondo fattore:
Register authenticator app per configurare un'app che genera one-time passwords e Register security token per utilizzare un token hardware.

Checkmk riconosce le opzioni di autenticazione disponibili sul tuo computer. Nella finestra del browser si apre una piccola finestra di dialogo in cui devi specificare l'autenticatore. Se stai usando un token hardware, la configurazione è completata quando tocchi il pulsante. Quando usi le one-time password, prima scansiona il codice QR visualizzato con l'app Authenticator e inserisci un codice generato dall'app per la conferma. In entrambi i casi, la sessione proseguirà senza interruzioni.
Login
L'autenticazione a due fattori sarà quindi attiva in Checkmk per i futuri tentativi di login. Per prima cosa, inserisci il tuo nome utente e la password come al solito. Poi apparirà una seconda finestra di dialogo di login:

Dopo aver attivato l'autenticatore, puoi lavorare con Checkmk come al solito.
Creazione e utilizzo dei codici di backup
Nel caso in cui non avessi l'autenticatore a portata di mano, puoi in alternativa inserire un codice di backup.
Per farlo, crea in anticipo un elenco di codici di backup nella pagina "User > Two-factor authentication" utilizzando
Generate backup codes:

Conserva questi codici in un luogo sicuro.
Dopo aver generato i codici di backup, nella seconda finestra di dialogo di login Two-factor authentication viene visualizzata l'opzione aggiuntiva "Use backup code". Clicca su questa opzione se desideri accedere a Checkmk con un codice di backup. La seconda finestra di dialogo di login verrà sostituita in modo da poter inserire lì un codice di backup:

Verifica e esclusione dell'autenticazione a due fattori come amministratore
Come amministratore, nella gestione utenti (Setup > Users > Users) puoi vedere quali utenti hanno l'autenticazione a due fattori configurata guardando la voce nella colonna Authentication.

Se uno di questi utenti non ha più accesso a Checkmk — ad esempio se ha perso o danneggiato il proprio token hardware — puoi rimuovere l'autenticazione a due fattori per quell'utente.
Per farlo, apri la voce corrispondente nella gestione utenti cliccando su
.
Rimuovi l'autenticazione a due fattori per quell'utente con User > Remove two-factor authentication.

Dopo aver approvato la finestra di dialogo di conferma, l'utente potrà accedere nuovamente all'interfaccia web di Checkmk utilizzando "solo" il nome utente e la password.
Impostare l'autenticazione a due fattori come amministratore
Come hai letto nella sezione Setup, ogni utente può attivare l'autenticazione a due fattori per il proprio account Checkmk. Gli amministratori hanno la possibilità di rendere obbligatoria questa funzione facoltativa per gli utenti sotto il loro controllo. L'autenticazione a due fattori può essere imposta a tutti gli utenti di un ruolo, o anche a tutti gli utenti, con l'opzione Enforce two factor authentication.
Per forzare l'autenticazione a due fattori per un ruolo, apri Setup > Users > Roles & permissions, clicca sul simbolo a forma di matita del ruolo
e seleziona la checkbox Enforce two factor authentication in
Basic properties.
Questa opzione è disponibile per tutti gli utenti Checkmk in Setup > General > Global settings > User management.
L'attivazione come impostazione globale ha la precedenza su un'impostazione basata sul ruolo.
Un utente che dovrebbe attivare l'autenticazione a due fattori ma non l'ha ancora fatto verrà reindirizzato alla pagina Two-factor authentication al momento dell'accesso, dopo aver inserito nome utente e password:

L'utente viene reindirizzato all'interfaccia utente di Checkmk solo quando è stata configurata una delle due opzioni disponibili per il secondo fattore.
11.4. Modifica della password tramite la riga di comando
In caso di emergenza, puoi anche modificare una password tramite la riga di comando.
Questo ti salva in una situazione in cui hai perso la password per cmkadmin.
Il presupposto è, ovviamente, che sia ancora possibile effettuare il login come utente Linux sul server Checkmk e che tu possa diventare un utente dell’istanza con omd su mysite.
Le password sono memorizzate nel file ~/etc/htpasswd, come già descritto sopra.
La modifica delle password si effettua con il comando cmk-passwd.
Questo comando non ti chiederà la password esistente.
In una versione attuale di Checkmk, cmk-passwd sceglierà sempre un metodo di crittografia sicuro per memorizzare le tue password.
Attualmente cmk-passwd utilizza bcrypt per questo scopo.
Le password non crittografate o crittografate in modo debole (ad es. con MD5) non consentono il login alla GUI.
12. Attributi utenti personalizzati
Oltre al campo per l'indirizzo e-mail, è disponibile anche il campo Pager address per inviare notifiche agli utenti. Se questo non è sufficiente e desideri memorizzare ulteriori informazioni su un utente, puoi creare i tuoi campi personalizzati tramite Setup > Users > Custom user attributes > Add attribute , che potranno poi essere compilati con valori individuali per ciascun utente.
La creazione di un nuovo attributo di questo tipo apre la seguente finestra di dialogo:

Come sempre, l’ID (Name) non può essere modificato in seguito, ma il titolo (Title) sì. L’Topic determina in quale sezione delle impostazioni utente verrà inserito il nuovo campo. Inoltre, puoi decidere se gli utenti possono modificare il campo autonomamente (apparirà quindi nelle loro impostazioni personali) e se il valore debba essere visualizzato direttamente nella tabella degli utenti Setup.
Solo se attivi la checkbox su Make this variable available in notifications puoi utilizzare questo valore anche nelle notifiche. A tal fine, il valore deve essere assegnato al nucleo di monitoraggio (ad es. CMC) in una variabile (una cosiddetta "macro personalizzata").
Il nome della variabile personalizzata deriva dall'ID che hai scelto.
Questo viene convertito in maiuscolo e preceduto dal prefisso CONTACT_. Un phone diventa quindi CONTACT_PHONE.
Tieni presente che quando la variabile viene passata tramite variabili d'ambiente, alla variabile verrà anteposto il prefisso NOTIFY_.
Con il tuo script di notifica personalizzato, la variabile arriverà come NOTIFY_CONTACT_PHONE.
13. Scrivere messaggi agli utenti
Nell'articolo che descrive le regole di notifica, spieghiamo in dettaglio come Checkmk può informare i contatti in merito a problemi con host o servizi. Tuttavia, a volte potresti voler avvisare tutti gli utenti (anche quelli che non sono contatti) di questioni organizzative interne, ad esempio la manutenzione del sistema Checkmk stesso.
A tal fine Checkmk offre un piccolo strumento di messaggistica integrato, completamente separato dalle notifiche. Puoi trovare lo strumento all'indirizzo Setup > Users e poi in Users > Send user messages. Qui hai la possibilità di inviare un messaggio a tutti o ad alcuni dei tuoi utenti.

Puoi scegliere tra quattro tipi di messaggio:
Show popup message |
La prossima volta che l'utente aprirà la pagina, si aprirà una finestra pop-up con il messaggio. |
Show hint in the 'User' menu |
L'utente viene avvisato del messaggio tramite un simbolo numerico nel menu Utente della barra di navigazione. |
Send email |
Invia un'e-mail. Tuttavia, questa raggiungerà solo gli utenti che hanno configurato un indirizzo e-mail. |
Show in the dashboard element 'User messages' |
Il messaggio viene visualizzato in un dashlet del tipo User messages. |
Con Message expiration puoi eliminare facilmente i messaggi che non sono ancora stati recuperati non appena non sono più rilevanti.
Una caratteristica speciale dell'opzione "Show hint in the 'User' menu": tramite User messages > Received messages gli utenti possono trovare i propri messaggi della raccolta e confermarli e/o eliminarli.

Checkmk avvisa automaticamente gli utenti delle modifiche rilevanti per la sicurezza ai loro account. Queste includono modifiche alla password e all'autenticazione a due fattori (attivazione, disattivazione, login tramite codice di backup e creazione e revoca dei codici di backup). Se per l'utente è memorizzato un indirizzo e-mail, le notifiche vengono inviate via e-mail, altrimenti vengono inviate tramite lo strumento dei messaggi.
I messaggi di sicurezza vengono attivati solo da azioni all'interno della GUI di Checkmk. Non possono essere cancellati dall'utente, tuttavia la durata di visualizzazione di questi messaggi può essere configurata tramite Setup > General > Global settings > User management > User security notification duration. Per impostazione predefinita, la durata di visualizzazione è di 7 giorni.
14. Altri temi
Checkmk supporta altri metodi di accesso:
Connessione a un LDAP/Active Directory
Autenticazione con SAML
Autenticazione con Kerberos
Autenticazione in un Setup con proxy inverso
Autenticazione semplice HTTP
15. File e directory
Il seguente elenco mostra quali file e directory sul server Checkmk sono coinvolti nella gestione degli utenti.
Come sempre, tutte le voci qui riportate sono relative alla directory dell'istanza (ad es. /omd/sites/mysite).
| Percorso | Funzione |
|---|---|
|
Password degli utenti nel formato Apache |
|
Questo file contiene un segreto casuale utilizzato per firmare i cookie di accesso.
In ambienti distribuiti, questo file dovrebbe essere lo stesso per tutte le istanze — e lo sarà se configuri tutto tramite l'interfaccia web.
Se questo file viene modificato, tutti i logins sono immediatamente non validi e gli utenti devono effettuare nuovamente il login.
Questo file è privilegiato |
|
Numeri seriali delle password per utente. Qualsiasi modifica della password incrementa il numero seriale e quindi rende non valide tutte le sessioni attuali. Questo garantisce che una modifica della password disconnetta in modo affidabile un utente. |
|
Contiene gli utenti configurati con l'ambiente di configurazione. Qui vengono memorizzati solo i dati relativi agli utenti che utilizzano esclusivamente la GUI. Le modifiche manuali a questo file hanno effetto immediato. |
|
Informazioni di contatto per gli utenti configurati con l'ambiente di configurazione.
Qui vengono memorizzati tutti i dati rilevanti per la configurazione del nucleo di monitoraggio.
Qui sono elencati solo gli utenti che sono anche contatti.
Affinché le modifiche manuali abbiano effetto qui, la nuova configurazione deve essere caricata nel core — ad esempio con |
|
Ogni utente che ha effettuato l'accesso alla GUI almeno una volta ha qui una sottocartella in cui vengono memorizzati elementi come visualizzazioni e rapporti personalizzati, l'attuale configurazione della barra laterale e molto altro in piccoli file individuali con estensione |
|
File di log dell'interfaccia utente. Qui troverai i messaggi di errore relativi all'autenticazione e alle connessioni LDAP. |
