ES 安装 search-guard-6

安装插件

官方网站
在ES目录下执行命令

bin/elasticsearch-plugin install -b com.floragunn:search-guard-6:6.4.2-23.1

注: 安装版本需要和Elasticsearch版本相对应. 查看版本

这里不使用官方的快速构建方法

生成证书
  1. 下载脚本
    git clone https://github.com/floragunncom/search-guard-ssl.git

  2. 证书配置
    路径
    **/elasticsearch-6.4.2/search-guard-ssl/example-pki-scripts

    目录内容 etc下可对证书进行配置
    证书配置

  3. 修改example.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash
OPENSSL_VER="$(openssl version)"

if [[ $OPENSSL_VER == *"0.9"* ]]; then
echo "Your OpenSSL version is too old: $OPENSSL_VER"
echo "Please install version 1.0.1 or later"
exit -1
else
echo "Your OpenSSL version is: $OPENSSL_VER"
fi

set -e
./clean.sh
# 第一个参数为CA根证书密码,第二个参数为TS密码(truststore,信任证书密码)
./gen_root_ca.sh capass changeit
# 生成节点证书: 第一个参数为节点编号,第二个参数为keystore文件密码,第三个参数为CA根证书密码。
# 此处我们只生成两个节点证书
./gen_node_cert.sh 0 changeit capass && ./gen_node_cert.sh 1 changeit capass
# 生成客户端证书: 第一个参数为客户端名称, 第二个参数为keystore文件名称,第三个参数为CA根证书名称。
./gen_client_node_cert.sh spock changeit capass
./gen_client_node_cert.sh kirk changeit capass
./gen_client_node_cert.sh logstash changeit capass
./gen_client_node_cert.sh filebeat changeit capass
./gen_client_node_cert.sh kibana changeit capass
# 生成一个sgadmin客户端证书,用于配置管理
./gen_client_node_cert.sh sgadmin changeit capass
# 生成一个javaapi访问的客户端证书
./gen_client_node_cert.sh javaapi changeit capass
rm -f ./*tmp*
  1. 生成证书移动到elasticsearch config 在ES目录下
1
2
./example.sh
cp node-0-keystore.jks sgadmin-keystore.jks truststore.jks /opt/export/app/elasticsearch-6.4.2/config/
  1. 配置elasticsearch.yml, 增加以下配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 配置节点间通信证书,节点间通信使用TLS是强制的
searchguard.ssl.transport.keystore_filepath: node-0-keystore.jks
searchguard.ssl.transport.keystore_password: changeit
searchguard.ssl.transport.truststore_filepath: truststore.jks
searchguard.ssl.transport.truststore_password: changeit
# 设置不校验hostname
searchguard.ssl.transport.enforce_hostname_verification: false
searchguard.ssl.transport.resolve_hostname: false
# 配置管理员证书DN
searchguard.authcz.admin_dn:
- CN=sgadmin,OU=client,O=client,L=Test, C=DE

bootstrap.memory_lock: false
bootstrap.system_call_filter: false
xpack.security.enabled: false
  1. 启动访问需要权限
添加脚本权限并初始化用户
1
2
3
cd /opt/export/app/elasticsearch-6.4.2/plugins/search-guard-6/tools
chmod +x *.sh
./sgadmin.sh -cn cluster-es -cd ../sgconfig -ks ../../../config/sgadmin-keystore.jks -kspass changeit -ts ../../../config/truststore.jks -tspass changeit -nhnv

每次更新用户权限或者新增修改用户, 只需要重新执行第三条命令, 更新用户信息即可

Kibana安装

参照官方网站安装配置即可. 官方网站, 或者按照以下步骤.

  1. 在kibana安装目录下执行一下吗命令
1
bin/kibana-plugin install https://search.maven.org/remotecontent?filepath=com/floragunn/search-guard-kibana-plugin/6.4.2-15/search-guard-kibana-plugin-6.4.2-15.zip
  1. 修改kibana.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
# Use HTTPS instead of HTTP
# elasticsearch.url: "https://localhost:9200"
elasticsearch.url: "http://localhost:9200"

# Configure the Kibana internal server user
elasticsearch.username: "kibanaserver"
elasticsearch.password: "kibanaserver"

# Disable SSL verification because we use self-signed demo certificates
elasticsearch.ssl.verificationMode: none

# Whitelist the Search Guard Multi Tenancy Header
elasticsearch.requestHeadersWhitelist: [ "Authorization", "sgtenant" ]
  1. 打开对应域名登录
    http://localhost:5601/

注:

以上内容为参考自M醉逍遥, 并搭建成功后总结记录, 以作备忘. 链接如下:
https://www.jianshu.com/p/319913a944af