ProHoster > Log > administrasjon > Elastisk under lås og nøkkel: muliggjør sikkerhetsalternativer for Elasticsearch-klynge for tilgang fra innsiden og utsiden
Elastisk under lås og nøkkel: muliggjør sikkerhetsalternativer for Elasticsearch-klynge for tilgang fra innsiden og utsiden
Elastic Stack er et velkjent verktøy i SIEM-systemmarkedet (faktisk ikke bare dem). Den kan samle inn mye data i forskjellig størrelse, både sensitive og lite sensitive. Det er ikke helt riktig hvis tilgangen til selve Elastic Stack-elementene ikke er beskyttet. Som standard kjører alle Elastic out-of-the-box-elementer (Elasticsearch, Logstash, Kibana og Beats-samlere) på åpne protokoller. Og i selve Kibana er autentisering deaktivert. Alle disse interaksjonene kan sikres, og i denne artikkelen vil vi fortelle deg hvordan du gjør dette. For enkelhets skyld delte vi fortellingen inn i 3 semantiske blokker:
Rollebasert datatilgangsmodell
Datasikkerhet i en Elasticsearch-klynge
Sikring av data utenfor en Elasticsearch-klynge
Detaljer under kuttet.
Rollebasert datatilgangsmodell
Hvis du installerer Elasticsearch og ikke justerer det på noen måte, vil tilgang til alle indekser være åpen for alle. Vel, eller de som kan bruke krøll. For å unngå dette har Elasticsearch en rollemodell som er tilgjengelig fra og med et Basic-abonnement (som er gratis). Skjematisk ser det omtrent slik ut:
Hva er på bildet
Brukere er alle som kan logge på ved å bruke sin legitimasjon.
Ressurser er indekser, dokumenter, felt, brukere og andre lagringsenheter (rollemodellen for noen ressurser er kun tilgjengelig med betalte abonnementer).
Som standard har Elasticsearch boksbrukere, som de er knyttet til boks roller. Når du har aktivert sikkerhetsinnstillinger, kan du begynne å bruke dem umiddelbart.
For å aktivere sikkerhet i Elasticsearch-innstillingene, må du legge den til i konfigurasjonsfilen (som standard er dette elasticsearch/config/elasticsearch.yml) ny linje:
xpack.security.enabled: true
Etter å ha endret konfigurasjonsfilen, start eller start Elasticsearch på nytt for at endringene skal tre i kraft. Det neste trinnet er å tilordne passord til boksbrukere. La oss gjøre dette interaktivt ved å bruke kommandoen nedenfor:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
Vi sjekker:
[elastic@node1 ~]$ curl -u elastic 'node1:9200/_cat/nodes?pretty'
Enter host password for user 'elastic':
192.168.0.2 23 46 14 0.28 0.32 0.18 dim * node1
Du kan klappe deg selv på skulderen - innstillingene på Elasticsearch-siden er fullført. Nå er det på tide å konfigurere Kibana. Hvis du kjører det nå, vil det dukke opp feil, så det er viktig å opprette et nøkkellager. Dette gjøres i to kommandoer (bruker kibana og passordet som ble angitt i trinnet for opprettelse av passord i Elasticsearch):
Hvis alt er riktig, vil Kibana begynne å be om pålogging og passord. Basic-abonnementet inkluderer en rollemodell basert på interne brukere. Fra og med Gold kan du koble til eksterne autentiseringssystemer – LDAP, PKI, Active Directory og Single sign-on-systemer.
Tilgangsrettigheter til objekter inne i Elasticsearch kan også begrenses. Men for å gjøre det samme for dokumenter eller felt, trenger du et betalt abonnement (denne luksusen starter med Platinum-nivået). Disse innstillingene er tilgjengelige i Kibana-grensesnittet eller via Sikkerhets-API. Du kan sjekke gjennom den allerede kjente Dev Tools-menyen:
Når Elasticsearch kjører i en klynge (som er vanlig), blir sikkerhetsinnstillingene i klyngen viktige. For sikker kommunikasjon mellom noder bruker Elasticsearch TLS-protokollen. For å sette opp sikker interaksjon mellom dem, trenger du et sertifikat. Vi genererer et sertifikat og en privat nøkkel i PEM-format:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
Etter å ha utført kommandoen ovenfor, i katalogen /../elasticsearch arkivet vises elastisk-stabel-ca.zip. Inne i den finner du et sertifikat og en privat nøkkel med utvidelser crt и nøkkel hhv. Det er tilrådelig å sette dem på en delt ressurs, som skal være tilgjengelig fra alle noder i klyngen.
Hver node trenger nå sine egne sertifikater og private nøkler basert på de i den delte katalogen. Når du utfører kommandoen, vil du bli bedt om å angi et passord. Du kan legge til flere alternativer -ip og -dns for fullstendig verifisering av samhandlende noder.
Som et resultat av å utføre kommandoen, vil vi motta et sertifikat og en privat nøkkel i PKCS#12-format, beskyttet av et passord. Alt som gjenstår er å flytte den genererte filen p12 til konfigurasjonskatalogen:
Det er et annet sikkerhetsalternativ - IP-adressefiltrering (tilgjengelig i abonnementer fra Gold-nivå). Lar deg lage hvite lister over IP-adresser som du har tilgang til noder fra.
Sikring av data utenfor en Elasticsearch-klynge
Utenfor klyngen betyr å koble til eksterne verktøy: Kibana, Logstash, Beats eller andre eksterne klienter.
For å konfigurere støtte for https (i stedet for http), legg til nye linjer i elasticsearch.yml:
Etter å ha lagt til nøklene, er Elasticsearch-noder klare til å koble til via https. Nå kan de lanseres.
Det neste trinnet er å lage en nøkkel for å koble til Kibana og legge den til i konfigurasjonen. Basert på sertifikatet som allerede er plassert i den delte katalogen, vil vi generere et sertifikat i PEM-format (PKCS#12 Kibana, Logstash og Beats støtter ennå ikke):
Nøklene er der, så det gjenstår bare å endre Kibana-konfigurasjonen slik at den begynner å bruke dem. I kibana.yml-konfigurasjonsfilen endrer du http til https og legger til linjer med SSL-tilkoblingsinnstillinger. De tre siste linjene konfigurerer sikker kommunikasjon mellom brukerens nettleser og Kibana.
Dermed er innstillingene fullført og tilgang til data i Elasticsearch-klyngen er kryptert.
Hvis du har spørsmål om mulighetene til Elastic Stack på gratis eller betalte abonnementer, overvåkingsoppgaver eller opprettelse av et SIEM-system, legg igjen en forespørsel til tilbakemeldings-skjema på nettstedet vårt.