OpenLDAP安装、Elasticsearch&Impala添加安全认证

Elasticsearch

此文档以192.168.100.xx1-xx5服务器为例进行说明

注意文件的所属用户,有些操作需要切换elsearch用户操作

编辑elasticsearch.yml

添加内容如下(每个节点都要配置):

http.cors.enabled: true
http.cors.allow-origin: "*"

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
生成证书

单独使用一个节点生成证书即可

# cd到elasticsearch目录下的bin目录执行
# 证书会生成在config目录下,证书文件名为elastic-certificates.p12
./elasticsearch-certutil cert -out ../config/elastic-certificates.p12 -pass ""

把elastic-certificates.p12这个文件复制到其他节点,即elasticsearch目录下的config目录里

# 修改文件所属用户、所属组,所有节点都需修改
chown -R elsearch:elsearch ../config/elastic-certificates.p12
开启试用

x-pack是需要收费的,有30天试用期,具体破解及详情待更新

任意节点请求即可

curl -H "Content-Type:application/json" -XPOST http://192.168.100.xx1:9200/_xpack/license/start_trial?acknowledge=true
重启ES集群

可通过jps查看进程号,直接kill -9 进程号

./elasticsearch -d后台启动

可通过日志查看具体启动信息,方便排查问题

设置密码

任意节点设置即可

# 手动设置密码 interactive
# 自动设置密码 auto
./elasticsearch-setup-passwords auto

对elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user分别设置密码,为了方便测试中使用自动生成

输出如下:

Changed password for user apm_system
PASSWORD apm_system = xxxxx

Changed password for user kibana
PASSWORD kibana = xxxxx

Changed password for user logstash_system
PASSWORD logstash_system = xxxxx

Changed password for user beats_system
PASSWORD beats_system = xxxxx

Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = xxxxx

Changed password for user elastic
PASSWORD elastic = xxxxx
修改密码

任意一个节点都可修改

curl -H "Content-Type:application/json" -XPOST -u elastic http://192.168.100.xx5:9200/_xpack/security/user/elastic/_password -d '{"password":"xxxxx"}'
配置kibana

因只在192.168.100.xx1部署了kibana,只修改此节点即可

编辑kibana.yml
# 添加如下内容,文件在kibana的config目录内
elasticsearch.username: "elastic"
elasticsearch.password: "xxxxx"
重启kibana
# 查找进程,可以通过5601端口号查找
netstat -tunlp | grep 5601
kill -9 进程号
# cd到kibana的bin目录,启动
./kibana &

OpenLDAP

Impala的安全认证需要借助OpenLDAP来实现

此文档以192.168.100.xx5作为OpenLDAP的服务端

安装包下载

离线rpm安装包下载地址:https://rpmfind.net/

