LDAP的目录服务[5]:OpenLDAP(II)

让我们继续,除非没有先咨询:

在这篇文章中,我们将看到:

本地用户认证

运行OpenLDAP服务器后,如果要测试或对注册用户进行本地身份验证(或我们将在目录中注册),则必须安装并配置必要的软件包。

在Squeeze中,涉及的软件包为:

libnss-ldap:提供名称交换服务(NSS名称服务开关),以允许LDAP服务器充当名称服务器。

这意味着提供有关用户帐户,组ID,有关主机,别名,NetGroups的信息,以及基本上从纯文本文件(例如, / etc / passwd文件/ etc / group等)或服务 NIS.

libpam LDAPLDAP的可插入身份验证模块“,或模块 PAM 用于LDAP。 通过以下方式在LDAP服务器和身份验证系统之间提供接口 PAM.

光盘名称服务缓存守护程序,或名称服务缓存的守护程序。 它处理对密码,组和主机的搜索,并将搜索结果存储在缓存中以备将来参考。

:〜#aptitude安装libnss-ldap finger

安装包装 libnss-ldap,它也作为依赖项安装 libpam LDAP 已经是魔鬼了 光盘,将引导我们完成配置向导,我们必须正确回答其问题:

libnss-01

libnss-02

libnss-03

libnss-04

libnss-05

libnss-06

libpam-01

libpam-02

libpam-03

libpam-04

如果我们要重新配置软件包 libnss-ldap 和/或 libpam LDAP,我们必须执行:

:〜#dpkg-重新配置libnss-ldap
:〜#dpkg-重新配置libpam-ldap

稍后我们修改文件 /etc/nsswitch.conf 并保留以下内容:

:〜#纳米/etc/nsswitch.conf
#/etc/nsswitch.conf##GNU名称服务交换机功能的示例配置。 #如果您安装了`glibc-doc-reference'和`info'软件包,请尝试:#`info libc“ Name Service Switch”'有关此文件的信息。 passwd:compat ldap组:compat ldap影子:compat ldap主机:文件dns网络:文件协议:db文件服务:db文件ethers:db文件rpc:db文件netgroup:nis

对于文件所做的更改 /etc/nsswitch.conf 生效,我们重新启动服务 光盘:

:〜#服务nscd重新启动

重要细节是修改文件 /etc/pam.d/共同会话 对于要在登录时在本地服务器上创建的用户文件夹,在目录中注册的用户:

:〜#纳米/etc/pam.d/common-session
[----]
所需的会话pam_mkhomedir.so skel = / etc / skel / umask = 0022
###上面的行必须包含在#之前#这是每个软件包的模块(“主”块)[----]

填充数据库

要填充或启动目录数据库,我们必须添加主要的组织单位,至少注册一个用户组,然后添加一个用户。 为此,我们创建LDIF格式的文件,稍后将其添加到目录中,其内容如下:

:〜#纳米含量.ldif
dn:ou =人物,dc =朋友,dc = cu objectClass:OrganizationalUnit ou:人物dn:ou =团体,dc =朋友,dc = cu objectClass:orgelementUnit ou:团体dn:cn =戒指,ou =团体,dc =朋友,dc = cu objectClass:posixGroup cn:rings gidNumber:10000 dn:uid = frodo,ou = People,dc = friends,dc = cu objectClass:inetOrgPerson objectClass:posixAccount objectClass:shadowAccount uid:frodo sn:Bagins namedName:Frodo cn :Frodo Bagins显示名称:Frodo Bagins uid号:10000 gidNumber:10000用户密码:frodo邮件:frodo@amigos.cu gecos:Frodo Bagins loginShell:/ bin / bash home目录:/ home / frodo

我们将文件的内容添加到目录中:

:〜# ldapadd -x -D cn =管理员,dc =朋友,dc = cu -W -f content.ldif
输入LDAP密码:添加新条目“ ou =人物,dc =朋友,dc = cu”添加新条目“ ou =群组,dc =朋友,dc = cu”添加新条目“ cn =铃声,ou =群组,dc =朋友,dc = cu“添加新条目” uid = frodo,ou =人物,dc =朋友,dc = cu“

我们进行相关检查:

:〜#id frodo
uid = 10000(frodo)gid = 10000(rings)组= 10000(rings)

:〜#getent passwd | 格雷普·弗雷多
frodo:x:10000:10000:Frodo Bagins:/ home / frodo:/ bin / bas

:〜#手指frodo
登录名:frodo名称:Frodo Bagins目录:/ home / frodo Shell:/ bin / bash从未登录。 没有邮件。 没有计划。

