Ubuntu OpenLDAP配置笔记

Ubuntu OpenLDAP配置笔记

问题(需求)

怎么在Linux桌面登录一个本地不存的账号?做过企业IT管理的同学们应该都知道Windows域控(https://learn.microsoft.com/zh-cn/windows-server/identity/ad-ds/get-started/virtual-dc/active-directory-domain-services-overview)。 在国产替代的趋势下,很多企业产生了Lunux桌面登录OpenLDAP账号的需求。本文详细记录作者亲自实验的过程,希望对你有所帮助。

LDAP服务端

安装 slapd(独立 LDAP 守护程序)会创建具有顶级条目和管理员专有名称 (DN) 的最小工作配置。特别是,它会创建一个可用于存储数据的数据库实例。但是,此实例的后缀(或基本 DN)将根据主机的域名确定。如果您想要不同的东西,您可以在安装后立即更改它(在它包含任何有用的数据之前)。本文将使用域名 dc=yyaw,dc=com, 域服务器IP 192.1.4.8。您可以更改此设置以匹配您的特定设置。系统安装配置不是本文重点。想快速体验的同学可以联系我提供虚拟机。

安装slapd和ldap-utils

运行命令:sudo apt install slapd ldap-utils。输入管理员密码。

配置域名

如果要更改目录信息树 (DIT) 后缀,现在是一个好时机,因为更改它会丢弃现有的后缀。若要更改后缀,请运行以下命令:

bash 复制代码
sudo dpkg-reconfigure slapd
  1. 是否忽略LDAP自带的组织配置。LDAP自带的配置相当于数据库的元数据,比如用户表的管理员账号和密码。如果选择啥都没有,那么连接数据库的程序自身也无法正常运行。建议不要忽略,选No。

  2. 域名:yyaw.com

  3. 基本DN:admin

  4. 管理员密码:

  5. 数据库选择

  6. slapd被卸载是否删除slapd的数据,是否兼容LDAPv2版本,这些配置应用默认选项。此处不截图。

在本文中,我们将使用 LDAP 实用程序发出许多命令。为了减少一些输入,我们可以在 中 /etc/ldap/ldap.conf 配置具有某些默认值的 OpenLDAP 库(根据您的服务器名称和目录后缀调整这些条目):

BASE    dc=yyaw,dc=com
URI     ldap://yyaw.com

编辑hosts

运行命令:sudo vim /etc/hosts,按下图提示修改:

修改主机名

运行命令:sudo vim /etc/hostname,改为yyaw.com

验证

  1. 验证本地服务:ldapsearch -x -LLL -H ldap:/// -b dc=yyaw,dc=com dn
  2. 验证网络服务:ldapsearch -x -LLL -H ldap://192.1.4.8/ -b dc=yyaw,dc=com cn
  3. 验证管理员账号:ldapwhoami -x -D cn=admin,dc=yyaw,dc=com -w <密码> -H ldap://192.1.4.8/

增加一个域账号

新建LDIF文件:vim tingting.ldif,分4次先后输入以下配置,每次输入完成后运行下面的命令行:

dn: ou=People,dc=yyaw,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Groups,dc=yyaw,dc=com
objectClass: organizationalUnit
ou: Groups

dn: cn=users,ou=Groups,dc=yyaw,dc=com
objectClass: posixGroup
cn: users
gidNumber: 15000

dn: uid=tingting,ou=People,dc=yyaw,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: tingting
sn: Xia
givenName: Lily
cn: Lily Xia
displayName: Lily Xia
uidNumber: 10001
gidNumber: 15000
userPassword: {CRYPT}x
gecos: Lily Xia
loginShell: /bin/bash
homeDirectory: /home/ldap/tingting

运行命令:ldapadd -x -D cn=admin,dc=yyaw,dc=com -W -f tingting.ldif -H ldap://192.1.4.8/,输入密码。

结果如下图所示:

修改用户的密码

运行命令:ldappasswd -x -H ldap://192.1.4.8/ -D cn=admin,dc=yyaw,dc=com -W -S uid=tingting,ou=people,dc=yyaw,dc=com,先输入用户的密码,后输入管理员密码。结果如下图所示:

Linux桌面加域

当前操作的主机的IP为192.1.4.9。系统安装配置不是本文重点。想快速体验的同学可以联系我提供虚拟机。

安装软件

运行sudo apt install libnss-ldapd libpam-ldapd ldap-utils,在询问界面中输入:ldap://192.1.4.8/

输入域名:dc=yyaw,dc=com

选中grouppasswdshadow

编辑/etc/ldap/ldap.conf

验证

运行命令:getent passwd

允许远程账号首次登录时自动创建HOME目录

运行sudo pam-auth-update --enable mkhomedir,按下图所示配置

重启:reboot

桌面登录

输入账号密码:

成功进入桌面

其它问题

Ubuntu更新和安装太慢

  1. 原因
    1. ubuntu默认的cn.archive.ubuntu.com网络延时太大,虽然它会转发给国内的镜像站,但每次请求它地转发要卡很久
    2. ubuntu开机在后台自动更新
  2. 其它干扰
    1. 新安装的虚拟机没有SSH,手输sources.list内容太长易出错
    2. ubuntu没有自带vim编辑器,自带的vi编辑器极难操作。
  3. 解决办法
    1. 修改仓库配置:sudo sed -i "s@cn.archive.ubuntu.com@mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
    2. 屏蔽其它更新,仅限实验:sudo vi /etc/apt/sources.list,屏蔽所有主机名不是镜像站的配置。

LDAP服务端IP默认DHCP,ifconfig设置的IP重启失效

  1. 找到正在用的网卡的GUID:nmcli con
  2. 网卡名改为eth0:nmcli con mod <guid> connection.id eth0
  3. 手动设置IP:nmcli con mod eth0 ipv4.address=192.1.4.8/24 ipv4.gateway 192.1.4.2 ipv4.method manual ipv4.dns 114.114.114.114
  4. 刷新网卡,使IP生效:nmcli con dow eth0 && nmcli con up eth0

参考资料

  1. RFC4510:https://datatracker.ietf.org/doc/html/rfc4510

|-----|-------------------------------|
| 作者: | 岬淢箫声 |
| 日期: | 2023年10月23日 |
| 版本: | 1.0 |
| 链接: | http://caowei.blog.csdn.net |

相关推荐
Charles Ray2 分钟前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码3 分钟前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
读书,代码与猫7 分钟前
【裸机装机系列】10.kali(ubuntu)-安装nvidia独立显卡步骤
ubuntu·kali·nvidia·linux安装nvidia显卡·ubuntu安装nvidia·裸机安装linux
我要吐泡泡了哦1 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫1231 小时前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
贾saisai3 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
北岛寒沫3 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
烟雨666_java3 小时前
JDBC笔记
笔记
GEEKVIP3 小时前
Android 恢复挑战和解决方案:如何从 Android 设备恢复删除的文件
android·笔记·安全·macos·智能手机·电脑·笔记本电脑
铁匠匠匠5 小时前
从零开始学数据结构系列之第六章《排序简介》
c语言·数据结构·经验分享·笔记·学习·开源·课程设计