Elasticsearch 設(shè)置最低安全性
您啟用 Elasticsearch 安全功能,然后為內(nèi)置用戶(hù)創(chuàng)建密碼。您可以稍后添加更多用戶(hù),但使用內(nèi)置用戶(hù)可以簡(jiǎn)化為集群?jiǎn)⒂冒踩缘倪^(guò)程。
最小安全場(chǎng)景對(duì)于 生產(chǎn)模式集群是不夠的。如果您的集群有多個(gè)節(jié)點(diǎn),您必須啟用最低安全性,然后 在節(jié)點(diǎn)之間配置傳輸層安全性 (TLS)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-425676.html
- 文檔使用的 elasticsearch 版本如下:
Version: 7.15.1, Build: default/tar/83c34f456ae29d60e94d886e455e6a3409bba9ed/2021-10-07T21:56:19.031608185Z, JVM: 17
本文檔是測(cè)試案例。配置為開(kāi)發(fā)模式,如果一個(gè) Elasticsearch 節(jié)點(diǎn)不能通過(guò)非環(huán)回地址與另一臺(tái)機(jī)器形成集群,我們認(rèn)為它處于開(kāi)發(fā)模式,如果它可以通過(guò)非環(huán)回地址加入集群,則認(rèn)為它處于生產(chǎn)模式。
請(qǐng)注意?。。。。。?!
如果 Elasticsearch 處于開(kāi)發(fā)模式,任何失敗的引導(dǎo)程序檢查都會(huì)在 Elasticsearch 日志中顯示為警告。如果 Elasticsearch 處于生產(chǎn)模式,任何失敗的引導(dǎo)程序檢查都會(huì)導(dǎo)致 Elasticsearch 拒絕啟動(dòng)。
啟用 Elasticsearch 安全功能
當(dāng)您使用基本許可證時(shí),Elasticsearch 安全功能默認(rèn)處于禁用狀態(tài)。啟用 Elasticsearch 安全功能會(huì)啟用基本身份驗(yàn)證,以便您可以使用用戶(hù)名和密碼身份驗(yàn)證運(yùn)行本地集群。
- 在集群中的每個(gè)節(jié)點(diǎn) 上,停止 Kibana 和 Elasticsearch(如果它們正在運(yùn)行)。
root@ubuntu-x64_02:/opt# systemctl stop kibana
root@ubuntu-x64_02:/opt# systemctl stop elasticsearch9201
root@ubuntu-x64_02:/opt# systemctl stop elasticsearch9202
root@ubuntu-x64_02:/opt# systemctl stop elasticsearch9203
- 在集群中的每個(gè)節(jié)點(diǎn)上,將設(shè)置 xpack.security.enabled 添加到 $ES_PATH_CONF/elasticsearch.yml 文件并將值設(shè)置為true:
# 9201
root@ubuntu-x64_02:/usr/local/elasticsearch9201/config# cp elasticsearch.yml elasticsearch.yml.bak
root@ubuntu-x64_02:/usr/local/elasticsearch9201/config# sed -i 's/xpack.security.enabled: false/xpack.security.enabled: true/g' elasticsearch.yml
# 9202
root@ubuntu-x64_02:/usr/local/elasticsearch9202/config# cp elasticsearch.yml elasticsearch.yml.bak
root@ubuntu-x64_02:/usr/local/elasticsearch9202/config# sed -i 's/xpack.security.enabled: false/xpack.security.enabled: true/g' elasticsearch.yml
# 9203
root@ubuntu-x64_02:/usr/local/elasticsearch9203/config# cp elasticsearch.yml elasticsearch.yml.bak
root@ubuntu-x64_02:/usr/local/elasticsearch9203/config# sed -i 's/xpack.security.enabled: false/xpack.security.enabled: true/g' elasticsearch.yml
- 如果您的集群只有一個(gè)節(jié)點(diǎn),請(qǐng)discovery.type在 $ES_PATH_CONF/elasticsearch.yml文件中添加設(shè)置并將值設(shè)置為single-node. 此設(shè)置可確保您的節(jié)點(diǎn)不會(huì)無(wú)意中連接到可能在您的網(wǎng)絡(luò)上運(yùn)行的其他集群。
discovery.type: single-node
為內(nèi)置用戶(hù)創(chuàng)建密碼編輯
-
要與集群通信,您必須為內(nèi)置用戶(hù)配置用戶(hù)名。除非您啟用匿名訪(fǎng)問(wèn),否則所有不包含用戶(hù)名和密碼的請(qǐng)求都會(huì)被拒絕。
-
在啟用最低或基本安全性時(shí),您只需要為elastic和kibana_system用戶(hù)設(shè)置密碼。
-
在集群中的每個(gè)節(jié)點(diǎn)上,啟動(dòng) Elasticsearch。
-
請(qǐng)注意,你要使用開(kāi)發(fā)模式的集群,如果你使用生產(chǎn)環(huán)境模式,又不啟用TLS,你的集群將不會(huì)啟動(dòng),報(bào)錯(cuò):
bootstrap check failure [1] of [1]: Transport SSL must be enabled if security is enabled on a [basic] license. Please set [xpack.security.transport.ssl.enabled] to [true] or disable security by setting [xpack.security.enabled] to [false] -
如果你使用開(kāi)發(fā)模式,則上面的報(bào)錯(cuò)會(huì)顯示為“警告”
# 啟動(dòng)--> 9201
root@ubuntu-x64_02:/opt# systemctl start elasticsearch9201
root@ubuntu-x64_02:/opt# ps -ef | grep elasticsearch9201
elk 3513 1 99 14:11 ? 00:00:22 /usr/local/elasticsearch9201/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -XX:+ShowCodeDetailsInExceptionMessages -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -Xms1g -Xmx1g -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-4767306356958695874 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -XX:MaxDirectMemorySize=536870912 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.path.home=/usr/local/elasticsearch9201 -Des.path.conf=/usr/local/elasticsearch9201/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /usr/local/elasticsearch9201/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
elk 3534 3513 0 14:11 ? 00:00:00 /usr/local/elasticsearch9201/modules/x-pack-ml/platform/linux-x86_64/bin/controller
# 啟動(dòng)--> 9202
root@ubuntu-x64_02:/opt# systemctl start elasticsearch9202
root@ubuntu-x64_02:/opt# ps -ef | grep elasticsearch9202
elk 3743 1 99 14:13 ? 00:00:04 /usr/local/elasticsearch9202/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -XX:+ShowCodeDetailsInExceptionMessages -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -Xms1g -Xmx1g -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-12089215587958578062 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -XX:MaxDirectMemorySize=536870912 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.path.home=/usr/local/elasticsearch9202 -Des.path.conf=/usr/local/elasticsearch9202/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /usr/local/elasticsearch9202/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
elk 3764 3743 0 14:13 ? 00:00:00 /usr/local/elasticsearch9202/modules/x-pack-ml/platform/linux-x86_64/bin/controller
# 啟動(dòng)--> 9203
root@ubuntu-x64_02:/opt# systemctl start elasticsearch9203
root@ubuntu-x64_02:/opt# ps -ef | grep elasticsearch9203
elk 3974 1 99 14:13 ? 00:00:05 /usr/local/elasticsearch9203/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -XX:+ShowCodeDetailsInExceptionMessages -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -Xms1g -Xmx1g -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-1626046538224446804 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -XX:MaxDirectMemorySize=536870912 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.path.home=/usr/local/elasticsearch9203 -Des.path.conf=/usr/local/elasticsearch9203/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /usr/local/elasticsearch9203/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
elk 3995 3974 1 14:13 ? 00:00:00 /usr/local/elasticsearch9203/modules/x-pack-ml/platform/linux-x86_64/bin/controller
- 檢查集群?jiǎn)?dòng)狀態(tài): REST請(qǐng)求缺少身份驗(yàn)證憑據(jù),接下來(lái)我們需要通過(guò)運(yùn)行實(shí)用程序?yàn)閮?nèi)置用戶(hù)設(shè)置密碼
root@ubuntu-x64_02:/opt# curl "http://127.0.0.1:9201/_cat/health/?v"
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/_cat/health/?v]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/_cat/health/?v]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
為內(nèi)置用戶(hù)創(chuàng)建密碼
在另一個(gè)終端窗口中,通過(guò)運(yùn)行實(shí)用程序?yàn)閮?nèi)置用戶(hù)設(shè)置密碼 elasticsearch-setup-passwords, 您可以elasticsearch-setup-passwords針對(duì)集群中的任何節(jié)點(diǎn)運(yùn)行該實(shí)用程序。但是,您應(yīng)該只為整個(gè)集群運(yùn)行一次該實(shí)用程序。
- 使用該auto參數(shù)將隨機(jī)生成的密碼輸出到控制臺(tái),您可以在以后根據(jù)需要更改這些密碼:
- 實(shí)際密碼會(huì)明文打印,這里使用星號(hào)代替
cd /usr/local/elasticsearch9201/
root@ubuntu-x64_02:/usr/local/elasticsearch9201# ./bin/elasticsearch-setup-passwords auto
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y
Changed password for user apm_system
PASSWORD apm_system = G5e******qb
Changed password for user kibana_system
PASSWORD kibana_system = Z4i******Wy7
Changed password for user kibana
PASSWORD kibana = Z4i******y7
Changed password for user logstash_system
PASSWORD logstash_system = sdR******BY
Changed password for user beats_system
PASSWORD beats_system = rIF******BA
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = dt5******gD
Changed password for user elastic
PASSWORD elastic = G9e******nG
- interactive如果要使用自己的密碼,請(qǐng)使用參數(shù)而不是參數(shù)運(yùn)行命令 auto。使用此模式可引導(dǎo)您完成所有內(nèi)置用戶(hù)的密碼配置。
cd /usr/local/elasticsearch9201/
root@ubuntu-x64_02:/usr/local/elasticsearch9201# ./bin/elasticsearch-setup-passwords interactive
- 保存生成的密碼。您將需要它們將內(nèi)置用戶(hù)添加到 Kibana。
- 為用戶(hù)設(shè)置密碼后,您將無(wú)法再次運(yùn)行該命令。elasticsearch-setup-passwords
配置 Kibana 以使用密碼連接到 Elasticsearch
-
啟用 Elasticsearch 安全功能后,用戶(hù)必須使用有效的用戶(hù)名和密碼登錄 Kibana。
-
您將配置 Kibana 以使用您之前創(chuàng)建的內(nèi)置 kibana_system 用戶(hù)和密碼。Kibana 執(zhí)行一些需要 kibana_system 用戶(hù)使用的后臺(tái)任務(wù)。
-
此帳戶(hù)不適用于個(gè)人用戶(hù),無(wú)權(quán)從瀏覽器登錄 Kibana。相反,您將以超級(jí)用戶(hù)身份登錄 Kibana elastic。
-
將設(shè)置添加elasticsearch.username到KIB_PATH_CONF/kibana.yml 文件并將值設(shè)置為kibana_system用戶(hù):
root@ubuntu-x64_02:/usr/local/kibana/config# echo 'elasticsearch.username: "kibana_system"' >> kibana.yml
root@ubuntu-x64_02:/usr/local/kibana/config# egrep "^[a-Z]" kibana.yml
server.port: 5601
server.host: 192.168.88.12
server.publicBaseUrl: "http://192.168.88.12:5601"
elasticsearch.hosts: ["http://127.0.0.1:9201" ,"http://127.0.0.1:9202" ,"http://127.0.0.1:9203"]
kibana.index: ".kibana"
kibana.defaultAppId: "home"
elasticsearch.pingTimeout: 1500
elasticsearch.requestTimeout: 30000
elasticsearch.shardTimeout: 30000
elasticsearch.username: "kibana_system"
創(chuàng)建 Kibana 密鑰庫(kù):
root@ubuntu-x64_02:/usr/local/kibana# ./bin/kibana-keystore create
Created Kibana keystore in /usr/local/kibana/config/kibana.keystore
將用戶(hù) kibana_system 的密碼添加到 Kibana 密鑰庫(kù):
出現(xiàn)提示時(shí),輸入用戶(hù)kibana_system的密碼
root@ubuntu-x64_02:/usr/local/kibana# ./bin/kibana-keystore add elasticsearch.password
Setting elasticsearch.password already exists. Overwrite? [y/N] y
Enter value for elasticsearch.password: ********************
重啟 kibana 服務(wù)
root@ubuntu-x64_02:/usr/local/kibana# systemctl restart kibana.service
root@ubuntu-x64_02:/usr/local/kibana# ps -ef | grep kibana
elk 2370 1 11 19:22 ? 00:00:00 /usr/local/kibana/bin/../node/bin/node /usr/local/kibana/bin/../src/cli/dist
elk 2385 2370 99 19:22 ? 00:00:06 /usr/local/kibana/node/bin/node --preserve-symlinks-main --preserve-symlinks /usr/local/kibana/src/cli/dist
以用戶(hù) elastic 身份登錄 Kibana 。使用此超級(jí)用戶(hù)帳戶(hù)來(lái)管理空間、創(chuàng)建新用戶(hù)和分配角色。
如果您在本地運(yùn)行 Kibana,請(qǐng)轉(zhuǎn)至http://localhost:5601 查看登錄頁(yè)面。
登錄后,可以看到 Management 下面security可以對(duì)用戶(hù)和角色權(quán)設(shè)置限管理~
小結(jié)
以上是最低安全性配置, 如果您想在筆記本電腦上設(shè)置 Elasticsearch 并開(kāi)始開(kāi)發(fā),這個(gè)場(chǎng)景適合您。此配置通過(guò)為內(nèi)置用戶(hù)設(shè)置密碼來(lái)防止未經(jīng)授權(quán)訪(fǎng)問(wèn)您的本地集群。您還可以為 Kibana 配置密碼身份驗(yàn)證。
最小安全場(chǎng)景對(duì)于 生產(chǎn)模式集群是不夠的。如果您的集群有多個(gè)節(jié)點(diǎn),您必須啟用最低安全性,然后 在節(jié)點(diǎn)之間配置傳輸層安全性 (TLS)。
請(qǐng)參考 “Elasticsearch 設(shè)置基本安全性”,以保護(hù)集群中節(jié)點(diǎn)之間的所有內(nèi)部通信文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-425676.html
到了這里,關(guān)于Elasticsearch 設(shè)置最低安全性的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!