SearchGuard控制ElasticSearch集群访问权限——ElasticSearch-6.5.4

本文详细介绍了如何在ElasticSearch 6.5.4集群上部署Search Guard,实现权限控制。从背景、软件介绍、集群搭建到Search Guard插件配置和安全管理,每个步骤都有清晰的操作指南,确保ElasticSearch在公网环境下的安全运行。
摘要由CSDN通过智能技术生成

目录

1. 背景

2. 软件介绍

2.1 ElasticSearch

2.2 Search Guard

3. 架构规划

4. 软件下载地址

5. 搭建ElasticSearch集群

5.1 上传软件包并解压缩

5.2 同步时间

 5.3 开放ElasticSearch端口

5.4 修改系统参数

5.5 创建ElasticSearch用户

 5.6 修改ElasticSearch参数

5.6.1  node-1节点

5.6.2 node-2节点

5.6.3 node-3节点

5.7 启动ElasticSearch

5.8 验证集群是否搭建成功

6. 配置ElasticSearch 的search-guard插件

6.1 上传插件包

6.2 安装Search Guard

6.3 在线生成Search Guard证书

6.4 创建证书目录

6.5 上传证书文件

6.6 将Search Guard语言配置在ElasticSearch中

6.7 设置权限因子

6.8 验证

7. Search Guard的相关配置

7.1 修改管理用密码

7.1.1 使用工具生产加密密码

7.1.2 修改配置文件

7.1.3 设置生效


众所周知,ElasticSearch设计之初就定位在纯私网环境而不做权限和安全控制呢。ElasticSearch如果设置不当,则存在较为严重的安全风险!有两种访问ElasticSearch的方式:使用默认端口为9300的TCP模式和使用默认端口为9200的HTTP模式。然而在同ElasticSearch服务器进行通信的过程中,通信流量是明文形式的,没有加密;更为严重的是,如果不做任何防护措施地将ElasticSearch暴露在公网上,那么对它的访问将没有任何安全认证,任何连接到服务器端口上的人,都可以调用相关API对服务器上的数据进行任意的增删改查。

安全策略网络层除却“内鬼”的因素,攻击基本都是通过外部网络,所以这里是保障ElasticSearch安全的第一道屏障。相信大家都有自己的网络安全策略,硬件防火墙也好,软件防火墙也罢,按照自己的需求做好设置和维护即可。

 所以要避免黑客入侵的最有力的手段,也是最后一层屏障,那就是用户及权限认证。ElasticSearch本身没有用户及权限认证体系,虽然官方提供了自己的权限管理系统—— Shield, 但是它——收费!本篇文章就是介绍如何使用Search Guard对ElasticSearch集权做权限认证。


1. 背景

ElasticSearch集群在暴露了一个节点的IP和端口就可以对整个集群进行各种操作,删索引、改数据等。在重要的项目应用中,需要防范这一点。

目前常见的安全防范方式有:

  • X-Pack ElasticSearch Security,收费License
  • Search Guard,免费开源

下面就Search Guard,将其最小化安装到ES集群。

2. 软件介绍

 

2.1 ElasticSearch

 

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

ElasticSearch使用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。

2.2 Search Guard

Search Guard是ElasticSearch的安全插件,它支持ES客户端认证、后端系统授权,并增加审计日志,提供文档/字段级别的安全保障。

Search Guard中,所有的基础安全特性都是免费的,但如果想在商业项目中使用一些企业级安全特性,需要付费得到Search Guard的官方授权。

  • 基础特性:
    • 节点-节点间的加密(SSL/TSL)
    • 安全的REST访问(HTTPS)
    • 灵活的REST访问控制(User/Role; aliases&indices&types)
    • HTTP基础认证
    • HTTP代理认证
    • HTTP SSL/CLIENT-CERT认证
    • XFF支持
    • 内部认证/授权
    • 匿名登录/未经验证的访问  
    • 用户模仿
  • 企业级特性:
    • HTTP SPNEGO/Kerberos认证
    • LDAP/Active Directory身份验证/授权
    • Document安全(DLS):只检索匹配安全标准的文件
    • Field安全:从索引响应中过滤掉Field
    • JSON网络令牌支持
    • 审计日志

3. 架构规划

  1. 操作系统:CentOS 6.8
  2. ElasticSearch 6.5.4
  3. Search Guard 25.1
  4. 主机地址:*.*.*.1(node-1)、*.*.*.2(node-2)、*.*.*.3(node-3)

4. 软件下载地址

  1. Elasticsearch:https://www.elastic.co/downloads
  2. Search Guard:https://github.com/floragunncom/search-guard/tree/es-6.5.4

5. 搭建ElasticSearch集群

5.1 上传软件包并解压缩

使用FTP工具上传elasticsearch-6.5.4.zip至~目录。使用以下命令解压缩:

[node-1@localhost ~]$ tar -zxvf elasticsearch-6.5.4.zip

5.2 同步时间

三个节点都需要执行:

[node-1@localhost ~]$ ntpdate time.windows.com

 5.3 开放ElasticSearch端口

三个节点都需要执行:

  1. (1)检查防火墙是否打开:

firewall-cmd –state

如果防火墙是关闭的,跳过该步骤。

(2)开放Elasticsearch必要的端口:

开放9200端口:

firewall-cmd --zone=public --permanent --add-port=9200/tcp

开放9300端口

firewall-cmd --zone=public --permanent --add-port=9300/tcp

(3)重启防火墙:

firewall-cmd –reload

5.4 修改系统参数

(1)修改/etc/sysctl.conf文件:

vim /etc/sysctl.conf编辑文件,加入以下内容:

#  开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用

net.ipv4.tcp_timestamps = 1

#  表示开启TCP连接中TIME-WAIT sockets的快速回收

net.ipv4.tcp_tw_recycle = 1

#  表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭

net.ipv4.tcp_syncookies = 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值