ElasticSearch与LDAP的安装和安全认证

本文介绍了如何在Docker环境下安装Elasticsearch、Kibana、openLDAP和phpldapadmin,并详细阐述了Elasticsearch与LDAP的集成配置过程,包括编辑elasticsearch.yml,用户授权,以及Kibana使用LDAP账号进行安全认证的步骤。
摘要由CSDN通过智能技术生成

文章目录

    • 一、使用Docker安装ES和Kibana
      • 1.创建网络
      • 2.安装ES
      • 3.安装Kibana
      • 4.汉化Kibana
    • 二、使用Docker安装openLDAP和phpldapadmin
      • 1.安装openLDAP
      • 2.安装phpldapadmin
      • 3.验证是否安装成功
    • 三、关于ES XPack
    • 四、ES与LDAP的认证
      • 1.编辑elasticsearch.yml
      • 2.给用户授权
    • 五、Kibana使用LDAP账号

一、使用Docker安装ES和Kibana

my-company根据自己情况修改

1.创建网络

docker network create my-company

2.安装ES

docker run -d --name es --net my-company -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.0

3.安装Kibana

docker run -d --name kibana --net my-company -p 5601:5601 kibana:7.6.0

4.汉化Kibana

docker exec -it kibana bash

修改/usr/share/kibana/config/kibana.yml
elasticsearch.hosts: [ “http://localhost:9200” ]
i18n.locale: “zh-CN”

二、使用Docker安装openLDAP和phpldapadmin

1.安装openLDAP

password改成自己想要的密码

docker run -p 389:389 -p 636:636 \
--volume /data/slapd/database:/var/lib/ldap \
--volume /data/slapd/config:/etc/ldap/slapd.d \
--env LDAP_DOMAIN=my-company.com \
--env LDAP_ADMIN_PASSWORD=password \
--name my-openldap --detach osixia/openldap:1.4.0

2.安装phpldapadmin

docker run -p 443:443 --env PHPLDAPADMIN_LDAP_HOSTS=ip --name phpldapadmin -d osixia/phpldapadmin:0.9.0

访问http://ip:443就可以登陆,账号是 cn=admin,dc=my-company,dc=com 密码是前面openLDAP里面的password,通过可视化界面,我们可以创建组(ou)和人

3.验证是否安装成功

docker exec my-openldap ldapsearch -x -H ldap://ip -b dc=my-company,dc=com -D "cn=admin,dc=my-company,dc=com" -w my-company

三、关于ES XPack

LDAP认证是收费功能,我用的是docker方式安装,所以这步稍微麻烦点,需要使用docker cp等命令,因为写了不能通过,所以请参考下面链接
参考文档
简单的说就是:
1.将容器中的jar包复制到本地
2.反编译工具打开将其中两个文件修改完
3.传回容器中,用容器中的jdk编译
4.复制一份原来的jar解压并替换两个class文件,然后压缩成jar包后替换原来的jar包

四、ES与LDAP的认证

这里主要参考官网

1.编辑elasticsearch.yml

docker exec -it es bash
cd config
cp elasticsearch.yml elasticsearch.ymlbak
vi elasticsearch.yml

添加如下:自行修改ip

xpack:
  security:
    authc:
      realms:
        ldap:
          ldap1:
            order: 0
            url: "ldap://ip:389"
            bind_dn: "cn=admin, dc=my-company, dc=com"
            user_search:
              base_dn: "dc=my-company,dc=com"
              filter: "(cn={0})"
            group_search:
              base_dn: "dc=my-company,dc=com"
            files:
              role_mapping: "/usr/share/elasticsearch/config/role_mapping.yml"
            unmapped_groups_as_roles: false

2.给用户授权

不给用户授权就无法登入ES,关于LDAP的设置可以

docker exec -it es bash
#在容器中使用,添加elastic账号的密码
bin/elasticsearch-keystore add \
xpack.security.authc.realms.ldap.ldap1.secure_bind_password

curl -X PUT -u elastic:密码 "localhost:9200/_security/role_mapping/admins?pretty" -H 'Content-Type: application/json' -d'
{
  "roles" : [ "monitoring" , "user" ],
  "rules" : { "field" : {
    "dn" : "cn=test,ou=testgroup,dc=my-company,dc=com" 
  } },
  "enabled": true
}
'

其他API命令可以查看官网

五、Kibana使用LDAP账号

docker exec -it kibana bash
cd config
vi kibana.yml
#添加
elasticsearch.username: "elastic"
elasticsearch.password: "密码"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值