1、修改默认端口
说明
一般默认端口会让攻击者猜测具体的中间件类型,降低攻击者的攻击难度。
实施指导
编辑elasticsearch.yml配置文件,设置如下属性
http.port: 8090
2、设置集群具有master节点资格的最小数量
说明
当节点间的通信断开后,各个Master候选节点都有可能认为其他节点都宕机,提升自己为Master,造成集群状态不一致,这种情况称之为“脑裂”。
实施指导
编辑elasticsearch.yml配置文件,设置如下属性
discovery.zen.minimum_master_nodes: N/2+1
其中N为集群节点个数
3、修改默认的ElasticSearch集群名称
说明
Elasticsearch 默认的集群名称是 elasticsearch,请在您的生产环境中将其修改成其他名称。确保在不同的环境和不同的集群下使用不同的名称,这样可以防止一个新启动的节点加入到相同网络中的另一个同名的集群中。
实施指导
编辑elasticsearch.yml配置文件,设置如下属性
#按需修改
cluster.name: my-cluster
4、授权访问
说明
Elasticsearch未授权访问漏洞,该漏洞会引发访问链接,获取敏感信息的威胁。
实施指导
X-Pack是一个Elastic Stack扩展,将安全性,警报,监控,报告,机器学习和图形功能捆绑到一个易于安装的软件包中。要访问此功能,您必须 在Elasticsearch中安装X-Pack。目前elastic search7以上版本,x-pack已经作为默认的插件集成在Elasticsearch里面了。
编辑elasticsearch.yml配置文件,添加如下配置,让ES支持认证:
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
重新启动后,设置密码。设置密码方式如下:
进入elastic search的bin目录,执行如下命令:
./elasticsearch-setup-passwords interactive
按照提示设置各个用户密码,如下所示:
Enter password for [elastic]:
Reenter password for [elastic]:
Passwords do not match.
Try again.
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
passwords must be at least [6] characters long
Try again.
Enter password for [apm_system]:
passwords must be at least [6] characters long
Try again.
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
如果未集成,可用如下方式安装:
在elasticsearch的bin目录下,执行如下命令:
./elasticsearch-plugin install x-pack
如果出现如下提示,则说明已经集成过了,只需要设置密码即可。
-> Installing x-pack
-> Failed installing x-pack
ERROR: this distribution of Elasticsearch contains X-Pack by default
如果需要修改密码,可以利用kibana进行修改。
如果是集群的话,需要配置TLS再授权。具体如下:
1)2.1 创建证书文件
在一个master节点下执行如下命令即可
./bin/elasticsearch-certutil ca
两次回车
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
三次回车
两个文件默认生成在elastic search主目录下。
2)修改配置文件
编辑elasticsearch.yml配置文件,设置如下属性
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
5、禁用批量删除索引
说明
Elasticsearch支持使用全部(`_all`)和通配符(`*`)来批量删除索引。在生产环境,该操作存在一定风险,生产环境建议设置为true,删除索引库的时候必须显式指定,否则可能会误删索引库中的索引。
编辑elasticsearch.yml配置文件,设置如下属性
action.destructive_requires_name: true
如果批量删除,则elasticsearch会有如下提示:
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "Wildcard expressions or all indices are not allowed"
}
],
"type": "illegal_argument_exception",
"reason": "Wildcard expressions or all indices are not allowed"
},
"status": 400
}