王海庆的云笔记

Centos7 安装LDAP


        LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写.

        目录是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。所以目录天生是用来查询的,就好象它的名字一样。 

        目录服务是由目录数据库和一套访问协议组成的系统。类似以下的信息适合储存在目录中: 

1、企业员工信息,如姓名、电话、邮箱等; 

2、公用证书和安全密钥; 

3、公司的物理设备信息,如服务器,它的IP地址、存放位置、厂商、购买时间等;


LDAP特点

1、LDAP的结构用树来表示,而不是用表格。正因为这样,就不能用SQL语句了 

2、LDAP可以很快地得到查询结果,不过在写方面,就慢得多 

3、LDAP提供了静态数据的快速查询方式 

4、Client/server模型,Server 用于存储数据,Client提供操作目录信息树的工具 

5、这些工具可以将数据库的内容以文本格式(LDAP 数据交换格式,LDIF)呈现在您的面前 

6、LDAP是一种开放Internet标准,LDAP协议是跨平台的Interent协议


常用的属性

dn:一条entry的唯一路径
cn:用户的全名
sn:用户的姓
uid:用户的登陆名称
c:两个字符的国家代码,比如:中国,cn
o:组织名称(公司名)
ou:部门名称
mail:邮件地址


ldap的搭建也是分为单模式配置,或者主从模式的配置,也有主主模式的配置,下面搭建单模式


关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
sed -i -e  's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
setenforce 0


换成阿里云的源

rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum clean all
yum makecache fast -y


公司里CentOS7的源

rm -rf /etc/yum.repos.d/*
cat >  /etc/yum.repos.d/centos7.repo << EOF
[base]
name=base
baseurl=http://172.18.0.61/centos7/base
enabled=1
gpgcheck=0

[extras]
name=extras
baseurl=http://172.18.0.61/centos7/extras
enabled=1
gpgcheck=0

[updates]
name=updates
baseurl=http://172.18.0.61/centos7/updates
enabled=1
gpgcheck=0

[epel]
name=epel
baseurl=http://172.18.0.61/centos7/epel
enabled=1
gpgcheck=0
EOF

yum clean all
yum makecache fast -y


OpenLDAP安装

yum install -y openldap openldap-*


启动服务

systemctl restart slapd
systemctl enable slapd
systemctl status slapd


 查看openldap默认监听的389端口

netstat -antup| grep 389


配置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


配置ldap服务,设置OpenLDAP的管理员密码

slappasswd


编辑chrootpw.ldif文件

cat > /etc/chrootpw.ldif  << "EOF"
# specify the password generated above for "olcRootPW" section
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}FuSqOWgFZ+TpIpBKAvGNYcffW5S98b6B   # 这里是存放你的上面生成的密码
EOF


导入chrootpw.ldif

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/chrootpw.ldif


导入基本模式

cat > /etc/ldapaddBaseSchema.sh  << "EOF"
#!/bin/bash
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

EOF

chmod 755 /etc/ldapaddBaseSchema.sh
sh -x /etc/ldapaddBaseSchema.sh


接着在ldap服务的DB中设置域名,即编辑chdomain.ldif文件

cat > /etc/chdomain.ldif  << "EOF"
# replace to your own domain name for "dc=***,dc=***" section
# specify the password generated above for "olcRootPW" section
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
  read by dn.base="cn=Manager,c=cn" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: c=cn

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,c=cn

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}FuSqOWgFZ+TpIpBKAvGNYcffW5S98b6B  # 你上面生成的密码密钥

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
  dn="cn=Manager,c=cn" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,c=cn" write by * read

EOF


导入chdomain.ldif文件

ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/chdomain.ldif


导入管理员基础数据

cat > /etc/rootdn.ldif  << "EOF"

dn: c=cn
objectclass: country
c: cn

dn: cn=Manager,c=cn
objectclass: organizationalRole
cn: Manager

EOF


执行下面命令,输入上面设置的密码 

ldapadd -x -D cn=Manager,c=cn -W -f /etc/rootdn.ldif


查看OpenLDAP的日志级别,日志主要用于对OpenLDAP排查

slapd -d ?


重ldap服务

systemctl restart slapd
systemctl status slapd

 

LDAP Admin(LDAP管理工具)

https://sourceforge.net/projects/ldapadmin/files/ldapadmin/


Base:c=cn

用户名:cn=Manager,c=cn


LdapAdmin.exe


LDAP客户端


安装

yum install -y nss-pam-ldapd


图形化配置客户端

authconfig-tui



参考

http://t.zoukankan.com/zhaoyunlong-p-10550520.html
https://blog.51cto.com/gongxin12/2174978
http://t.zoukankan.com/jcici-p-11896684.html
https://segmentfault.com/a/1190000041594592
http://www.manongjc.com/detail/28-cftqfvxenensaly.html
https://blog.csdn.net/qq_37837432/article/details/121619881

文章最后更新时间: 2022-05-31 11:24:07