漏洞修复:

1.限制IP访问,禁止未授权IP访问ElasticSearch端口(默认9200)。

2.通过ES插件形式来增加访问验证,需要注意增加验证后切勿使用弱口令:

①shield插件,收费,暂不考虑。

②针对1.7.0版本之前的ElasticSearch,可采用elasticsearch-http-basic插件。

下载地址:Releases · Asquera/elasticsearch-http-basic · GitHub

elasticsearch-http-basic和其他ES插件一样,安装在plugins文件夹下以后,在config/elasticsearch.yml中统一配置:

http.basic.enabled true #开关,开启会接管全部HTTP连接
http.basic.user “admin” #账号
http.basic.password “admin_pw” #密码
http.basic.ipwhitelist [“localhost”, “127.0.0.1”] #白名单内的IP访问不需要通过账号和密码,支持IP和主机名,不支持IP区间或正则。

③针对elasticsearch2.x以后的版本可采用search-guard插件。

同样在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

3.架设nginx反向代理服务器,并设置http basic认证来实现elasticsearch的登录认证。(具体可参考原文地址:Elasticsearch教程,Elasticsearch安全篇,通过Nginx http basic 限制访问 —技术博客)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