# 下载如下rpm包
openldap-2.4.44-22.el7.x86_64.rpm
openldap-servers-2.4.44-22.el7.x86_64.rpm
openldap-clients-2.4.44-22.el7.x86_64.rpm
migrationtools-47-15.el7.noarch.rpm
安装
# 创建安装包存放目录并将安装包上传至此目录
mkdir /opt/xxxx/openldap
# 解压安装
# -i(install安装软件包) 
# -v(view可视化)
# -h(hour方便自己记忆,显示安装进度)
rpm -ivh /opt/xxxx/openldap/*.rpm --nodeps --force
# 查看版本
slapd -V
配置slapd.ldif

注:从OpenLDAP2.4.23版本开始所有配置数据都保存在/etc/openldap/slapd.d/中,建议不再使用slapd.conf作为配置文件

# 配置OpenLDAP管理员密码
slappasswd -s xxxxx
# 加密后的密码,在slapd.ldif配置文件中会用到
# {SSHA}OtDs/63UNLv+RvggyPd4
# 复制配置文件
cp /usr/share/openldap-servers/slapd.ldif /etc/openldap/
# 编辑复制的slapd.ldif文件
# 在Schema settings下添加如下内容
include: file:///etc/openldap/schema/corba.ldif
include: file:///etc/openldap/schema/cosine.ldif
include: file:///etc/openldap/schema/duaconf.ldif
include: file:///etc/openldap/schema/dyngroup.ldif
include: file:///etc/openldap/schema/inetorgperson.ldif
include: file:///etc/openldap/schema/java.ldif
include: file:///etc/openldap/schema/misc.ldif
include: file:///etc/openldap/schema/nis.ldif
include: file:///etc/openldap/schema/openldap.ldif
include: file:///etc/openldap/schema/ppolicy.ldif
include: file:///etc/openldap/schema/pmi.ldif
include: file:///etc/openldap/schema/collective.ldif
# 在Server status monitoring修改如下内容
olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,c
 n=auth" read by dn.base="cn=Manager,dc=hxht,dc=com" read by * none
# 在Backend database definitions修改如下内容
olcSuffix: dc=hxht,dc=com
olcRootDN: cn=Manager,dc=hxht,dc=com
# 在Backend database definitions添加如下内容
olcRootPW: {SSHA}OjOtDs/635xb286UNLv+RvgPlkgyfPd4
重新生成配置
# 删除原有的配置文件
rm -rf /etc/openldap/slapd.d/*
# 生成
slapadd -n 0 -F /etc/openldap/slapd.d -l /etc/openldap/slapd.ldif
# 修改文件属主
chown -R ldap:ldap /etc/openldap/slapd.d
chown -R ldap:ldap /var/lib/ldap
chown -R ldap:ldap /var/run/openldap
启动服务

启动失败注意查看文件的属主

# 启动
systemctl start slapd
# 查看状态
systemctl status slapd
# 停止
systemctl stop slapd
# 开机自启动
systemctl enable slapd
migrationtools生成ldif文件

注:导入过程中注意每一步是否成功导入,否则会出现后续导入失败问题!

cd到/usr/share/migrationtools修改migrate_common.ph文件,修改如下

# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "hxht.com";

# Default base 
$DEFAULT_BASE = "dc=hxht,dc=com";

创建root.ldif文件,输入如下内容

dn: dc=hxht,dc=com
dc: hxht
objectClass: top
objectClass: domain

dn: cn=Manager,dc=hxht,dc=com
objectClass: organizationalRole
cn: Manager

为安全期间,创建新的组与用户

groupadd -g 1100 ldap_cdh
useradd -g ldap_cdh cdh_impala -m
passwd cdh_impala
# 设置的密码:xxxxx

导出base.ldif文件

./migrate_base.pl > base.ldif
# base.ldif只留下如下内容,其余删除,People用来保存用户,Group用来保存组
dn: ou=People,dc=hxht,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=hxht,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit

导出group.ldif文件

./migrate_group.pl /etc/group > group.ldif
# group.ldif只留下如下内容,其余删除
dn: cn=ldap_cdh,ou=Group,dc=hxht,dc=com
objectClass: posixGroup
objectClass: top
cn: ldap_cdh
userPassword: {crypt}x
gidNumber: 1100

导出user.ldif

./migrate_passwd.pl /etc/passwd > user.ldif
# user.ldif只留下如下内容,其余删除
dn: uid=cdh_impala,ou=People,dc=hxht,dc=com
uid: cdh_impala
cn: cdh_impala
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$6$t/IMu8$igdgkW.uN1tSV..jTEIBNrwpfnP.GT0sHyQYt/nvmKAlOy/Ab2fA/
shadowLastChange: 19521
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1002
gidNumber: 1100
homeDirectory: /home/cdh_impala
将ldif文件导入LDAP
# -x 使用简单验证来替代SASL
# -W 开启简单认证,可以在命令行中避免输入密码
# -D 使用指定的dn来绑定LDAP目录
# -f 从指定文件中读取需要修改的条目信息
ldapadd -x -W -D "cn=Manager,dc=hxht,dc=com" -f ./root.ldif
ldapadd -x -W -D "cn=Manager,dc=hxht,dc=com" -f ./base.ldif
ldapadd -x -W -D "cn=Manager,dc=hxht,dc=com" -f ./group.ldif
ldapadd -x -W -D "cn=Manager,dc=hxht,dc=com" -f ./user.ldif

查看导入结果

# -x 使用简单验证来替代SASL
ldapsearch -x -b "dc=hxht,dc=com" -H ldap://192.168.100.xx5
脚本说明

将脚本上传至服务器,修改脚本具有执行权限

chmod +x ./OpenLDAP-install.sh

如出现“/bin/bash^M: bad interpreter”,可能与在windows下编辑过脚本有关,解决如下

# vim编辑文件,输出fileformat=dos,说明是此问题
:set ff?
# 修改,回车保存,退出
:set ff=unix
输入说明
# 输入安装包路径
input installation package path:
# 设置OpenLDAP管理员密码
input OpenLDAP admin password:
# 设置impala用户cdh_impala密码
input cdh_impala user password:

IMPALA配置

在CDH内点击Impala的配置选项,搜索LDAP

1、勾选”启用LDAP身份验证“

2、LDAP URL设置为“ldap://192.168.100.xx5:389/“

3、LDAP BaseDN设置为”ou=People,dc=hxht,dc=com“

4、Impala 命令行参数高级配置代码段(安全阀)设置为”–ldap_passwords_in_clear_ok=true“

保存修改,重启集群即可生效
请添加图片描述
通过impala-shell登录测试

impala-shell -l -u cdh_impala --auth_creds_ok_in_clear --ldap_password_cmd="echo -n xxxxx"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值