:〜#ldapsearch -Y EXTERNAL -H ldapi:/// -b uid = frodo,ou = People,dc = friends,dc = cu

现在我们有了必须管理的目录服务! 我们将开发两种方法:第一种通过打包 ldap脚本,第二点(我们将在下一篇文章中讨论)将通过Ldap客户经理.

我们也应该说 ldap 实用程序,提供了一系列有用的命令来管理目录。 要知道这些命令是什么,我们执行:

:〜#dpkg -L ldap-utils | grep / bin
/ usr / bin / usr / bin / ldapmodrdn / usr / bin / ldapurl / usr / bin / ldapdelete / usr / bin / ldapwhoami / usr / bin / ldapexop / usr / bin / ldappasswd / usr / bin / ldapcompare / usr / bin / ldapsearch / usr / bin / ldapmodify / usr / bin / ldapadd

要了解有关每个命令的更多信息,建议运行 。 给每个解释都将使这篇文章很长。

使用控制台实用程序管理数据库

我们选择包裹 ldap脚本 这样的任务。 安装和配置过程如下:

:〜#aptitude安装ldapscripts

:〜#cp /etc/ldapscripts/ldapscripts.conf \ /etc/ldapscripts/ldapscripts.conf.original

:〜#cp / dev / null /etc/ldapscripts/ldapscripts.conf

:〜#纳米/etc/ldapscripts/ldapscripts.conf
SERVER = localhost BINDDN ='cn = admin,dc =朋友,dc = cu'BINDPWDFILE =“ / etc / ldapscripts / ldapscripts.passwd” SUFFIX ='dc =朋友,dc = cu'GSUFFIX ='ou =组'USUFFIX = 'ou = People'#MSUFFIX ='ou = Computers'GIDSTART = 10001 UIDSTART = 10001#MIDSTART = 10000#OpenLDAP客户端命令LDAPSEARCHBIN =“ / usr / bin / ldapsearch” LDAPADDBIN =“ / usr / bin / ldapadd” LDAPDELETEBIN =“ / usr / bin / ldapdelete“ LDAPMODIFYBIN =” / usr / bin / ldapmodify“ LDAPMODRDNBIN =” / usr / bin / ldapmodrdn“ LDAPPASSWDBIN =” / usr / bin / ldappasswd“ GCLASS =” posixGroup“#UTEMPLATE =” / etc / etc 。/ldapadduser.template“ PASSWORDGEN =” echo%u“

###请注意,脚本使用了
### ldap-utils软件包

:〜#sh -c“ echo -n'tupassowrd'> \ /etc/ldapscripts/ldapscripts.passwd”

:〜#chmod 400 /etc/ldapscripts/ldapscripts.passwd

:〜#cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \ /etc/ldapscripts/ldapadduser.template

:〜#纳米/etc/ldapscripts/ldapadduser.template
dn:uid = , , objectClass:inetOrgPerson objectClass:posixAccount objectClass:shadowAccount cn: sn: 给定的名称: 显示名称: uid: uidNumber: gidNumber: homeDirectory: loginShell: 邮件: 壁虎: 描述:用户帐户

:〜#纳米/etc/ldapscripts/ldapscripts.conf
##我们删除注释UTEMPLATE =“ / etc / ldapscripts / ldapadduser.template”

让我们尝试添加用户 大步王 到用户组  让我们检查输入的数据:

:〜#ldapadduser大步向前
[dn:uid =步幅,ou =人,dc =朋友,dc = cu]输入值“ sn”:国王[dn:uid =步幅,ou =人,dc =朋友,dc = cu]输入值“ givenName”:步幅[dn:uid =步幅,ou =人,dc =朋友,dc = cu]输入“ displayName”的值:Strides El Rey [dn:uid =步幅,ou =人,dc =朋友,dc = cu]输入“邮件”的值:trancos@amigos.cu已成功将用户trancos添加到LDAP中已成功设置用户trancos的密码

根@温和的:〜#ldapfinger大步向前
dn:uid =步幅,ou =人,dc =朋友,dc = cu objectClass:inetOrgPerson objectClass:posixAccount objectClass:shadowAccount cn:strides sn:El Rey给定名称:Strides displayName:Strides El Rey uid:strides uidNumber:10002 gidNumber:10000 homeDirectory:/主页/ trancos登录Shell:/ bin / bash邮件:trancos@amigos.cu gecos:trancos描述:用户帐户userPassword :: e1NTSEF9UnlmcWxCem5iUzBuSzQzTkM3ZFRFcTUwV2VsVnBqRm8 =

让我们为用户声明一个密码 佛罗多,让我们列出“DN”的注册用户,并删除新创建的用户 大踏步走:

