前言
es之前版本一直无用户验证功能,不过官方有提供一x-pack
,但是问题是付费。在es的6.3.2版本中,已经集成了x-pack
,虽然es团队已经对x-pack
开源,但是在该版本中如果需要使用到安全加密功能,依然还是需要付费购买license,search guard
社区版可以免费提供用户验证功能
1.安装环境
程序 | 版本 | 安装方式 |
---|---|---|
elasticsearch | 6.6.3 | rpm |
kibana | 6.6.1 | rpm |
java | 1.8.0 | tar |
centos | 6.6 | / |
es安装环境
elasticsearch node | hostname |
---|---|
10.124.147.22 | 10-124-147-22 |
10.124.147.23 | 10-124-147-23 |
10.124.147.32 | 10-124-147-32 |
2.search guard安装
官方安装文档>> 点击我
安装有两种方法,本次选用快速安装,其中涉及到https的自签证书,官方不是很推荐,不过可以使用
2.1 在elasticsearch安装
-找到elasticsearch的bin目录/usr/share/elasticsearch/bin/
[root@10-124-147-22 bin]# pwd
/usr/share/elasticsearch/bin
[root@10-124-147-22 bin]# ./elasticsearch-plugin install com.floragunn:search-guard-6:6.3.2-22.3
install 后面的链接地址,依自己的es版本进行选择Artifact选项中的值,相关链接>>点击我
进行demo模式的安装
[root@10-124-147-22 tools]# pwd
/usr/share/elasticsearch/plugins/search-guard-6/tools
[root@10-124-147-22 tools]# bash install_demo_configuration.sh
依按说明三个Y
确认即可
同时在其它node之上进行安装并重启es
2.2 测试elasticsearch上的安装
web访问 安装该es节点的9200端口,
如本安装过程中,访问https://10.124.147.22:9200/_searchguard/authinfo
需要注意的是,此处是https
而非http
默认用户名与密码均为admin
如果打印了admin的json信息,则安装ok
2.3在kibana上安装
1.停止kibana
2.进入kibana的plugin目录
[root@10-124-147-22 bin]# pwd
/usr/share/kibana/bin
[root@10-124-147-22 bin]# ./kibana-plugin install https://search.maven.org/remotecontent?filepath=com/floragunn/search-guard-kibana-plugin/6.3.1-14-beta-1/search-guard-kibana-plugin-6.3.1-14-beta-1.zip
url地址在官网上查找>>点击我
需要找对自己的版本,安装之时,在kibana 6.3.2的时候,search guard暂时还未出现其适配版,所以将kibana降级为6.3.1
3.kibana配置文件更新
kibana配置文件需要加入以下
[root@10-124-147-22 bin]# grep ^[^#] /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "https://localhost:9200"
elasticsearch.username: "kibanaserver"
elasticsearch.password: "kibanaserver"
elasticsearch.ssl.verificationMode: none
elasticsearch.requestHeadersWhitelist: [ "Authorization", "sgtenant" ]
xpack.monitoring.enabled: false
xpack.graph.enabled: false
xpack.ml.enabled: false
xpack.watcher.enabled: false
xpack.security.enabled: false
在es的6.3.2版本中,已经集成了x-pack
,虽然es团队已经对x-pack
开源,但是在该版本中如果需要使用到安全加密功能,依然需要付费购买license,对于后面对xpack
的控制选项在search guard
中并未提供,但是实际测试的时候,需要添加,否则kibana无法正常启动
需要注意的是es的url由http变成https
2.4 kibana的search guard测试
web访问5601端口即可
用户名与密码名均为admin
进入之后,可以看到左侧菜单栏多出search guard
选项,即表示安装ok
3.kibana中search guard默认密码的更改
1.生成新的密码
[root@10-124-147-22 tools]# pwd
/usr/share/elasticsearch/plugins/search-guard-6/tools
[root@10-124-147-22 tools]# ./hash.sh -p letv.bigdata
$2y$12$nwfMezsKdWhPMoj5iqZ/6.H9RpXFvDbd59K1mTxqWmH8IY/bFWSXm
2.修改sg_internal_users.yml
配置文件
将其中hash之后的密码替换成刚才生成的密码,配置文件路径为/usr/share/elasticsearch/plugins/search-guard-6/sgconfi/sg_internal_users.yml
#password is: letv.bigdata
admin:
#readonly: false
hash: $2y$12$nwfMezsKdWhPMoj5iqZ/6.H9RpXFvDbd59K1mTxqWmH8IY/bFWSXm
roles:
- admin
attributes:
#no dots allowed in attribute names
attribute1: value1
attribute2: value2
attribute3: value3
3.注释掉readonly
选项
当打开此选项之时,在kibana上面无法修改admin用户密码
4.生效search guard配置文件
[root@10-124-147-22 tools]# pwd
/usr/share/elasticsearch/plugins/search-guard-6/tools
[root@10-124-147-22 tools]# ./sgadmin_demo.sh
如果没有重载search guard配置文件,即使重启了es,也无法生效