ldap-安装1

tips

1. setup可以进入UI编辑文件

2. 须知:

  • 为了HA,使用主从模式,起码要2台。1台差不过能给1000个节点提供目录服务。
  • 对硬件要求很低
  • ldap所有配文:末尾一定不能有空格,冒号后面一定要有空格。每行前后一定不能有空格

一、下载

wwww.openldap.org/doc/admin24/install.html
ldap官方文档只有编译安装。

openldap是主从模式,先确定一个主节点,安装server服务。server下面2个都要安装,client只需要安装第2个

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

1. 出现这个错可以忽略

在这里插入图片描述

2. 完成画面

在这里插入图片描述

3. 检验

slapd -VV 查看ldap版本
在这里插入图片描述
rpm -qa |grep openldap
在这里插入图片描述

二、配置

note:ldap所有配文的空格不能乱,末尾一定不能有空格,冒号后面一定要有空格

1. 主配文

cp  /usr/share/openldap-servers/slapd.ldif  /etc/openldap
vim /etc/openldap/slapd.ldif

{1} 这3行注释

在这里插入图片描述

{2} schema setting

在这里插入图片描述

include: file:///etc/openldap/schema/corba.ldif
include: file:///etc/openldap/schema/core.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/collective.ldif

注意,是ppolicy,2个p。冒号后面有空格,每行的前后都不能有空格

{3} Server status monitoring

cn代表ldap超级管理员用户名,dc代表域
在这里插入图片描述

dn: olcDatabase=monitor,cn=config
objectClass: olcDatabaseConfig
olcDatabase: monitor
olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,c
 n=auth" read by dn.base="cn=ldapadmin,dc=example,dc=com" read by * none

L

{4} Backend database definitions

ldap数据库的设置,需要指定管理员的账号密码

添加3个olcDbIndex,修改如下。注意:有几个是空格,不是下划线,是eq不是eg。这里的olcRootPW是超级管理员密码,默认没有,要手动添加olcRootPW。
注意是eq,不是eg
在这里插入图片描述

dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: hdb
olcSuffix: dc=example,dc=com
olcRootDN: cn=ldapadmin,dc=example,dc=com
olcRootPW: 123456
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
olcDbIndex: uidNumber,gidNumber,loginShell eq,pres
olcDbIndex: uid,memberUid eq,pres,sub
olcDbIndex: nisMapName,nisMapEntry eq,pres,sub

2. migrate

vim /usr/share/migrationtools/migrate_common.ph,修改如下,共3处:
在这里插入图片描述

3. 配置client

vim /etc/openldap/ldap.conf

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE   dc=example,dc=com
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never

TLS_CACERTDIR /etc/openldap/cacerts

# Turning this off breaks GSSAPI used with krb5 when rdns = false
SASL_NOCANON    on
URI ldap://192.168.233.105
BASE dc=example,dc=com

4. 分发client配置,在所有client节点执行authconfig

将server节点的client的配置分发的所有client
然后配置sssd,authconfig会自动配置/etc/sssd/sssd.conf配文

hosts=`cat /etc/hosts | grep idss | grep '#' -v | awk '{print $1}'`
for i in $hosts
do 
	scp /etc/openldap/ldap.conf $i:/etc/openldap
done
for i in $hosts
do 
	ssh $i "systemctl start sssd;systemctl enable sssd;authconfig --enablesssd --enablesssdauth --enablerfc2307bis --enableldap --enableldapauth --disableforcelegacy --disableldaptls --disablekrb5 --ldapserver ldap://10.7.48.159 --ldapbasedn 'dc=example,dc=com' --enablemkhomedir --update"
done

执行后用vim /etc/sssd/sssd.conf检验
在这里插入图片描述

三、重新生成ldap的配置

