免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: yjnet
打印 上一主题 下一主题

[ldap] openldap的安装笔记,请大家多点关注ldap技术。 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-05-01 02:31 |只看该作者

openldap的安装笔记,请大家多点关注ldap技术。

在ldap中输入中文是可以的,只要用jxplorer这个客户端连接,就可以用中文输入了。网址在http://pegacat.com/jxplorer/。

论坛徽章:
0
12 [报告]
发表于 2004-05-08 13:38 |只看该作者

openldap的安装笔记,请大家多点关注ldap技术。

本人是ldap的新手,进来想做基于ldap服务器实现用户认证,哪位大虾给小弟指点一下,具体需要配置些什么,是不是还需要一个jndi接口驱动程序。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
13 [报告]
发表于 2004-05-11 22:41 |只看该作者

openldap的安装笔记,请大家多点关注ldap技术。

LDAP是支持UTF8的,输入中文很容易还用什么客户端程序,自己写一个就行了,两行的事

论坛徽章:
0
14 [报告]
发表于 2004-06-08 08:14 |只看该作者

openldap的安装笔记,请大家多点关注ldap技术。

服务器认证我没做过,不过是可以,以下是一篇文章,希望能帮到你。

OpenLDAP 做為使用者身份登入帳號驗證伺服器(使用 RedHat AS 3.0)
使用 OpenLDAP 做為使用者身份登入帳號驗證伺服器 (windows and linux clients)
一般的 Linux clients 可以直接使用 PAM 來支援 LDAP 目錄的身份驗證,但是 Windows clients 會主動找尋 AD 或 PDC 來做身分認證,所以有兩種方式來設定 windows clients 用 openLDAP 來做身分認證
1.修改 windows client 的認證方式,可以使用 pGina 來改變它的認證方式,有興趣的可以參考 pGina 的網站 http://pgina.xpasystems.com/
2.用 samba 架 PDC 這將是我採用的方式.

Step0:需求
1.openldap
2.samba3.x

Step1:安裝
#rpm -ivh samba-3.....i386.rpm
#rpm -ivh openldap.....rpm
#rpm -ivh openldap-clients.....rpm
#rpm -ivh openldap-servers.....rpm

Step2 : OpenLDAP 的設定
#vi /etc/openldap/slapd.conf
----------------------------------------------------------------------------------------------
# $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v 1.8.8.7 2001/09/27 20:00:31 kurt Exp $
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/redhat/rfc822-MailMember.schema
include /etc/openldap/schema/redhat/autofs.schema
include /etc/openldap/schema/redhat/kerberosobject.schema
..................略.................................
#######################################################################
# ldbm database definitions
#######################################################################
database ldbm
suffix "dc=example,dc=com"
#suffix "o=fortop,c=tw"
rootdn "cn=Manager,dc=example,dc=com"
#rootdn "cn=root,o=fortop,c=tw"
# Cleartext passwords, especially for the rootdn, should
# be avoided. See slappasswd( and slapd.conf(5) for details.
# Use of strong authentication encouraged.
#rootpw secret
rootpw {SSHA}83DJ4KVwqlk1uh9k2uDb8+NT1U4RgkEs
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd/tools. Mode 700 recommended.
directory /var/lib/ldap
# Indices to maintain
index objectClass,uid,uidNumber,gidNumber,memberUid eq
index cn,mail,surname,givenname eq,subinitial
# Replicas to which we should propagate changes
#replica host=ldap-1.example.com:389 tls=yes
# bindmethod=sasl saslmech=GSSAPI
# authcId=host/ldap-master.example.com@EXAMPLE.COM

----------------------------------------------------------------------------------------------
上述以 example.com 為範例 suffix "dc=example,dc=com"
管理者為 Manager rootdn "cn=Manager,dc=example,dc=com"
同樣的也可以用以下的方式來設定
suffix "o=example,c=tw"
rootdn "cn=Manager,o=example,c=tw"
使用管理者密碼 rootpw {SSHA}83DJ4KVwqlk1uh9k2uDb8+NT1U4RgkEs
管理者密碼的產生
#slappasswd
New password
Re-enter new password
{SSHA}83DJ4KVwqlk1uh9k2uDb8+NT1U4RgkEs
接下來再拷到 /etc/openldap/sldap.conf 的 rootpw 即可

