最近,交大因为对 ElasticSearch 数据库未正确配置公开访问权限,导致泄漏了 8.4TB 的电子邮件元数据。一时间各大媒体相互报道,看客们一个个很热闹!
之前,就有互联网知名团队报道过,因为 MongoDB、ElasticSearch 等未配置密码,未添加权限管理等造成信息泄露的事件在逐渐上升。
一方面是因为这些开源产品并没有默认的提供安全配置等功能。另一方面是互联网技术发展太快,技术人员的技能参差不齐,导致了很多人忽略了安全方面的管理。今天抽个机会,教大家如何对 ElasticSearch 配置密码,进行加密访问。
ElasticSearch 是一个开源的软件,属于 Elastic 公司。 Elastic 公司在2018年10月6日于纽交所上市,股价最高暴涨 122%。Elastic 是一个商业公司。ElasticSearch 虽然免费,但是其很多功能需要配套的插件支持,而这些插件是收费的。这也是为什么一些 ElasticSearch 应用,信息被泄露的原因。
X-Pack 是 ElasticSearch 的一个插件,这个插件将安全,警报,监视,报告和图形等功能打包在一起。通过安装这个插件,我们就可以对 ElasticSearch 配置密码了。注意,X-Pack 是一个收费的插件!
elasticsearch-plugin install x-pack
x-pack 的安装很简单,执行上面的命令即可。x-pack 需要破解,这个不会的可以自行搜索!
安装完成后,启动 elasticsearch。启动成功后,我们执行下面的命令,进行密码设置。
./bin/x-pack/setup-passwords interactive
接着,根据提示,为三个内置账号设置密码。
也可以有系统自动生成密码。自动生成密码,执行下面的命令即可。
./bin/x-pack/setup-passwords auto
三个内置账号的角色权限解释如下:
- elastic 账号:拥有 superuser 角色,是内置的超级用户。
- kibana 账号:拥有 kibana_system 角色,用户 kibana 用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引。不能访问 index。
- logstash_system 账号:拥有 logstash_system 角色。用户 Logstash 在 Elasticsearch 中存储监控信息时使用。
另外也可以在 kibana 中通过 DSL 语句设置密码。
POST _xpack/security/user/kibana/_password
{
"password": "elastic"
}
x-pack 内置了非常多的角色,这个我们后面再说。
密码搞定后,我们还需要修改 elasticsearch 的配置文件。
http.cors.enabled: true
http.cors.allow-origin: '*'
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
编辑完 elasticsearch/config/elasticsearch.yml 文件后,保存重启 es 即可。
然后,head 访问方式,http://localhost:9100/?base_uri=http://localhost:9200&auth_user=elastic&auth_password=password。
好了,本文的简单教程就先到这里。其实,除了 X-Pack,我们还可以使用 shield 来进行安全管理。后面抽时间再说吧!
: » 手把手教你为ElasticSearch设置密码、权限管理、加密访问
原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/252114.html