OpenLDAP 内容概述与部署操作
本章内容概述
我们主要以centos7.5 为基础系统进行分析,包括服务端的安装以及客户端,centos6 系列的没有涉及,如果您需要
在 centos6 上进行安装客户端,得需要您自行研究了。目前主要安装方式有两种,一种是通过源码编译安装,一种
是在线rpm 安装,两种都有优缺点。
常用的属性名如下:
源码编译安装:
- 可以安装最新的版本,根据自己的实际需要的功能进行编译
- 编译需要安装一系列的编译工具,并且如果对需要的功能不是很熟悉,如果后面还需要其它功能,需要重新编译。
- 数据库需自己编译安装 bdb ,如果不需要该数据库,需显示指明
在线rpm 安装:
- 目前只能安装 2.4.44 版本,最新为 2.4.47 版本
- 数据库默认支持为 hdb ,最新版默认支持为 mdb 但也默认会要求安装 bdb
后面会以yum 安装为主。
OpenLDAP 使用 yum 方式安装
安装包:
openlda: OpenLDAP服务端和客户端用的库文件
openldap-servers: 服务端程序
openldap-clients: 客户端程序
openldap-devel: 开发包,可选
openldap-servers-sql: 支持sql模块,可选
migrationtools: 实现OpenLDAP用户及用户组的添加,导入系统账户,可选
compat-openldap: OpenLDAP 兼容性库
注:修改yum源,yum安装最新版
yum -y install wget mkdir /etc/yum.repos.d.bak /bin/mv /etc/yum.repos.d/* /etc/yum.repos.d.bak wget -O /etc/yum.repos.d/aliyun-centos7-base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/aliyun-centos7-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum clean all yum makecache
yum 安装openldap
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools yum clean all && yum makecache
生成openldap的管理加密密钥(记下来,下面将用到)
slappasswd -s fooher.com Re-enter new password: {SSHA}0yaWMzjeuDBghcqsp2kg6xA+AfAG6SSQ
复制 slapd.ldif 到 /etc/openldap 下面
/bin/cp /usr/share/openldap-servers/slapd.ldif /etc/openldap
在第83行左右 corba.ldif 下面添加以下内容:
vim /etc/openldap/slapd.ldif include: file:///etc/openldap/schema/collective.ldif 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/pmi.ldif include: file:///etc/openldap/schema/ppolicy.ldif
或者使用 Schemas 命令导入
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/collective.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/corba.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/duaconf.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/dyngroup.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/inetorgperson.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/java.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/misc.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/nis.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/openldap.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/pmi.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/ppolicy.ldif
修改 slapd.ldif文件 Server status monitoring 下面相关内容,在139行
vim /etc/openldap/slapd.ldif
olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=fooheradmin,dc=fooher,dc=com" read by * none
修改 Backend database definitions 下面为以下内容,在149行
vim /etc/openldap/slapd.ldif
olcSuffix: dc=fooher,dc=com olcRootDN: cn=fooheradmin,dc=fooher,dc=com olcRootPW: {SSHA}0yaWMzjeuDBghcqsp2kg6xA+AfAG6SSQ
查看配置文件目录
cd /etc/openldap tree slapd.d/ slapd.d/ ├── cn=config │ ├── cn=schema │ │ └── cn={0}core.ldif │ ├── cn=schema.ldif │ ├── olcDatabase={0}config.ldif │ ├── olcDatabase={-1}frontend.ldif │ ├── olcDatabase={1}monitor.ldif │ └── olcDatabase={2}hdb.ldif └── cn=config.ldif 备份配置文件 /bin/mv slapd.d slapd.d.bak mkdir -p slapd.d
配置配置文件权限
chown -R ldap:ldap /etc/openldap/slapd.d
初始化生成配置文件
- -n: 代表写入那个数据库,-n 0 是写在0号这个数据库里
- -F: 指定配置成位置, -F slapd.d 生成在 slapd.d 目录里
- -l: 指定生成哪个slapd.ldif文件
cd /etc/openldap/ slapadd -n 0 -F slapd.d -l slapd.ldif _############### 79.86% eta none elapsed none spd 1.0 M/s Closing DB...
复制数据库配置文件到数据库目录里
/bin/cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
配置数据库目录权限
chown -R ldap:ldap /var/lib/ldap /etc/openldap/slapd.d
启动slapd服务区
systemctl start slapd
slapd服务状态
systemctl status slapd
开机启动slapd
systemctl enable slapd
查看启动端口
ss -tunlp|grep 389
配置基本域修改为下面值
/bin/cp /usr/share/migrationtools/migrate_common.ph{,_bak} vim /usr/share/migrationtools/migrate_common.ph $DEFAULT_MAIL_DOMAIN = "ldap.fooher.com"; $DEFAULT_BASE = "dc=fooher,dc=com"; $EXTENDED_SCHEMA = 1;
生成ldif文件
/usr/share/migrationtools/migrate_base.pl > /etc/openldap/basedomain.ldif
导入数据
ldapadd -x -D cn=fooheradmin,dc=fooher,dc=com -W -f /etc/openldap/basedomain.ldif
使用工具LdapAdmin管理添加一个连接如图
然后我们全部删除手动建一个
mkdir -p /etc/openldap/ldif sudo tee /etc/openldap/ldif/config_init.ldif <<-EOF dn: dc=fooher,dc=com objectclass: dcObject objectclass: organization o: https://www.fooher.com dc: fooher EOF
导入数据
ldapadd -x -D "cn=fooheradmin,dc=fooher,dc=com" -W -f config_init.ldif Enter LDAP Password: adding new entry "dc=fooher,dc=com"
查询所有 objectClass=*
ldapsearch -x -b 'dc=fooher,dc=com' '(objectClass=*)' ldapsearch -H ldapi:/// -Y EXTERNAL -b "cn=config" -LLL –Q ldapsearch -x -b "dc=fooher,dc=com" -H ldap://127.0.0.1