LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1177|回复: 3

ldap通?錄成功後,第二個目標(PDC與LDAP的結合)

[复制链接]
发表于 2005-11-22 12:08:18 | 显示全部楼层 |阅读模式
http://www.linuxsir.cn/bbs/showthread.php?t=227716

有時間再補..

先占一貼,哈哈..

請不要刪除了..

:%


今天做實驗補一點

根據上貼,我們的db以及openldap都安裝好了.
samba也後續安裝好了.

find / -name samba.schema
cp到
/usr/local/openldap/etc/openldap/schema/

vi /usr/local/openldap/etc/openldap/slapd.conf

include         /usr/local/openldap/etc/openldap/schema/core.schema
include         /usr/local/openldap/etc/openldap/schema/cosine.schema
include         /usr/local/openldap/etc/openldap/schema/inetorgperson.schema
下面這一行是因為要與ldap與samba結合而加的
include         /usr/local/openldap/etc/openldap/schema/samba.schema
其順序也要注意,不然一些屬性就提示沒有.
database        bdb
suffix          "dc=unitetwcn,dc=ok"
rootdn          "cn=peter,dc=unitetwcn,dc=ok"
rootpw {MD5}EBvksMXPLkMR4a/JN2LHSQ==

其他的暫且都用默認的吧.
rootpw後面是由下列語句産生的蜜文
/usr/local/openldap/sbin/slappasswd -h {MD5}


sed -e '/^#/d' /usr/local/openldap/etc/openldap/ldap.conf

BASE    dc=unitetwcn, dc=ok

來啟動ldap,順便也加到到/etc/rc.d/rc.local中
/usr/local/openldap/libexec/slapd -h "ldaps:// ldap://"


/usr/local/openldap/libexec/slapd --help
-h URLs         List of URLs to serve


telnet localhost 389
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.

[root@onespace openldap-2.3.12]# telnet localhost 636
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.

這個就是ldaps嗎?如何訪問...


下面是加根 node,當然我們可以看成是一個公司

vi /etc/openldap/data/peter.ldif
dn: dc=unitetwcn,dc=ok
objectClass: organization
o: Unite tw&cn
objectClass: dcObject
dc: unitetwcn
(這裏有一行空行,不要小氣不給哦,否則就有問題了)
#for Manager information
dn: cn=peter,dc=unitetwcn,dc=ok
objectClass: inetOrgPerson
uid: peter
cn: peter
sn: 皮皮魯

備註:可以用漢字的

ldapadd -f peter.ldif -D "cn=peter,dc=unitetwcn,dc=ok" -x -W
ldapdelete -D "cn=peter,dc=unitetwcn,dc=ok" -W "cn=peter,dc=unitetwcn,dc=ok" -x
Enter LDAP Password:
這是鍛練一下刪除,

下面是加管理員.可以看成是公司的董事長吧.
[root@onespace data]# awk '{print}' Manager.ldif
dn: cn=peter,dc=unitetwcn,dc=ok
objectClass: organizationalRole
cn: peter

ldapadd -f Manager.ldif -D "cn=peter,dc=unitetwcn,dc=ok" -x -W
Enter LDAP Password:
adding new entry "cn=peter,dc=unitetwcn,dc=ok"

下面是加組織,當然我們可以看成是公司中的一個部門
[root@onespace data]# awk '{print}' smbnode.ldif
dn: ou=smb,dc=unitetwcn,dc=ok
objectClass: organizationalUnit
ou: smb
[root@onespace data]# ldapadd -f smbnode.ldif -D "cn=peter,dc=unitetwcn,dc=ok" -x -W
Enter LDAP Password:
adding new entry "ou=smb,dc=unitetwcn,dc=ok"




[root@onespace data]# ldapsearch -b "dc=unitetwcn,dc=ok" -x
# extended LDIF
#
# LDAPv3
# base <dc=unitetwcn,dc=ok> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# unitetwcn.ok
dn: dc=unitetwcn,dc=ok
objectClass: organization
objectClass: dcObject
o: Unite tw&cn
dc: unitetwcn

# peter, unitetwcn.ok
dn: cn=peter,dc=unitetwcn,dc=ok
objectClass: organizationalRole
cn: peter

# smb, unitetwcn.ok
dn: ou=smb,dc=unitetwcn,dc=ok
objectClass: organizationalUnit
ou: smb

# search result
search: 2
result: 0 Success

# numResponses: 4
# numEntries: 3


好長的,有占用linuxsir空間的惡意...(可能由於升級的原因,Firefox,表情加不了^^)

用下面在瀏覽器裏就可以
ldap://192.168.7.180/dc=unitetwcn,dc=ok??sub?
此時只是ldap服務,

不知道
ldaps是如何訪問


下面我們就嘗試更改samba吧
vi /etc/samba/smb.conf
(根據她有些被注釋掉的資訊,我改了如下幾個)

passdb backend = ldapsam:ldaps://127.0.0.1  (設定ldap的位址,我是同台電腦)
ldap suffix = "o=smb,dc=unitedtwcn,dc=ok" (與slapd.conf中suffix相同吧,或屬於它的一個部門也可以)
ldap admin dn="cn=peter,dc=unitetwcn,dc=ok"  (與slapd中的rootdn項相同)
ldap delete dn = no  (不能刪除dn資料)

service smb start重啟samba
启动 SMB 服务:                                                  [完成]
启动 NMB 服务:                                                  [完成]


接著要將ldap管理員peter的密碼存入 /etc/samba/secrets.tdb

