ProHoster > Blog > administration > Elastic Locked Up: Aktiverer Elasticsearch Cluster-sikkerhedsmuligheder for indvendig og udvendig adgang
Elastic Locked Up: Aktiverer Elasticsearch Cluster-sikkerhedsmuligheder for indvendig og udvendig adgang
Elastic Stack er et velkendt værktøj på SIEM-systemmarkedet (faktisk ikke kun dem). Det kan indsamle en masse forskellige størrelser data, både følsomme og ikke særlig følsomme. Det er ikke helt korrekt, hvis adgangen til selve Elastic Stack-elementerne ikke er beskyttet. Som standard fungerer alle Elastic-boksede elementer (Elasticsearch, Logstash, Kibana og Beats-samlere) på åbne protokoller. Og i selve Kibana er godkendelse deaktiveret. Alle disse interaktioner kan sikres, og i denne artikel vil vi fortælle dig, hvordan du gør det. For nemheds skyld blev historien opdelt i 3 semantiske blokke:
Rollemodel for dataadgang
Datasikkerhed i en Elasticsearch-klynge
Datasikkerhed uden for en Elasticsearch-klynge
Detaljer under snittet.
Rollemodel for dataadgang
Hvis du installerer Elasticsearch og tuner det på ingen måde, vil adgang til alle indekser være åben for alle. Nå, eller dem der kan bruge krølle. For at undgå dette har Elasticsearch en rollemodel, der er tilgængelig, startende med et abonnement på basisniveau (som er gratis). Skematisk ser det sådan ud:
Hvad er der på billedet
Brugere er alle, der kan logge ind ved hjælp af legitimationsoplysninger.
Ressourcer er indekser, dokumenter, felter, brugere og andre lagerenheder (rollemodellen for nogle ressourcer er kun tilgængelig i betalte abonnementer).
Elasticsearch har som standard boksede brugeresom er knyttet til kasseroller. Når du har aktiveret sikkerhedsindstillinger, kan du begynde at bruge dem med det samme.
For at aktivere sikkerhed i Elasticsearch-indstillingerne skal du tilføje den til konfigurationsfilen (som standard er dette elasticsearch/config/elasticsearch.yml) ny linje:
xpack.security.enabled: true
Når du har ændret konfigurationsfilen, skal du starte eller genstarte Elasticsearch for at ændringerne træder i kraft. Det næste trin er at tildele adgangskoder til boksede brugere. Lad os gøre dette interaktivt med 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 tjekker:
[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 slå dig selv på skulderen - indstillingerne på Elasticsearch-siden er udført. Nu er det turen til at sætte Kibana op. Hvis du kører det nu, vil der falde fejl, så det er vigtigt at oprette et nøglelager. Dette gøres i to kommandoer (bruger Kibana og adgangskoden indtastet i trinnet med at oprette adgangskoder i Elasticsearch):
Hvis alt er korrekt, vil Kibana begynde at bede om et brugernavn og en adgangskode. I et Basic-abonnement er en rollemodel baseret på interne brugere tilgængelig. Startende med Gold kan du tilslutte eksterne godkendelsessystemer - LDAP, PKI, Active Directory og Single sign-on systemer.
Adgangsrettigheder til objekter inde i Elasticsearch kan også begrænses. Sandt nok, for at gøre det samme for dokumenter eller felter, skal du have et betalt abonnement (denne luksus starter med Platinum-niveauet). Disse indstillinger er tilgængelige i Kibana-grænsefladen eller via Sikkerheds-API. Du kan tjekke gennem den allerede velkendte Dev Tools-menu:
Når Elasticsearch kører i en klynge (hvilket er almindeligt), bliver sikkerhedsindstillingerne i klyngen vigtige. Til sikker kommunikation mellem noder bruger Elasticsearch TLS-protokollen. For at opsætte sikker kommunikation mellem dem, skal du have et certifikat. Vi genererer et certifikat og en privat nøgle i PEM-format:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
Efter at have udført kommandoen ovenfor, i mappen /../elasticsearch arkivet vises elastic-stack-ca.zip. Inde i den finder du et certifikat og en privat nøgle med udvidelser crt и nøgle henholdsvis. Det er ønskeligt at lægge dem ud på en delt ressource, som der skal være adgang til fra alle klyngens noder.
Hver node har nu brug for sine egne certifikater og private nøgler baseret på dem i den delte mappe. Når kommandoen udføres, bliver du bedt om at angive en adgangskode. Yderligere muligheder -ip og -dns kan tilføjes for fuldt ud at verificere kommunikerende noder.
Som et resultat af kommandoudførelsen vil vi modtage et certifikat og en privat nøgle i formatet PKCS # 12, beskyttet af en adgangskode. Det er tilbage at flytte den genererede fil p12 til konfigurationsmappen:
Der er en anden sikkerhedsmulighed - IP-adressefiltrering (tilgængelig i abonnementer fra Gold-niveau). Giver dig mulighed for at oprette hvide lister over IP-adresser, hvorfra noder har tilladelse til at få adgang.
Datasikkerhed uden for en Elasticsearch-klynge
Uden for klyngen betyder det at forbinde eksterne instrumenter: Kibana, Logstash, Beats eller andre eksterne klienter.
For at konfigurere understøttelse af https (i stedet for http), skal du tilføje nye linjer til elasticsearch.yml:
Efter tilføjelse af nøglerne er Elasticsearch-noderne klar til at oprette forbindelse via https. Nu kan de lanceres.
Det næste trin er at oprette en Kibana-forbindelsesnøgle og tilføje den til konfigurationen. Baseret på certifikatet, som allerede er placeret i den delte mappe, genererer vi et certifikat i PEM-format (PKCS # 12 Kibana, Logstash og Beats understøtter endnu ikke):
Tasterne er der, så det er tilbage at ændre Kibana-konfigurationen, så den begynder at bruge dem. I kibana.yml-konfigurationsfilen skal du ændre http til https og tilføje linjer med SSL-forbindelsesindstillinger. De sidste tre linjer opretter en sikker interaktion mellem brugerens browser og Kibana.
Således er indstillingerne foretaget, og adgangen til data i Elasticsearch-klyngen er krypteret.
Hvis du har spørgsmål om Elastic Stack-funktionerne på gratis eller betalte abonnementer, opgaver til overvågning eller oprettelse af et SIEM-system, så efterlad en anmodning i tilbage melding fra på vores hjemmeside.
Flere af vores artikler om Elastic Stack på Habré: