ElasticSearch开启权限认证
ElasticSearch版本 7.6.1
服务器版本CentOS 7.4
问题描述
项目等保协议扫描出ES漏洞:检测到ES(ElasticSearch) 数据库没有开启授权认证,建议开启授权认证,防止非法访问
解决步骤
一、 生成证书:
注: 切换ES用户,找到ES的部署路径
输入 ./bin/elasticSearch-certutil ca
碰到第一个直接回车 文件将会生成在当前文件夹下
碰到第二个输入密码,例如123456
完成后会生成一个文件:elastic-stack-ca.p12
二、 生成秘钥
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
第一个输入密码后回车
第二个不需要输入直接回车
第三个确认密码后回车,之后生成一个文件:elastic-certificates.p12
三、将凭证迁移到指定目录
如果是集群,需要每个节点的服务器都要把elastic-certificates.p12(上述方法生成)这个文件移动到每一个es安装目录的相同路径下
# 先创建目录
mkdir ./config/certificates
# 移动凭证至指定目录下
mv ./elastic-certificates.p12 ./config/certificates/
# 赋值权限,不然会出问题
chmod 777 ./config/certificates/elastic-certificates.p12
五、修改配置文件(每一台es都需要添加)
# 打开配置文件
vi ./config/elasticsearch.yml
# 输入如下配置(原配置中已有的可忽略)
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length
xpack.security.enabled: true
xpack.security.authc.accept_default_password: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: 【es的安装路径】/config/certificates/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: 【es的安装路径】/config/certificates/elastic-certificates.p12
六、在节点上添加密码(集群时需每台es都需要操作)
./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
输入密码:第一步中设置的密码,例如本样例中的123456
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
输入密码:第一步中设置的密码,例如本样例中的123456
七、逐个启动节点
注:启动后可以查下日志,是否正常,如果日志异常,需要根据情况进行排查
./bin/elasticsearch -d
八、设置密码
此处会设置很多用户账号的密码,最好记录下来,以后会用到
elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user
./bin/elasticsearch-setup-passwords interactive
# 排着设置密码即可
九、浏览器查看9200端口
默认端口的访问地址为:http://[ip]:9200 输入账号密码后查看信息