重新啟動 openldap
#service ldap restart

檢查 openldap server 是否正常啟動且設定是否正確
#ldapsearch -x -b ' ' -s base '(objectclass=*)' namingContexts
.
.
dn:
namingContexts:dc=example,dc=com
.
.
你至少會看到以上兩行,則 server 端已經設定好

Step3: LDAP 認證的支援加入 samba schema
加入 include /etc/openldap/schema/samba.schema 這一行,以支援 samba 使用 LDAP 的認證
但 samba.schema 檔案並不是存放在 /etc/openldap/schema/ 目錄下,而且它是包在 samba.xxxx.rpm 中,安裝後存放在 /usr/share/doc/samba-xx/LDAP/ 目錄下.所以要手動複製檔案至 /etc/openldap/schema/ 目錄下.
#cp /usr/share/doc/samba-xx/LDAP/samba.schema /etc/openldap/schema/

並且修改 slapd.conf
#vi /etc/openldap/slapd.conf
----------------------------------------------------------------------------------------------
# $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v 1.8.8.7 2001/09/27 20:00:31 kurt Exp $
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema
include /etc/openldap/schema/redhat/rfc822-MailMember.schema
include /etc/openldap/schema/redhat/autofs.schema
include /etc/openldap/schema/redhat/kerberosobject.schema
..................略.................................
----------------------------------------------------------------------------------------------

重新啟動 openldap
#service ldap restart


Step4:Samba 的設定
修改 smb.conf global 的部份加上 LDAP 的設定:
#vi /etc/samba/smb.conf
-----------------------------------------------------------------------------------
workgroup = example
netbios name =sun01
ldap admin dn = "cn=Manager,dc=example,dc=com"
passdb backend = ldapsam:ldap://192.0.0.1, guest
ldap ssl = off
ldap suffix = "dc=example,dc=com"
security = user
encrypt passwords = yes
-----------------------------------------------------------------------------------
說明
workgroup = EXAMPLE #所在的網域名稱,也是 OpenLDAP 之前設定的
netbios name =sun01 #netbios name 也就是 windows 的電腦名稱
ldap admin dn = "cn=Manager,dc=example,dc=com" #OpenLDAP 之前設定的管理者

passdb backend = ldapsam:ldap://192.0.0.1, guest #指定身份驗證交給 ldap server 來處理,其中的 IP 就是你的 OpenLDAP server 的 IP
ldap ssl = off #指定資料在網路傳送是否經由 ssl 加密,可用選項為 off:不使用 1.on(default):使用 2.ssl 加密 3.start tls:使用 tls(相似於 ssl) 加密
ldap suffix = "dc=example,dc=com" # samba 會從此資料路徑開始找起
security = user # 密碼驗證指定為 user
encrypt passwords = yes #密碼的傳送要先加密

還要修改 smb.conf global 的部份加上 PDC 的設定
#vi /etc/samba/smb.conf
-----------------------------------------------------------------------------------
local master = yes
os level = 64
domain master = yes
prepferred master = yes
domain logons = yes
-----------------------------------------------------------------------------------

#chkconfig smb on
重新啟動 samba server
#service smb restart
Restarting SMB services: Shutting down SMB services : [ OK ]
Starting down SMB services:

samba 要與 openldap 溝通前,samba 要先將 openldap 的密碼存在 /etc/samba/secrets.tdb,密碼就是剛剛設定 openldap 時要一樣
#smbpasswd -w secret
setting stored password for "cn=Manager,dc=example,dc=com" in secrets.tdb
最後我們還要修改 openldap 使用者的資料,才能給 samba 使用

Step5:新增 samba account LDAP 的分錄檔
I. 現在新增第一筆 BDN.ldif (Base Distinguish Name)資料至 openldap
#vi BDN.ldif
-------------------------------
dn:dc=example,dc=com
objectclass:top
-------------------------------

