配置Linux使用LDAP用户认证的方法
下面我将为您详细讲解如何配置Linux使用LDAP用户认证的方法。
简介
LDAP (Lightweight Directory Access Protocol)是一种轻量级的网络目录服务协议,它可以被用于在网络中进行用户、组或者存储的信息的查找和存储。Linux系统可以通过OpenLDAP将其作为身份验证源,允许管理员在网络中集中管理用户和组。在这篇攻略中,我们将介绍如何安装和配置OpenLDAP服务器,以使用LDAP用户认证的方式管理 Linux 系统。
环境
- Ubuntu 20.04
- OpenLDAP 2.4
步骤
1. 安装OpenLDAP
使用以下命令安装OpenLDAP:
sudo apt update
sudo apt install slapd ldap-utils
在安装期间,您将被要求设置LDAP管理员帐户密码。请确保您记住了此密码,因为以后需要用到它来管理LDAP服务。
2. 配置OpenLDAP
接下来,我们需要通过修改LDAP配置文件来配置服务器。打开文件 /etc/ldap/ldap.conf
并添加以下内容:
BASE dc=example,dc=com
URI ldap://localhost
您可以将BASE替换为您自己组织的域名。然后,打开文件 /etc/ldap/slapd.conf
并添加以下内容:
# ACL for admin
access to * by dn="cn=admin,dc=example,dc=com" write by * read
# Define Password Policy
password-policy default
password-hash {SHA}
# Define Schemas
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
其中:
access to *
语句是用于配置LDAP管理员具有数据写入权限,其他用户只有数据读取权限;password-policy default
语句是启用密码策略;password-hash {SHA}
语句是指定使用SHA算法对密码进行哈希;include
语句是用于分别包含core、cosine和inetorgperson三个模式。
3. 创建LDAP用户和组
创建LDAP用户和组需要使用LDAP数据管理工具 - ldapadd
。您可以通过以下示例添加一个名为 alpha
的用户:
首先,创建一个名为 example.ldif
的空文件:
touch example.ldif
然后将以下内容添加到 example.ldif
文件中:
dn: uid=alpha,ou=people,dc=example,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: Alpha User
uid: alpha
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/alpha
loginShell: /bin/bash
gecos: Alpha
shadowMax: 99999
shadowMin: 0
shadowWarning: 7
userPassword: {SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g=
dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
userPassword: {SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g=
description: LDAP administrator
文件中说明了如何创建名为 alpha
的用户,它拥有 uid=alpha
、ou=people
和 dc=example,dc=com
的DN值。您还可以通过更改dn值来实现不同的配置。
接下来,使用以下命令导入此用户:
ldapadd -x -D cn=admin,dc=example,dc=com -W -f example.ldif
运行命令后,您需要输入在安装OpenLDAP时设置的LDAP管理员密码即可。
您也可以参考这个示例创建一个名为 dev
的组:
首先同样需要创建一个 dev.ldif
文件:
touch dev.ldif
然后将以下内容添加到 dev.ldif
文件中:
dn: cn=dev,ou=group,dc=example,dc=com
objectClass: top
objectClass: posixGroup
gidNumber: 1001
cn: dev
memberUid: alpha
它创建了一个名为 dev
的组,gidNumber
值为 1001,并包含名为 alpha
的成员。
现在再使用以下命令将此组添加到LDAP服务器中:
ldapadd -x -D cn=admin,dc=example,dc=com -W -f dev.ldif
4. 配置 PAM 开放式验证模块
我们还需要为Pluggable Authentication Modules(PAM)配置OpenLDAP。以使用LDAP验证的形式为 SSH 进行身份验证是最常见的一种情况。我们可以编辑 /etc/pam.d/common-session
文件并修改其内容:
session sufficient pam_ldap.so
session required pam_unix.so
其中:
- 第一行告诉PAM使用LDAP进行身份验证;
- 第二行告诉PAM使用本地帐户进行身份验证。
5. 测试
现在您就可以进行LDAP认证测试了。使用以下命令可以手动登陆您的alpha用户,检查是否能够成功登录:
su alpha
在提示符处输入 alpha
的密码以验证身份。如果认证成功,则将进入作为 alpha
用户的shell。
您还可以通过SSH进行身份验证。使用另一台计算机使用SSH连接您的服务器,并尝试用 alpha
用户进行身份验证。如果认证成功,则您现在可以使用LDAP用户在Linux中身份验证。
结论
本文中,我们已经学习了如何在Linux中使用OpenLDAP进行身份验证。我们首先安装并配置了OpenLDAP服务器,然后创建了一个LDAP用户和组。最后,我们配置了PAM,以使用LDAP进行SSH身份验证。然后您可以使用LDAP用户进行身份验证并使用LDAP管理用户\组。