ldap-安装及配置2

一、SRC

4个节点,node101-104,n1为server
根域为xyyh.com,管理员为admin

二、process

server端

1.yum下载安装

yum install -y openldap openldap-clients openldap-servers migrationtools openldap-devel nss-pam-ldapd bind-dyndb-ldap compat-openldap perl-LDAP krb5-server-ldap php-ldap openssl

server某些情况下也是client。所有client也需要安装sssd

yum -y install openldap-clients sssd authconfig nss-pam-ldapd

2.配置管理密码

这是一个命令,是linux的命令,并不依赖ldap的安装,{SSHA}不是变量,输入后会提示输入密码。输入完密码把弹出的加密后的语句复制,下一步要用

$  slappasswd -h {SSHA}  
输入密码:
{SSHA}CVoDZ5XmyTzOg8QgYhazG1CfPYKA0IEb

3.修改配置文件hdb.ldif,这个配置文件用来配置整个ldap管理的所有条目的根DN

修改红色字体内容
vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 faf5319f
dn: olcDatabase={2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=xyyh,dc=com
olcRootDN: cn=这里填写管理员的账号、一般用admin、默认Admin,dc=xyyh,dc=com
olcRootPW: {SSHA}CVoDZ5XmyTzOg8QgYhazG1CfPYKA0IEb  #这里是复制上一步生成的语句
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: e974deb8-539a-103a-886d-1b8320604d59
creatorsName: cn=config
createTimestamp: 20200706060853Z
entryCSN: 20200706060853.103754Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20200706060853Z

4.vim /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 86444239
dn: olcDatabase={1}monitor
objectClass: olcDatabaseConfig
olcDatabase: {1}monitor
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
 al,cn=auth" read by dn.base="cn=admin,dc=xyyh,dc=com" read by * none
structuralObjectClass: olcDatabaseConfig
entryUUID: e974db66-539a-103a-886c-1b8320604d59
creatorsName: cn=config
createTimestamp: 20200706060853Z
entryCSN: 20200706060853.103670Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20200706060853Z

5. slaptest -u,测试配文是否正确

虽然有error,但这样算是测试成功。
在这里插入图片描述

6.开启LDAP服务

systemctl enable slapd;systemctl start slapd;systemctl status slapd;netstat -antup | grep 389
在这里插入图片描述

7.OpenLDAP默认使用的数据库是BerkeleyDB,现在来开始配置OpenLDAP数据库,使用如下命令:

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap -R /var/lib/ldap
chmod 700 -R /var/lib/ldap
ll /var/lib/ldap/
/var/lib/ldap/就是BerkeleyDB数据库默认存储的路径。

在这里插入图片描述

8.导入基本的schema

#ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=nis,cn=schema,cn=config"
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"

在这里插入图片描述
注意:如果这一步导入失败,一般都是密码输入错误,密码要输上面配置的加密前的密码

9.修改配置文件migrate_common.ph ,migrate是个脚本命令,用来将linux用户导入到ldap,这个配文是用来配置这个命令的

vim /usr/share/migrationtools/migrate_common.ph

70行
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "xyyh.com";
# Default base 
$DEFAULT_BASE = "dc=xyyh,dc=com";

在这里插入图片描述

10.添加用户组和用户名

默认情况下OpenLDAP是没有普通用户的,但是有一个管理员用户。管理用户就是前面我们刚刚配置的admin。进行一些系统操作时需要用到admin。
添加用户和组可以使用图形化界面,也可以使用ldif文件。

{1}linux系统用户比较多,手动做比较麻烦,可以自动导入

思路:把linux关于用户的2个文件/etc/passwd、/etc/groups里的相关文本信息抽取到user和groups2个文件中,然后再用migrate命令转成ldif文件,然后用ldapadd添加到ldap。

把linux系统中的用户同步到OpenLDAP中。我们现在新加两个linux用户ldapuser1和ldapuser2,和两个用户组ldapgroup1和ldapgroup2,如下:

添加用户组,使用如下命令:
groupadd ldapgroup1;groupadd ldapgroup2
添加用户并设置密码,使用如下命令:
useradd -g ldapgroup1 ldapuser1;useradd -g ldapgroup2 ldapuser2
echo 'dcdcdc' | passwd --stdin ldapuser1;echo 'dcdcdc' | passwd --stdin ldapuser2
一般1000以后的用户都是手动添加的,但cdh自动创建的用户比如hive、hdfs的uid都是小于1000的
grep ":10[0-9][0-9]" /etc/passwd > /root/users;grep ":10[0-9][0-9]" /etc/group > /root/groups
grep -E "hdfs|hive|hue|impala|ldap|sentry|spark" /etc/passwd >> /root/users;
grep -E "hdfs|hive|hue|impala|ldap|sentry|spark" /etc/group >> /root/groups;

把刚刚添加的用户和用户组提取出来,这包括该用户的密码和其他相关属性,如下
grep -E " hdfs|hive|hue|impala|ldap|sentry|spark|:10[0-9][0-9]" /etc/passwd > /root/users;
grep -E "hdfs|hive|hue|impala|ldap|sentry|spark|:10[0-9][0-9]" /etc/group > /root/groups;

根据上述生成的用户和用户组属性,使用migrate_passwd.pl文件生成要添加用户和用户组的ldif,如下:

/usr/share/migrationtools/migrate_passwd.pl /root/users > /root/users.ldif
/usr/share/migrationtools/migrate_group.pl /root/groups > /root/groups.ldif
cat users.ldif
cat groups.ldif

如下图:会自动生成ldif文件,会把所有的用户和用户组的属性都导入到ldif文件中

注意:后续如果要新加用户到OpenLDAP中的话,不用再走前面的流程,直接修改users.ldif文件即可。注意dn之间一定要用空行隔开

{2}base.ldif

也可以直接用vim创建个文件添加,注意o的值没有点,organizationalRole中的organizational不是organization
cat > /root/base.ldif << EOF
这个命令输入后会出现输入提示符,意思是把输入的内容追加到base.ldif中,最后输入EOF表示结束。注意开头要有个空行,因为ldif文件的dn都要以空行分割。


dn: dc=xyyh,dc=com
o: xyyh com
dc: xyyh
objectClass: top
objectClass: dcObject
objectClass: organization

dn: cn=admin,dc=xyyh,dc=com
cn: admin
objectClass: organizationalRole
description: Directory admin

dn: ou=People,dc=xyyh,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=xyyh,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
EOF

如果缺少属性或者key不对,会报错
在这里插入图片描述

{3}把base.ldif、users.ldif、groups.ldif添加到ldap

ldapadd -x -w “dcdcdc” -D “cn=admin,dc=xyyh,dc=com” -f /root/base.ldif
ldapadd -x -w “dcdcdc” -D “cn=admin,dc=xyyh,dc=com” -f /root/users.ldif
ldapadd -x -w “dcdcdc” -D “cn=admin,dc=xyyh,dc=com” -f /root/groups.ldif

{4}把LDAP中用户和用户组关联:

这一步也可以在UI中做,也可以使用ldif文件。

尽管我们已经把用户和用户组信息,导入到OpenLDAP数据库中了。但实际上目前OpenLDAP用户和用户组之间是没有任何关联的。
如果我们要把OpenLDAP数据库中的用户和用户组关联起来的话,我们还需要做另外单独的配置。
现在我们要把ldapuser1用户加入到ldapgroup1用户组,需要新建添加用户到用户组的ldif文件,如下:

cat > add_user_to_groups.ldif << "EOF"
dn: cn=ldapgroup1,ou=Group,dc=xyyh,dc=com
changetype: modify
add: memberuid
memberuid: ldapuser1
EOF
执行如下命令:
#ldapadd -x -w "dcdcdc" -D "cn=admin,dc=xyyh,dc=com" -f /root/add_user_to_groups.ldif
#ldapsearch -LLL -x -D 'cn=admin,dc=xyyh,dc=com' -w "dcdcdc" -b 'dc=xyyh,dc=com' 'cn=ldapgroup1'

client端

yum -y install openldap-clients sssd authconfig nss-pam-ldapd

vim /etc/openldap/ldap.conf

URI ldap://node101
BASE dc=xyyh,dc=com

在这里插入图片描述
所有客户端开启sssd服务,设置开机自启,然后自动配置/etc/sssd/sssd.conf,这个配文默认是没有的,可以自己创建或者使用authconfig命令自动创建,注意不是auto。如果是手动创建,一定要注意权限chmod 600 /etc/sssd/sssd.conf

systemctl start sssd;systemctl enable sssd;
authconfig --enablesssd --enablesssdauth --enablerfc2307bis --enableldap --enableldapauth --disableforcelegacy --disableldaptls --disablekrb5 --ldapserver ldap://node101 --ldapbasedn 'dc=xyyh,dc=com' --enablemkhomedir --update

此时在linux中就可以使用id xxx,su - xxx来使用ldap中创建linux中没创建的用户了。
但此时还不能使用ssh xxx@ip登陆,也不能在linux中使用passwd来修改密码
在这里插入图片描述

验证ldap

ldapsearch -D “cn=admin,dc=xyyh,dc=com” -W |grep dn
Enter LDAP Password: dcdcdc
在这里插入图片描述

11. 修改sizelimit

{1} 修改server端的sizelimit

cd /etc/openldap/slapd.d
vim cn\=config.ldif
在最后一行下面添加一行,数值为数量
olcSizeLimit: 100000

重启

systemctl  restart slapd;systemctl status slapd;systemctl enable spalpd

在这里插入图片描述

{2} 修改client的sizelimit

vim /etc/openldap/ldap.conf

在这里插入图片描述

三、日志

创建日志配置文件
vim /etc/log.ldif
添加如下内容
dn: cn=config
changetype: modify
add: olcLogLevel
olcLogLevel: 32     
配置使之生效:                                  
ldapmodify -Y EXTERNAL -H ldapi:/// -f log.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

[root@VM_0_15_centos myself]# mkdir -p /var/log/slapd
[root@VM_0_15_centos myself]# chown ldap:ldap /var/log/slapd/
[root@VM_0_15_centos myself]# echo "local4.* /var/log/slapd/slapd.log" >> /etc/rsyslog.conf
[root@VM_0_15_centos myself]# systemctl restart rsyslog
[root@VM_0_15_centos myself]# systemctl restart slapd
[root@VM_0_15_centos myself]# tail -n 4 /var/log/slapd/slapd.log
Sep  5 20:43:31 VM_0_15_centos slapd[4520]: => test_filter
Sep  5 20:43:31 VM_0_15_centos slapd[4520]:    PRESENT
Sep  5 20:43:31 VM_0_15_centos slapd[4520]: <= test_filter 6
Sep  5 20:43:31 VM_0_15_centos slapd[4523]: slapd starting

四、phpldapadmin

操作

五、ldapadmin

六、CDH集成ldap

七、hue和ldap

先使用backend模式将hive用户进行ldap同步,然后切到ldap模式,用hive登陆当做管理员

hue添加用户只能添加linux和ldap同时存在的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值