執行 ldapadd 將資料加入 OpenLDAP 中
# ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f BDN.ldif
Enter LDAP Password:
adding new entry "dc=example,dc=com"
這樣就成功加入一筆資料

II.新增使用者資料至 openldap
這裡的使用者將會給 Linux 與 Windows 的 client 來使用,所以會有較多的屬性設定
# vi user1.ldif
-------------------------------------------------------------------------------------
dn: uid=user1,dc=example,dc=com
uid: user1
cn: user1
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:
shadowLastChange: 12374
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 500
gidNumber: 500
homeDirectory: /home/user1
-------------------------------------------------------------------------------------
userPassword: 不用先設定.之後再用 ldappasswd 設定即可

執行 ldapadd 將資料加入 OpenLDAP 中
#ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f user1.ldif
Enter LDAP Password:
adding new entry "uid=user1,dc=example,dc=com"
這樣就成功加入一筆資料

最後再設定使用者密碼即可
#ldappasswd -x -D "cn=Manager,dc=example,dc=com" -W "uid=user1,dc=example,dc=com" -S
New password:
Re-enter new password:
Enter bind password:
Result: Success (0)

note:"Enter bind password" 是 "cn=Manager,dc=example,dc=com" 管理者的密碼

來搜尋一下結果吧
#ldapsearch -x -b 'uid=user1,dc=example,dc=com'
--------------------------------------------------------------------------
dn: uid=user1,dc=example,dc=com
uid: user1
cn: user1
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
shadowLastChange: 11933
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 501
gidNumber: 501
homeDirectory: /home/user1
userPassword:: e1NTSEF9YUtuMFNWT0ZrcW5qSks3Q2FBVytzdUtJYnFUdUFWZkw=
.................略........................
--------------------------------------------------------------------------
可以看到 'uid=user1,dc=example,dc=com' 成功加入,但這樣的資料還無法給 samba 來使用,這些資料只是給 LDAP 的 Linux clients 使用,如果要給 samb PDC 的使用者登入使用,就要將 samba 所需的資料補上去.

III.加入 sambaAccount 至 openldap 使用者
#smbpasswd -a root
因為只有 root 有權限將使用者加入網域,所以我們必須要將 root 這個使用者加入 ldap 的使用者資料庫中.
#adduser user1
#passwd user
Changing password for user user.
New password:
Retype new password:
passwd: all authentication tokens updated successfully
在使用下面指令時使用者必須先存在 /etc/passwd
#smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1

來搜尋一下結果吧
#ldapsearch -x -b "uid=user1,dc=example,dc=com"
----------------------------------------------------------------------------------------------
dn: uid=user1,dc=example,dc=com
..................略........................
sambaSID: S-1-5-21-710610727-3552547972-1245264387-2000
sambaPrimaryGroupSID: S-1-5-21-710610727-3552547972-1245264387-2001
sambaPwdCanChange: 1069184314
sambaPwdMustChange: 2147483647
sambaLMPassword: FC26CDB2863917C1AAD3B435B51404EE
sambaNTPassword: 00B2C85DDFBD8CC81602D6FC7340EB0B
sambaPwdLastSet: 1069184314
sambaAcctFlags: [U ]
----------------------------------------------------------------------------------------------

IV.加入使用者的電腦名稱帳號
#adduser computername$
這裡是加入使用者的電腦名稱的帳號,記得要以 $ 為結尾

#smbpasswd -a -m MACHINE_NAME$
這時就可以將這筆資料加入至 ldap 資料庫中

Step6.Windows/Linux clients 的登入
I.Linux Clients
要將 LDAP Client 指向 LDAP server 的主要設定檔為 /etc/openldap/ldap.conf
RehHat Linux 提供指令 authconfig 來設定
但 authconfig 所提供設定檔有兩處
第一部分為:
此處主要設定 /etc/openldap/ldap.conf , /etc/nsswitch.conf
修改之後 /etc/nsswitch.conf 會新增一項 ldap , 因此 client 會將身分驗證工作指向 LDAP server
------------------------------------
.
.
passwd: files ldap
shadow: files ldap
group: files ldap
.
.
-------------------------------------
/etc/nsswitch.conf 主要作用為查詢時決定要用哪些方式 ,如 file , nisplus , ldap ......
在這加入密碼驗證身份時除了本機的檔案( /etc/passwd , /etc/shadow, /etc/group) 可查詢外還可以向 ldap server 做查詢.

