I nodi del cluster Elasticsearch sono accessibili tramite vari client fra i quali:
Sentinel: per recuperare e presentare i dati degli eventi nel dashboard di visualizzazione degli eventi.
Lavori Spark in esecuzione nei nodi YARN NodeManager: per eseguire indicizzazioni in blocco degli eventi ricevuti da Kafka (per SSDM).
Collector Manager: per eseguire indicizzazioni in blocco degli eventi in Sentinel con la memorizzazione tradizionale.
Altri client esterni: per eseguire operazioni personalizzate, ad esempio analisi personalizzate.
In Sentinel è disponibile un plug-in di sicurezza per Elasticsearch denominato elasticsearch-security-plugin che esegue l'autenticazione e autorizza l'accesso a Elasticsearch.
Nel plug-in viene utilizzato un token SAML o una white list per la convalida, a seconda della modalità di connessione dei client:
Quando un client invia un token SAML insieme alla richiesta, il plug-in autentica il token nel server di autenticazione di Sentinel. Quando l'autenticazione ha esito positivo, il plug-in consente l'accesso solo agli eventi filtrati a cui il client è autorizzato.
Ad esempio, nel dashboard di visualizzazione degli eventi (client) vengono visualizzati solo gli eventi provenienti da Elasticsearch che il ruolo dell'utente è autorizzato a visualizzare.
Per informazioni sui ruoli e le autorizzazioni, vedere Creating a Role
(Creazione di un ruolo) nella Sentinel Administration Guide (Guida all'amministrazione di Sentinel).
Quando un client non può inviare un token SAML, il plug-in controlla la propria white list di client legittimi. Una volta eseguita la convalida, il plug-in consente l'accesso a tutti gli eventi senza filtraggio.
Quando un client non invia un token SAML valido o la white list non concede l'autorizzazione, il plug-in lo considera come un client non legittimo e rifiuta l'accesso.
In questa sezione vengono fornite informazioni sull'installazione e la configurazione del plug-in di sicurezza per Elasticsearch:
È necessario installare il plug-in di sicurezza per Elasticsearch in ciascun nodo del cluster Elasticsearch e anche nel nodo Elasticsearch incluso in Sentinel.
Per installare elasticsearch-security-plug-in nel nodo Elasticsearch incluso in Sentinel:
Eseguire il login a Sentinel principale o al server SSDM.
Impostare il percorso della variabile di ambiente JAVA_HOME come segue:
export JAVA_HOME=/<Sentinel_installation_path>/opt/novell/sentinel/jdk/
Installare il plug-in:
Per Linux, eseguire il login come utente che esegue Elasticsearch ed eseguire il comando seguente:
<sentinel_installation_path>/opt/novell/sentinel/3rdparty/elasticsearch/bin/elasticsearch-plugin install file://localhost/<Sentinel_installation_path>/etc/opt/novell/sentinel/scalablestore/elasticsearch-security-plugin*.zip --verbose
Quando viene richiesto di continuare l'installazione, immettere y.
(Condizionale) Se Elasticsearch non è in ascolto sulla porta HTTP di default (9200), è necessario aggiornare il numero di porta di Elasticsearch in tutte le voci del file <percorso_di_installazione_di_Sentinel>>/opt/novell/sentinel/3rdparty/elasticsearch/plugins/elasticsearch-security-plugin/elasticsearch-ip-whitelist.tx.
Per ulteriori informazioni, consultare Accesso ai client Elasticsearch mediante white list.
Riavviare i servizi di indicizzazione in Sentinel utilizzando il comando:
rcsentinel stopSIdb rcsentinel startSIdb
Per installare elasticsearch-security-plug-in in nodi Elasticsearch esterni:
Eseguire i passaggi seguenti in ciascun nodo del cluster Elasticsearch:
Eseguire il login a Sentinel principale o al server SSDM.
Copiare il file <percorso_di_installazione_di_Sentinel>/etc/opt/novell/sentinel/scalablestore/elasticsearch-security-plugin*.zip in un'ubicazione temporanea in ciascun nodo del cluster Elasticsearch.
Installare il plug-in:
Per Linux, eseguire il login come utente che esegue Elasticsearch ed eseguire il comando seguente:
<elasticsearch_install_directory>/bin/elasticsearch-plugin install file://localhost/<full path of elasticsearch-security-plugin*.zip file> --verbose
Quando viene richiesto di continuare l'installazione, immettere y.
(Condizionale) Se Elasticsearch non è in ascolto sulla porta HTTP di default (9200), è necessario aggiornare il numero di porta di Elasticsearch in tutte le voci del file <directory_di_installazione_di_elasticsearch>/plugins/elasticsearch-security-plugin/elasticsearch-ip-whitelist.txt.
Per ulteriori informazioni, consultare Accesso ai client Elasticsearch mediante white list.
Riavviare Elasticsearch.
Di default, i client attendibili, quali il server SSDM (per il dashboard di visualizzazione degli eventi) e le istanze di YARN NodeManager, il server Sentinel (per il dashboard di visualizzazione degli eventi) ed RCM hanno accesso a Elasticsearch. Se si desidera utilizzare client Elasticsearch aggiuntivi, è necessario fornire un accesso sicuro a tali client aggiuntivi mediante token SAML o white list.
Se si utilizza un client REST per accedere a Elasticsearch, è possibile includere un token SAML nell'intestazione della richiesta come segue:
Ottenere un token SAML dal server di autenticazione di Sentinel. Per ulteriori informazioni, vedere la documentazione delle API REST disponibile in Sentinel.
Fare clic su Guida > API > Esercitazione > Sicurezza API > Ottenere un token SAML (login).
Utilizzare il token SAML nelle successive richieste REST: includere il token SAML nell'intestazione Authorization di ogni richiesta effettuata dal client REST. Specificare Authorization come nome dell'intestazione e utilizzare il <token SAML> ottenuto al passaggio 1 come valore dell'intestazione.
Di default, in Sentinel viene compilata automaticamente una white list con gli indirizzi IP dei client Elasticsearch attendibili, come il server SSDM (per il dashboard di visualizzazione degli eventi), le istanze di YARN NodeManager, il server Sentinel (per il dashboard di visualizzazione degli eventi) ed RCM. Il plug-in di sicurezza per Elasticsearch concede l'accesso a Elasticsearch a tutti i client elencati nella propria white list.
Per garantire l'accesso a client aggiuntivi che non inviano un token Sentinel valido, è necessario aggiungere l'indirizzo IP del client e il numero della porta HTTP del server Elasticsearch alla white list nel formato indirizzo IP:porta. È necessario accertarsi che i client esterni aggiunti alla white list siano legittimi e affidabili, al fine di impedire eventuali accessi non autorizzati.
Per aggiornare la white list:
Eseguire il login al server Sentinel o al nodo Elasticsearch come utente che sta eseguendo Elasticsearch.
Aggiungere la voce <IP_del_client_Elasticsearch>:<Porta_HTTP_di_destinazione_di_Elasticsearch> nel file:
<percorso_di_installazione_di_Sentinel>/opt/novell/sentinel/3rdparty/elasticsearch/plugins/elasticsearch-security-plugin//elasticsearch-ip-whitelist.txt per il nodo Elasticsearch incluso in Sentinel.
<directory_di_installazione_di_elasticsearch>/plugins/elasticsearch-security-plugin/elasticsearch-ip-whitelist.txt per i nodi Elasticsearch esterni.
Se sono necessarie più voci, aggiungere ognuna di esse in una nuova riga e salvare il file.
Ripetere i passaggi precedenti in ciascun nodo del cluster Elasticsearch.
Nei casi in cui si modificano l'indirizzo IP/nome host e il numero di porta di componenti della memorizzazione scalabile o il numero di versione e il numero di porta di Elasticsearch, è necessario aggiornare i file di configurazione del plug-in di Elasticsearch di conseguenza.
Eseguire i passaggi seguenti in ciascun nodo del cluster Elasticsearch:
Eseguire il login al nodo Elasticsearch come l'utente che sta eseguendo Elasticsearch.
(Condizionale) Se si modificano gli indirizzi IP di YARN NodeManager, l'indirizzo IP di SSDM o del server Sentinel, gli indirizzi IP di RCM o il numero di porta di Elasticsearch, aggiornare la white list di conseguenza affinché il plug-in di sicurezza per Elasticsearch conceda l'accesso ai client Elasticsearch.
Se si sta configurando SSDM o Sentinel nella modalità ad alta disponibilità, aggiungere le voci per l'indirizzo IP fisico di ciascun nodo attivo e passivo del cluster ad alta disponibilità.
Se si modifica l'indirizzo IP fisico di uno qualsiasi dei nodi del cluster ad alta disponibilità o si aggiunge un nuovo nodo al cluster ad alta disponibilità, aggiornare la white list con gli indirizzi IP fisici dei nodi modificati o appena aggiunti.
Per ulteriori informazioni, consultare Accesso ai client Elasticsearch mediante white list.
(Condizionale) Se si modifica l'indirizzo IP di SSDM, l'indirizzo IP del server Sentinel o il numero di porta del server Web, aggiornare le proprietà authServer.host e authServer.port nei file seguenti e riavviare Elasticsearch:
<percorso_di_installazione_di_Sentinel>/opt/novell/sentinel/3rdparty/elasticsearch/plugins/elasticsearch-security-plugin/plugin-configuration.properties per il nodo Elasticsearch incluso in Sentinel.
<directory_di_installazione_di_elasticsearch>/plugins/elasticsearch-security-plugin/plugin-configuration.properties per i nodi Elasticsearch esterni.
Se si sta configurando SSDM o Sentinel nella modalità ad alta disponibilità, impostare la proprietà authServer.host sull'indirizzo IP virtuale del cluster ad alta disponibilità.
Se si modifica l'indirizzo IP virtuale del cluster ad alta disponibilità, aggiornare la proprietà authServer.host impostando l'indirizzo IP virtuale modificato.
(Condizionale) Se si esegue l'upgrade di Elasticsearch a una versione più recente, aggiornare la proprietà elasticsearch.version nei file seguenti e riavviare Elasticsearch:
/opt/novell/sentinel/3rdparty/elasticsearch/plugins/elasticsearch-security-plugin/plugin-descriptor.properties per il nodo Elasticsearch incluso in Sentinel.
<directory_di_installazione_di_elasticsearch>/plugins/elasticsearch-security-plugin/plugin-descriptor.properties per i nodi Elasticsearch esterni.