LDAP(Lightweight Directory Access Protocol)是一种轻量级的协议,用于访问和维护分布式目录信息。它通常用于集中管理用户身份验证和授权信息,如用户名、密码和角色等信息。在企业环境中,LDAP通常被用于集中管理用户、组和计算机等资源。
本文将介绍如何在Linux上安装和配置OpenLDAP服务器,并给出一些常见的LDAP使用案例。
一、安装OpenLDAP
在Linux系统中,可以使用包管理器快速安装OpenLDAP,例如在Debian/Ubuntu系列中使用以下命令:
```
sudo apt-get update
sudo apt-get install slapd ldap-utils
```
在CentOS/RHEL系列中使用以下命令:
```
sudo yum install openldap-servers openldap-clients
```
安装完成后,即可开始配置LDAP服务器。
二、配置LDAP服务器
1. 配置管理员账号和密码
LDAP服务器的第一步是创建一个管理员账号和密码,用于管理LDAP目录。可以使用 `slappasswd` 工具来创建加密的密码,例如:
```
sudo slappasswd
New password:
Re-enter new password:
{SSHA}2/RaXa3VQw1zC6W4rTcIxhOXwaBYSO9
```
将输出中的结果复制一下,将其保存到一个文件中,如 `/etc/ldap.secret`。
创建一个名为 `admin-password.ldif` 的文件,将以下内容复制到其中:
```
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}2/RaXa3VQw1zC6W4rTcIxhOXwaBYSO9
```
使用 `ldapmodify` 命令来提交修改:
```
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f admin-password.ldif
```
2. 配置基本信息
创建一个名为 `basedomain.ldif` 的文件,并将以下内容复制到其中:
```
dn: dc=my-domain,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: My Organization
dc: my-domain
dn: cn=admin,dc=my-domain,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
userPassword: {SSHA}2/RaXa3VQw1zC6W4rTcIxhOXwaBYSO9
description: LDAP admin
```
说明:
- `dc=my-domain,dc=com` 是你的基本域名信息。可以根据自己的需求进行修改。
- `cn=admin,dc=my-domain,dc=com` 是管理员账号信息,需要设置密码(即上面生成的密码)。
使用 `ldapadd` 命令来添加基本信息:
```
sudo ldapadd -x -D cn=admin,dc=my-domain,dc=com -W -f basedomain.ldif
```
3. 配置ACL(访问控制)
默认情况下,LDAP服务器不允许任何数据访问。因此,需要为管理员提供适当的权限。可以在 `/etc/ldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif` 文件中添加以下内容:
```
olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by dn.base="cn=admin,dc=my-domain,dc=com" manage by * read
```
上述代码意思是:
- 管理员(`cn=admin,dc=my-domain,dc=com`)拥有管理所有条目的权限。
- 其他用户(`*`)可以读取所有条目,但不能写入或更改其内容。
使用以下命令来重新启动LDAP服务:
```
sudo systemctl restart slapd
```
现在,LDAP服务器已经安装并配置完成。下面介绍一些常见的LDAP操作。
三、常见LDAP操作案例
1. 添加用户
若想添加一个用户名为 `johndoe` 的用户,创建一个名为 `johndoe.ldif` 的文件,并将以下内容复制到其中:
```
dn: uid=johndoe,dc=my-domain,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: John Doe
uid: johndoe
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/johndoe
loginShell: /bin/bash
gecos: John Doe
userPassword: {crypt}x
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
```
说明:
- `dn` 表示用户的唯一身份标识符(即全局ID)。其格式是 `uid= - `uid` 表示用户的用户名。 - `uidNumber` 和 `gidNumber` 表示用户的“数字ID”(数字UID和数字GID)。 - `userPassword` 表示用户的密码。可以使用 `slappasswd` 工具来创建加密的密码,例如 `sudo slappasswd -h {CRYPT}`。 - `shadow` 类的属性包含有关用户密码的其他详细信息,如密码过期期限和警告等。 使用以下命令将用户添加到LDAP目录: ``` sudo ldapadd -x -D cn=admin,dc=my-domain,dc=com -W -f johndoe.ldif ``` 2. 修改用户信息 若想修改 `johndoe` 用户的信息,可以修改 `johndoe.ldif` 文件中的内容,然后使用以下命令进行更新: ``` sudo ldapmodify -x -D cn=admin,dc=my-domain,dc=com -W -f johndoe.ldif ``` 3. 删除用户 若想删除 `johndoe` 用户,可以创建一个名为 `johndoe-delete.ldif` 的文件,并将以下内容复制到其中: ``` dn: uid=johndoe,dc=my-domain,dc=com changetype: delete ``` 使用以下命令将用户从LDAP目录中删除: ``` sudo ldapmodify -x -D cn=admin,dc=my-domain,dc=com -W -f johndoe-delete.ldif ``` 四、总结 本文介绍了如何在Linux上安装和配置OpenLDAP服务器,并介绍了一些常见的LDAP使用案例,包括添加、修改和删除用户等。LDAP是一种强大的工具,可以用于集中管理用户和资源等,适用于企业环境中。 如果你喜欢我们三七知识分享网站的文章,
欢迎您分享或收藏知识分享网站文章
欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
发表评论 取消回复