而 LDAP server 的 IP 設定在 /etc/openldap/ldap.conf
----------------------------------------------------------------------
...........略..................
HOST 10.6.101.116
BASE dc=example,dc=com
----------------------------------------------------------------------
第二部分為:
此處主要設定 /etc/openldap/ldap.conf , /etc/pam.d/system.auth
修改之後 /etc/system.auth.conf 會新增許多項與 ldap 有關的設定
---------------------------------------------------------------------------------------------------
auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_unix.so likeauth nullok
auth sufficient /lib/security/pam_ldap.so use_first_pass
auth required /lib/security/pam_deny.so
account required /lib/security/pam_unix.so
account [default=bad success=ok user_unknown=ignore service_err=ignore syste
m_err=ignore] /lib/security/pam_ldap.so
password required /lib/security/pam_cracklib.so retry=3 type=
password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shado
w
password sufficient /lib/security/pam_ldap.so use_authtok
password required /lib/security/pam_deny.so
session required /lib/security/pam_limits.so
session required /lib/security/pam_unix.so
session optional /lib/security/pam_ldap.so
----------------------------------------------------------------------------------------------------
現在 Linux Client 就可以用 LDAP 帳號登入了

II.Windows client
Windows 2000 Client 要先加入網域中方法如下
在 My Computer 按右鍵選 content,再選 Network Identification/Properties
選擇要加入的網域,先前 samba server 設定的網域為 example,所以在 Domain 填入 example.
填入使用者名稱為 root ,以及 root 的密碼重開系統.
現在 Windows Clients 就可以用 LDAP 目錄來做身份驗證
其他 windows 請參考 samba PDC 相關文章的設定

我的主页:
http://www.ringkee.com
里面有我的一些学习笔记,希望能帮到大家。[/url]

论坛徽章:
0
15 [报告]
发表于 2004-09-09 20:45 |只看该作者

openldap的安装笔记,请大家多点关注ldap技术。

[quote]原帖由 "py"]LDAP是支持UTF8的,输入中文很容易还用什么客户端程序,自己写一个就行了,两行的事[/quote 发表:



你好,最近碰到也是要输入中文到LDAP中的,但是试过不行,用ldif导入都是中文全部乱码,但是用工具直接填入就不会,你用脚本可以导入中文?
谢谢指教

论坛徽章:
0
16 [报告]
发表于 2004-12-22 13:10 |只看该作者

openldap的安装笔记,请大家多点关注ldap技术。

笔记的在线版在以下网址:

http://www.ringkee.com/jims/technic_folder/

论坛徽章:
0
17 [报告]
发表于 2004-12-26 12:56 |只看该作者

openldap的安装笔记,请大家多点关注ldap技术。

checking Cyrus SASL library version... no
configure: error: Cyrus SASL library located but is incompatib
le

论坛徽章:
0
18 [报告]
发表于 2004-12-26 13:00 |只看该作者

openldap的安装笔记,请大家多点关注ldap技术。

社么问题阿?我是按照上面一步一步做下来的,可是做到这一步

论坛徽章:
0
19 [报告]
发表于 2005-01-04 11:41 |只看该作者

openldap的安装笔记,请大家多点关注ldap技术。

没有用过gq的兄弟可以试试,linux的ldap客户端。在freebsd的ports里有。

论坛徽章:
0
20 [报告]
发表于 2005-01-04 12:55 |只看该作者

openldap的安装笔记,请大家多点关注ldap技术。

原帖由 "inrock" 发表:
checking Cyrus SASL library version... no
configure: error: Cyrus SASL library located but is incompatib
le

SASL版本问题,请换一下试一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP