• ElasticSearch7.10配置Search-Guard


    ElasticSearch7.10配置Search-Guard

    1.下载elasticsearch7.10

    2. 修改系统属性

    $ vim  /etc/security/limits.conf
    
    * soft nofile 655360
    * hard nofile 655360
    * soft nproc 65536
    * hard nproc 65536
    
    $ vim /etc/sysctl.conf
    
    vm.max_map_count=262144
    
    

    3. 增加es组和es用户

    3.1 创建

    $ groupadd es
    $ useradd es -g es
    $ passwd  es
    
    

    3.2 修改es的属组

    $ chown -R es:es /home/software/es_ssl/
    
    

    4. 服务安全配置

    选择一个你想去生成如下证书的类型:

    • 1.每个节点的证书
    • 2.一个admin证书

    在每个节点上使用相同的证书它是可以的。但是不安全的,你不能使用主机名验证和搜索守卫的DNS查询功能去检查TLS证书的有效性。

    4.1 网址

    插件:

    https://docs.search-guard.com/latest/search-guard-versions

    选择 example PKI script 脚本生成器:

    https://docs.search-guard.com/latest/search-guard-installation

    4.2 配置 example

    4.2.1 前提条件

    • 1.openssl version

    确保版本1.0.1k 或者更高

    • 2.keytool

    输入在服务器上,会出现一个list的命令。如果没有,确保JDK已安装且环境配置OK。

    4.2.2 生成证书

    https://git.floragunn.com/search-guard/legacy/search-guard-ssl/-/tree/master

    这个是ssl 的代码仓库

    4.3 第一次安装:所有的集群重启

    第一次安装搜索守卫在集群上总是需要全部重启。TLS加密在Elastsearch的传输层是强制性的。并且所有的节点都已经安装守卫能够互相通话。如果搜索守卫已经安装,现在想去更新,使用如下链接:

    https://docs.search-guard.com/latest/upgrading

    4.3.1 通常

    • 1.禁用分片分配

    • 2.停止所有节点

    • 3.在所有节点安装搜索守卫插件

    • 4.在elasticsearch.yml中配置TLS

    • 5.重启elasticsearch且检查节点状态

    • 6.重新启动分片分配功能通过使用sgadmin
      https://docs.search-guard.com/latest/sgadmin

    • 7.配置认证/授权,用户、角色和权限,通过使用搜索守卫的sgadmin

    4.4 安装Search Guard

    4.4.1可以使用Elasticsearch的bin/elasticsearch-plugin安装命令

    $ bin/elasticsearch-plugin install -b file:///path/to/search-guard-7-<version>.zip
    

    可能会出现额外的权限窗口,在安装过程中,确定“y“

    4.4.2可以下载匹配Elasticsearch版本的Search Guard

    https://docs.search-guard.com/latest/search-guard-versions

    4.5 增加TLS配置

    对于各类证书的路径都要指定Elasticsearch的config目录。

    4.5.1 传输配置

    searchguard.ssl.transport.pemcert_filepath: <path_to_node_certificate>
    searchguard.ssl.transport.pemkey_filepath: <path_to_node_certificate_key>
    searchguard.ssl.transport.pemkey_password: <key_password (optional)>
    searchguard.ssl.transport.pemtrustedcas_filepath: <path_to_root_ca>
    searchguard.ssl.transport.enforce_hostname_verification: <true | false>
    searchguard.authcz.admin_dn:
      - CN=kirk,OU=client,O=client,L=test, C=de
    

    这个“searchguard.authcz.admin_dn“配置admin证书,你可以使用”sgadmin“或者REST 管理API。你需要去声明证书的完整DN,并且可以配置多个管理证书。

    4.5.2 TLS—HTTPS

    searchguard.ssl.http.enabled: true
    searchguard.ssl.http.pemcert_filepath: <path_to_http_certificate>
    searchguard.ssl.http.pemkey_filepath: <path_to_http_certificate_key>
    searchguard.ssl.http.pemkey_password: <key_password (optional)>
    searchguard.ssl.http.pemtrustedcas_filepath: <path_to_http_root_ca>
    

    4.5.3 REST管理API

    在elasticsearch.yml中加入

    searchguard.restapi.roles_enabled: ["SGS_ALL_ACCESS"]
    

    4.6 重新启用分片分配功能

    在集群重新启动之后
    Example using sgadmin

    ./sgadmin.sh --enable-shard-allocation
     -cert ./kirk.pem -key ./kirk-key.pem -cacert ./root-ca.pem 
    

    4.7 初始化Search Guard

    https://docs.search-guard.com/latest/sgadmin

    4.7.1 集群6.x 到 集群7.x

    在Search Guard插件tools目录中,当你在集群6.x中执行完“configuration backup“,可以使用sgadmin离线迁移存在的文件。
    https://docs.search-guard.com/latest/sgadmin-configuration-changes
    当你已经迁移后,你可以更新它们对于集群7.x

    ./sgadmin.sh 
        --migrate-offline /path/to/configdirectory/  
        -cacert /path/to/root-ca.pem 
        -cert /path/to/admin-certificate.pem 
        -key /path/to/admin-certificate-key.pem  
    

    Example:

    ./sgadmin.sh 
        -mo ../sgconfig/  
        -cacert ../../../root-ca.pem 
        -cert ../../../kirk.pem 
        -key ../../../kirk.key.pem    
    

    4.7.2 配置认证和授权

    Search Guard带有可插拔的身份验证和授权模块。根据你的用例和基础设施,你可以使用一个或多个身份验证和授权模块,如:

    • 1.Search Guard 内置用户
    • 2.LDAP 和 Active目录
    • 3.Kerberos
    • 4.JSON Web Token
    • 5.Proxy Authentication

    5.Search Guard Health Check

    接着上面讲,Search Guard安装最后呢,需要查看一下健康状态。
    如果Search Guard已经安装,并且跑了起来,可以通过如下命令,查看健康状态。

    https://<hostname>:9200/_searchguard/health
    

    它的返回是一个JSON串。

    {
      message: null,
      mode: "strict",
      status: "UP"
    }
    
    弯弯月亮,只为美好的自己。
  • 相关阅读:
    学号20145220《信息安全系统设计基础》第10周学习总结
    补发周四的博客。对之前的知识复习了一遍,因为要闭卷考试。
    jsp中文乱码
    redis做成windows服务
    poi导出excel打开文件时部分内容有问题
    mysql删除数据表时:Cannot delete or update a parent row: a foreign key constraint fails
    Oracle使用foreach批量操作数据
    Oracle数据库clob类型转String类型
    MAVEN配置多个仓库
    idea中maven项目明明有jar包还是爆红
  • 原文地址:https://www.cnblogs.com/Choleen/p/14940561.html
Copyright © 2020-2023  润新知