ElasticSearch2.4.2安装search-guard插件
来源:互联网 发布:vue.js dotnet core 编辑:程序博客网 时间:2024/05/17 04:00
(1)环境;
elasticsearch 2.4.2
(2):github上分支没有2.4.x版本的分支,笔者一度找了好久才找到下面一个版本关系对应表
elasticsearch与search-guard以及search-guard-ssl:
(3): 进入elasticsearch的bin目录,执行命令安装search-guard
./plugin install -b com.floragunn/search-guard-2/2.4.2.10
注:当es的版本大于2.2时,安装过程中可能会有WARNING提示,这个不影响。其它ES版本,请对照表格替换命令行后的版本号即可。
(4):安装 search-guard-ssl
./plugin install -b com.floragunn/search-guard-2/2.4.2.10
(5)安装完成后,会在plugins目录中生成两个目录
(6):下载 searchguard-ssl 的包,里面包含自动创建证书的脚本:
wget https://github.com/floragunncom/search-guard-ssl/archive/v2.4.2.19.zipunzip v2.4.2.19.zip cd search-guard-ssl-2.4.2.19/example-pki-scripts/
编辑脚本 vim example.sh
原始example.sh文件内容:
set -e./clean.sh./gen_root_ca.sh capass changeit./gen_node_cert.sh 0 changeit capass && ./gen_node_cert.sh 1 changeit capass && ./gen_node_cert.sh 2 changeit capass./gen_client_node_cert.sh spock changeit capass./gen_client_node_cert.sh kirk changeit capass
修改后example.sh中文件内容
set -e./clean.sh./gen_root_ca.sh elastic elastic./gen_node_cert.sh 181 elastic elastic./gen_node_cert.sh 182 elastic elastic./gen_node_cert.sh 183 elastic elastic./gen_client_node_cert.sh admin elastic elasticcp truststore.jks node-181-keystore.jks /a/apps/elasticsearch-2.4.2/config/cp truststore.jks admin-keystore.jks /a/apps/elasticsearch-2.4.2/plugins/search-guard-2/sgconfig/
运行 ./example.sh命令,会在当前目录生成多个证书文件
(7):编辑elasticsearch-2.4.2/config/elasticsearch.yml配置文件 添加如下内容
#-------------------search guard config--------------------------security.manager.enabled: falsesearchguard.authcz.admin_dn: - "CN=admin, OU=client, O=client, L=Test, C=DE"#上面的admin是要和example.sh中的对应上#-------------------search guard ssl----------------------------------------#------------------------transport layer SSL------------------------------------searchguard.ssl.transport.enabled: truesearchguard.ssl.transport.keystore_filepath: node-181-keystore.jkssearchguard.ssl.transport.keystore_password: elasticsearchguard.ssl.transport.truststore_filepath: truststore.jkssearchguard.ssl.transport.truststore_password: elasticsearchguard.ssl.transport.enforce_hostname_verification: falsesearchguard.ssl.transport.resolve_hostname: falsesearchguard.ssl.http.enabled: true #设置成true浏览器也无法访问,测试请改为falsesearchguard.ssl.http.keystore_filepath: node-181-keystore.jkssearchguard.ssl.http.keystore_password: elasticsearchguard.ssl.http.truststore_filepath: truststore.jkssearchguard.ssl.http.truststore_password: elasticsearchguard.allow_all_from_loopback: true
(8):在elasticsearch根目录 执行命令 将配置插入
./plugins/search-guard-2/tools/sgadmin.sh -cn 集群名称 -h hostname -cd plugins/search-guard-2/sgconfig -ks plugins/search-guard-2/sgconfig/admin-keystore.jks -kspass elastic -ts plugins/search-guard-2/sgconfig/truststore.jks -tspass elastic -nhnv
./plugins/search-guard-2/tools/sgadmin.sh -cn admin -h 172.100.50.181-cd plugins/search-guard-2/sgconfig -ks plugins/search-guard-2/sgconfig/admin-keystore.jks -kspass elastic -ts plugins/search-guard-2/sgconfig/truststore.jks -tspass elastic -nhnv
需要注意:
如果提示没有操作权限,则必须先把hash.sh文件的权限开放
chmod -R 777 ./plugins/search-guard-2/tools/sgadmin.sh
如成功写入配置,则会显示以下信息:
9):search guard配置文件配置
search-guard中的用户权限管理
相关配置文件的介绍
searchguard 主要有5个配置文件在plugins/search-guard-2/sgconfig 下:
1、sg_config.yml:主配置文件不需要做改动。
2、sg_internal_users.yml:本地用户文件,定义用户密码以及对应的权限。
3、sg_roles.yml:权限配置文件
4、sg_roles_mapping.yml:定义用户的映射关系
5、sg_action_groups.yml:定义权限
修改内置用户密码,然后再运行一次search guard 配置写入命令。
1.则先用plugins/search-guard-2/tools/hash.sh生成hash字符串,生成密码:
先修改权限。再生成密码。
2:将字符串复制到sg_internal_users.yml文件的对应用户密码位置,在密码下面记得写入原密码的提示,难保你那天忘记了。
vim plugins/search-guard-2/sgconfig/sg_internal_users.yml
3:添加用户权限
vim sg_roles_mapping.yml
4:重新写入配置文件
先回到elasticsearch的安装文件夹
执行命令
./plugins/search-guard-2/tools/sgadmin.sh -cn admin -h 172.100.50.181-cd plugins/search-guard-2/sgconfig -ks plugins/search-guard-2/sgconfig/admin-keystore.jks -kspass elastic -ts plugins/search-guard-2/sgconfig/truststore.jks -tspass elastic -nhnv
5:测试:
curl -XGET “http://elastic:123456@172.100.50.181:9200”
现在每次想访问你网站的9200端口都必须要有搜索认证的保护了。
注:admin 为集群名称。
番外篇:
集群部署:
配置好一台机器后,需要把这台机器中的plugins文件夹中的下面两个文件夹cp到其它节点
然后把
这两个文件cp到对应机器的elasticsearch安装目录的config文件夹下。
修改其它节点的elasticsearch.yml配置文件,参考本机器。至此,集群部署成功。
测试问题:
(1):集群名称不能包含“-”符号,如es-kz,这个集群名称无法生成searchguard索引。
(2):测试时,把searchguard.ssl.http.enabled: true设置成false,设置成true浏览器也无法访问
(3):如果elasticsearch添加了searchguard权限控制,则kibana,logstash等就不能再连接上es了,请参考下两篇文章解决该问题
- ElasticSearch2.4.2安装search-guard插件
- Elasticsearch 5.x 安装 Search Guard 5 插件
- Elasticsearch 5.0 安装Search Guard 5 验证插件
- elasticsearch 安装search guard
- Elasticsearch search-guard 插件部署
- LogStash配置search-guard插件
- Elasticsearch2.4学习(三)------Elasticsearch2.4插件安装详解
- elasticsearch之search-guard安装
- Elasticsearch2.3.1中文分词ik插件安装
- elasticsearch2.3.3搭建及插件安装
- elasticsearch2.3.3以及其插件离线安装
- ElasticSearch2.x版本各插件安装方法
- Elasticsearch 免费认证插件Search-guard的部署安装及策略配置
- elasticsearch-- search guard安装与配置
- ES05--search guard安装与配置
- Elasticsearch2.1.0安装中文分词插件ik1.6
- Elasticsearch2.x 拼音分词插件lc-pinyin安装教程
- ElasticSearch2.x安装bigdesk插件解决bigdesk报错
- Lua中的模块与包
- android使用HttpURLConnection/HttpClient实现带参数文件上传
- Android开发学习笔记(3)
- AOP-顾问-方法名匹配切入点顾问
- React-native Webstorm调试
- ElasticSearch2.4.2安装search-guard插件
- CSS垂直居中的11种实现方式
- Java_java.lang.UnsupportedClassVersionError
- linux下gcc编译conio.h问题
- Java 基础【02】 Super 用法
- [BZOJ4031][HEOI2015]小Z的房间(矩阵树定理+高斯消元)
- git的三个核心概念(版本库,工作区,暂存区)
- Maven_Nexus_install
- python 字符串截取