众所周知,es低版本对授权认证支持的不高,而且x-pack是收费的。下文提供几种解决方案供参考。
以开源工具
禁止未授权IP访问ElasticSearch端口(默认9200)。
iptables
firewalld
elasticsearch2.x以后的版本可采用search-guard插件。(这里用了es5.6,测试可用)
同样在config/elasticsearch.yml中统一配置,在末尾追加以下内容:
searchguard.ssl.transport.pemcert_filepath: certificates/esnode.pem
searchguard.ssl.transport.pemkey_filepath: certificates/esnode-key.pem
searchguard.ssl.transport.pemtrustedcas_filepath: certificates/root-ca.pem
searchguard.ssl.transport.enforce_hostname_verification: false
searchguard.ssl.http.enabled: true
searchguard.ssl.http.pemcert_filepath: certificates/esnode.pem
searchguard.ssl.http.pemkey_filepath: certificates/esnode-key.pem
searchguard.ssl.http.pemtrustedcas_filepath: certificates/root-ca.pem
searchguard.allow_unsafe_democertificates: true
searchguard.allow_default_init_sgindex: true
searchguard.authcz.admin_dn:
- CN=kirk,OU=client,O=client,L=test,C=de
searchguard.enable_snapshot_restore_privilege: true
searchguard.check_snapshot_restore_write_privileges: true
searchguard.restapi.roles_enabled: ["sg_all_access"]
配置完成之后,默认访问口令为”username:admin,pwd:admin”,修改默认admin密码操作可参考:
https://blog.csdn.net/lu_wei_wei/article/details/100727090
这个插件仓库已经迁移,如果不好找、可以在第三方下载历史版本。
架设 nginx 反向代理服务器,并设置 http_basic 认证来实现 elasticsearch 的登录认证。https://www.sojson.com/blog/213.html
这种方式,网上案例比较多,就不累述了,如果有需要欢迎下面交个朋友。
这种方式后续补充