:〜#ldapsetpasswd frodo
更改用户uid = frodo的密码,ou =人物,dc =朋友,dc = cu新密码:重新输入新密码:成功设置用户uid = frodo的密码,ou =人物,dc =朋友,dc = cu

:〜#lsldap -u | grep dn
dn:uid = frodo,ou =人物,dc =朋友,dc = cu dn:uid =阔步,ou =人物,dc =朋友,dc = cu

:〜#ldapfinger frodo
dn:uid = frodo,ou = People,dc =朋友,dc = cu objectClass:inetOrgPerson objectClass:posixAccount objectClass:shadowAccount uid:frodo sn:Bagins namedName:Frodo cn:Frodo Bagins displayName:Frodo Bagins uidNumber:10000 gidNumber:10000 mailNumber :1邮件:frodo@amigos.cu gecos:Frodo Bagins loginShell:/ bin / bash home目录:/ home / frodo userPassword :: e9NTSEF4TnI3ZXN1YXA1VnplK1ZIZXZzbFZKaWF5SVdWeUXNUMXoVjA =

:〜#ldapdeleteuser大步前进
已成功从LDAP中删除用户uid =大步,ou =人员,dc =朋友,dc = cu

:〜#lsldap -u | grep dn
dn:uid = frodo,ou =人物,dc =朋友,dc = cu

让我们检查一下本地身份验证是否正常工作:

:〜#ssh frodo @轻度的
frodo @ Mildap的密码:Linux Zhongdap 2.6.32-5-686#1 SMP Fri May 10 08:33:48 UTC 2013 i686 [-] Debian GNU / Linux在适用法律允许的范围内绝对不提供担保。 上次登录时间:18年18月54日星期二01:2014:XNUMX来自滩涂。
frodo @轻度的:〜$ pwd
/主页/ frodo
frodo @轻度的:〜$ 

我们可以写很多例子,但是不幸的是,这篇文章很长。 我们总是说我们给 入口点 一般的服务问题。 不可能在单个帖子中替换大量文档。

要了解有关该软件包的更多信息 ldap脚本 及其命令,请咨询 手稿.

到目前为止,我们基于OpenLDAP的简单目录服务运行良好。

到目前为止的总结...

许多负责业务网络中服务的人员在负责基于Microsoft产品的服务时,如果要迁移到Linux,则考虑在其他服务中迁移域控制器。

如果他们不选择第三方产品(如ClearOS或Zentyal),或者由于其他原因希望独立,那么他们将承担成为自己的域控制器或从Samba 4成为自己的Active Directory的艰巨任务。

然后问题开始了,其他一些令人失望的事情。 操作错误。 他们找不到解决问题的位置。 重复安装尝试。 服务的部分运营。 还有很多问题。

基于OpenLDAP和Samba的Linux中任何域控制器或Active Directory的基础都需要了解以下基本知识: 什么是LDAP服务器,如何安装,如何配置和管理等等?。 那些阅读了Samba大量文档的人,将会清楚我们的意思。

准确地回答了这个问题,我们已经撰写了直到此文章的整个系列文章,我们将继续介绍那些必要的文章。 我们希望它们对您有用。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   维达格努

    出色的帖子Fico,使用OpenLDAP进行查询,可以创建域策略吗? 将其应用到连接的用户,例如5分钟后无活动的屏幕保护程序被激活,配置墙纸,阻止某些应用程序运行,配置启动脚本等。

    问候,
    奥斯卡

    1.    费德里科

      感谢您的评论! Oscar,请记住,在Linux客户端上,这些策略在Linux上的实现方式有所不同。 GNOME带来了一个工具来实现它,现在我不记得它的名字了。 是的,我知道我们可以直接在OpenLDAP中建立用户帐户策略。 许多人问我同样的问题,而我总是回答的差不多。 🙂这些安全策略仅适用于Microsoft客户端,不适用于Linux客户端。 他们是两种不同的哲学。 Active Directory是基于OpenLDAP,Microsft的个人Kerberos和网络管理员的专有应用程序,我不知道他们现在怎么称呼它。 以前,它在Lan Manager中。 我们无法考虑仅使用LDAP模拟Active Directory。 我们将不得不集成Samba或使用Samba 4来查看它是否可以实现。 和我的朋友,我什至没有看过Samba 4。 🙂我也不知道Zentyal和Active Directory是否可以应用它们……但是该软件不仅是OpenLDAP。 它是OpenLDAP + Samba + Kerberos +其他我不太了解的东西。 🙂在本系列中,我仅处理OpenLDAP,如果您遵循它,您会在我编写的整个系列的汇编中看到, 加上其他基本服务,所有内容均基于针对OpenLDAP目录的身份验证。

      问候