smbpasswd -w peter
Setting stored password for "cn=peter,dc=unitetwcn,dc=ok" in secrets.tdb


按以上理解是
Samba以後會用"cn=peter,dc=unitetwcn,dc=ok"為賬號登入到LDAP服務器,依據
smb.conf,


計劃將samba管理者密碼寫入到ldap服務器,出現如下錯誤..

[root@onespace data]# smbpasswd -a peter
failed to bind to server ldaps://127.0.0.1 with dn="cn=peter,dc=unitetwcn,dc=ok" Error: Can't contact LDAP server
        (unknown)
Connection to LDAP server failed for the 1 try!
Connection to LDAP server failed for the 2 try!

[root@onespace data]# smbd -V
Version 3.0.20

既然它提示
failed to bind to server ldaps://127.0.0.1 with dn="cn=peter,dc=unitetwcn,dc=ok" Error: Can't contact LDAP server
我就將/etc/samba/smb.conf中的由ldaps://127.0.0.1改為ldap://127.0.0.1
passdb backend = ldapsam:ldap://127.0.0.1
ldap ssl = no
[root@onespace data]# service smb restart
关闭 SMB 服务:                                                  [完成]
关闭 NMB 服务:                                                  [完成]
启动 SMB 服务:                                                  [完成]
启动 NMB 服务:                                                  [完成]
這個過程有點慢,在幹什麽呢????
[root@onespace data]# smbpasswd -a peter
failed to bind to server ldap://127.0.0.1 with dn="cn=peter,dc=unitetwcn,dc=ok" Error: Invalid credentials

Connection to LDAP server failed for the 1 try!
Connection to LDAP server failed for the 2 try!
我再次運行了一下
smbpasswd -w peterldap
加入密碼
[root@onespace data]# smbpasswd -a peter
段错误 (core dumped)

就這樣完了...完了...
Why???

各位兄弟幫幫忙..
 楼主| 发表于 2005-12-3 18:47:26 | 显示全部楼层
kill -INT slapd

env CPPFLAGS="-I/usr/local/BerkeleyDB.4.4/include" LDFLAGS="-L/usr/local/BerkeleyDB.4.4/lib" ./configure --prefix=/usr/local/openldap --enable-tls ; make depend ; make ; make test ; make install ;
加上对tls的支持,因为新的版本的smb
只支持ldaps,而不是ldap
passdb backend = ldapsam:ldaps://127.0.0.1
重装openldap中...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-3 19:57:41 | 显示全部楼层
Dec  4 19:48:00 onespace smbd[11238]: [2005/12/04 19:48:00, 0] lib/smbldap.c:smbldap_search_suffix(1246)
Dec  4 19:48:00 onespace smbd[11238]:   smbldap_search_suffix: Problem during the LDAP search: (unknown) (Time limit exceeded)

Dec  4 19:48:15 onespace smbd[11238]: [2005/12/04 19:48:15, 0] passdb/pdb_ldap.c:ldapsam_search_one_group(1972)
Dec  4 19:48:15 onespace smbd[11238]:   ldapsam_search_one_group: Problem during the LDAP search: LDAP error: (unknown) (Time
limit exceeded)
Dec  4 19:48:30 onespace smbd[11238]: [2005/12/04 19:48:30, 0] passdb/pdb_ldap.c:ldapsam_search_one_group(1972)
Dec  4 19:48:30 onespace smbd[11238]:   ldapsam_search_one_group: Problem during the LDAP search: LDAP error: (unknown) (Time
limit exceeded)
/var/log/messages lines 16948-16960/16960 (END)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-3 22:37:25 | 显示全部楼层
[root@onespace data]# cat Manager.ldif
dn: cn=peter,dc=unitetwcn,dc=ok
objectClass: organizationalRole
cn: peter
objectClass: posixAccount
uid: peter
uidNumber: 500
gidNumber: 500
userPassword: {SSHA}LHsI2INY75BkolN0ca61JD51nQjd7LN4
homeDirectory: /home/peter
loginShell: /bin/bash


[root@onespace data]# cat lzj.ldif
dn: cn=lzj,ou=smb,dc=unitetwcn,dc=ok
cn: lzj
objectClass: posixAccount
uid: lzj
uidNumber: 502
gidNumber: 502
userPassword: {SSHA}I6RbO+HoOMPRCtJKjhI0JCOs2Q3+IncE
homeDirectory: /home/lzj
loginShell: /bin/bash
objectClass: inetorgperson
mail: lzj@unitetwcn.ok
sn: 李是谁


删除旧的,重新导入上面的ldif
备注:在做这些删除,导入的过程后发现:
随意用slapd.conf中的rootdn的rootpw密码,也可以用Manager.ldif的userPassword密码,(我故意让这两个密码不一样)如果dn是一样,效果一样.







在slapd.conf中修改访问控制如下
access to attr=userPassword
        by anonymous auth
        by self write
        by * read
access  to *
        by self write
        by users read






[root@onespace data]# ldapsearch -x -b 'dc=unitetwcn,dc=ok' -D 'cn=peter,dc=unitetwcn,dc=ok' -W -H ldaps://localhost/
Enter LDAP Password:
ldap_bind: Can't contact LDAP server (-1)

ldapsearch -x -b 'dc=unitetwcn,dc=ok' -D 'cn=lzj,dc=unitetwcn,dc=ok' -W -H ldap://localhost/
输入是可以的.

目标是
ldaps+samba

ldap
使用SSL/TLS
通过认证授权(Certificate Authority)中心发行的证书签发证书或自签发证书,选择用自签发证书。学习ldaps
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表