rm -rf /etc/openldap/slapd.d/*
slapadd -F /etc/openldap/slapd.d -n 0 -l /etc/openldap/slapd.ldif
slaptest -u -F /etc/openldap/slapd.d
在这里插入图片描述

四、启动

1. 启动slapd

chown -R ldap:ldap /etc/openldap/slapd.d/
chmod -R 700 /etc/openldap/slapd.d
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap/
systemctl enable slapd
systemctl start slapd
systemctl status slapd

systemctl enable slapd;systemctl start slapd;systemctl status slapd

在这里插入图片描述

2. 在所有clients启动sssd,sssd用来在不同节点同步用户

chmod 600 /etc/sssd/sssd.conf
systemctl start sssd
systemctl enable sssd
systemctl status sssd

chmod 600 /etc/sssd/sssd.conf;systemctl start sssd;systemctl enable sssd;systemctl status sssd

五、验证

在ldap上创建1个用户,然后在linux没有(/etc/passwd中没有),可以通过id xx查到,而且可以su xx来登录。

六、初始化:创建超级管理员、根域、基础数据库

须知:

  1. ldap是通过加载文件的方式来确认用户的,也就是说,如果想添加一个用户,只要在一个ldif文件中按指定格式配置用户信息,然后让ldap加载这个文件即可。一个文件可以设置多个用户,可以并存多个文件。

1. 创建超级管理员和根域

openldap安装成功,默认ldap中没有任何用户,连超级管理员用户也没有,所以接下来把超级管理员用户和根域导进去

vim /opt/root.ldif
在这里插入图片描述

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

dn: cn=ldapadmin,dc=example,dc=com
objectClass: organizationalRole
cn: ldapadmin

将根域及管理员账号添加到OpenLDAP服务中,执行如下命令
ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/root.ldif -hserver所在ip -p389
ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/root.ldif -hn105 -p389
在这里插入图片描述

2. 配置ldap基础数据库

注意冒号后面的空格,末尾不能有空格

vim /opt/base.ldif
在这里插入图片描述

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

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

导入基础数据库到OpenLDAP服务中
ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/base.ldif -h10.7.48.159 -p389
ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/base.ldif -h192.168.233.105 -p389
在这里插入图片描述

七、使用usage

须知

基础工作都已完成,现在我们开始在ldap中创建个普通用户
可以用ldap命令创建,也可以用web工具创建,

在ldap中创建用户和组需要手动指定uid和gid,要确保跟linux中原有的id不重复。

1. 使用UI

可视化工具为ApacheDirectoryStudio,可随意下载

2. 使用命令行方式

查看/etc/group /etc/passwd中最新的gid和uid多少

{1} 先创建用户组文件

vim /opt/group.ldif
在这里插入图片描述

dn: cn=zdk,ou=Group,dc=example,dc=com
objectClass: posixGroup
objectClass: top
cn: zdk
userPassword: {crypt}x
gidNumber: 1201

ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/group.ldif -hz1.idss.com -p389
ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/group.ldif -hnode105 -p389
在这里插入图片描述

{2} 创建用户文件

vim /opt/users.ldif
在这里插入图片描述

dn: uid=zdk,ou=People,dc=example,dc=com
uid: zdk
cn: zdk
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: 123456
loginShell: /bin/bash
uidNumber: 1201
gidNumber: 1201
homeDirectory: /home/zdk

将用户导入到ldap中
ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/users.ldif -hldap-server-ip -p389
ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/users.ldif -hnode105 -p389
在这里插入图片描述

八、检验

1. id 命令检验

此时你在服务器上id zdk,就可以看到用户zdk了,并且看到它的组了,但是它的用户和组没有在/etc/passwd和/etc/group中,这样就实现了用户wu由ldap管理了,不依赖linux了
在这里插入图片描述

ldapsearch -LLL -D ‘cn=ldapadmin,dc=example,dc=com’ -w 123456 -h10.7.48.159 -p389
ldapsearch -LLL -D ‘cn=ldapadmin,dc=example,dc=com’ -w 123456 -h192.168.233.105 -p389

在这里插入图片描述

2. su 命令检验

hdfs是系统用户,cat /etc/passwd | grep hdfs ,有
zdk是ldap用户,cat /etc/passwd | grep zdk,没有
在这里插入图片描述

在这里插入图片描述

九、 配置ldap的日志

日志不影响ldap的运行,默认没有日志

process

vim /opt/loglevel.ldif,注意最后是stats,不是status
在这里插入图片描述

导入到OpenLDAP中,并重启OpenLDAP服务
ldapmodify -Y EXTERNAL -H ldapi:/// -f /opt/loglevel.ldif
systemctl restart slapd

vim /etc/rsyslog.conf
最后一行添加
在这里插入图片描述
systemctl restart rsyslog

重启ldap systemctl restart slapd

tail -f /var/log/slapd.log 就可以查看日志

十、安装过程中的traps

1. 包名搞错导致ldapsearch查不到创建的用户

nss-pam-ldapd包搞错了,弄成了nss- 和 pam-ldapd 2个包

2. 只有在server节点能用ldapsearch和id命令查到用户,client节点查不到

client节点没有启动sssd或者没有authconfig

3. 粗心:

  1. 这里一共是5个olcDbIndex,默认有2个,需要添加3个,结果把默认的2个给删了,只添加了3个
    在这里插入图片描述
  2. 注意引号,在这入了大坑
    ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/test.ldif
    ldapadd -D “cn=ldapadmin,dc=example,dc=com” -W -x -f /opt/test.ldif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值