ubuntu 10.04下安装LDAP服务器

最近公司想将旗下的几个网站的用户信息统一,实现统一管理及帐号漫游;

 

想试试ldap能不能实现我的要求,当然了,还是看到python有python-ldap的接口;

 

当然首先要先把LDAP的服务器给搭起来,花了半天的时间,在party总是很无耻的重置google搜索信息(而百度又实在是很无能)的恶劣条件下,总算是搭好了,留下足迹给需要的同志们查看吧;;

 

我的环境:ubuntu 10.04  php环境(LAMP)即可;

安装产品:LDAP,phpldapmyadmin,python-ldap

 

1,我总是迫不及待的会先装python包,

              sudo apt-get install python-ldap  即可

        import ldap 如果没有报错就是安装成功了,

        ldap.__version__  --> '2.3.10'  我安装后是这个版本

 

2,进入正题,LDAP的安装,这里主要参考了(http://forum.ubuntu.org.cn/viewtopic.php?f=54&t=246642&start=0 )(http://doc.ubuntu.com/ubuntu/serverguide/C/openldap-server.html )

 

    1 安装相关的软件

 

sudo apt-get install slapd ldap-utils



 

    2 把需要的schemas加载到服务器上

 

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif




sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif




sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif




sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/misc.ldi

---------------------------------------------------------------------

    不要使用纯文本密码。先要用 slappasswd yourpasswd 生成加密密码 (以下示例)

$ slappasswd
New password:
Re-enter password:
{SSHA}d2BamRTgBuhC6SxC0vFGWol31ki8iq5m

    将以下有要用来root password的地方用你生成的加密密码替换

---------------------------------------------------------------------

    3 建立所需的存储数据库

        backend.example.com.ldif

 

Html代码   收藏代码
  1. # Load dynamic backend modules  
  2. dn: cn=module,cn=config  
  3. objectClass: olcModuleList  
  4. cn: module  
  5. olcModulepath: /usr/lib/ldap  
  6. olcModuleload: back_hdb  
  7.   
  8. # Database settings  
  9. dn: olcDatabase=hdb,cn=config  
  10. objectClass: olcDatabaseConfig  
  11. objectClass: olcHdbConfig  
  12. olcDatabase: {1}hdb  
  13. olcSuffix: dc=example,dc=com  
  14. olcDbDirectory: /var/lib/ldap  
  15. olcRootDN: cn=admin,dc=example,dc=com  
  16. olcRootPW: secret  
  17. olcDbConfig: set_cachesize 0 2097152 0  
  18. olcDbConfig: set_lk_max_objects 1500  
  19. olcDbConfig: set_lk_max_locks 1500  
  20. olcDbConfig: set_lk_max_lockers 1500  
  21. olcDbIndex: objectClass eq  
  22. olcLastMod: TRUE  
  23. olcDbCheckpoint: 512 30  
  24. olcAccess: to attrs=userPassword by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none  
  25. olcAccess: to attrs=shadowLastChange by self write by * read  
  26. olcAccess: to dn.base="" by * read  
  27. olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read  

     使其生效

 

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.example.com.ldi



 

   4 最后创建 frontend.example.com.ldif

 

Html代码   收藏代码
  1. # Create top-level object in domain  
  2. dn: dc=example,dc=com  
  3. objectClass: top  
  4. objectClass: dcObject  
  5. objectclass: organization  
  6. o: Example Organization  
  7. dc: Example  
  8. description: LDAP Example   
  9.   
  10. # Admin user.  
  11. dn: cn=admin,dc=example,dc=com  
  12. objectClass: simpleSecurityObject  
  13. objectClass: organizationalRole  
  14. cn: admin  
  15. description: LDAP administrator  
  16. userPassword: secret  
  17.   
  18. dn: ou=people,dc=example,dc=com  
  19. objectClass: organizationalUnit  
  20. ou: people  
  21.   
  22. dn: ou=groups,dc=example,dc=com  
  23. objectClass: organizationalUnit  
  24. ou: groups  
  25.   
  26. dn: uid=john,ou=people,dc=example,dc=com  
  27. objectClass: inetOrgPerson  
  28. objectClass: posixAccount  
  29. objectClass: shadowAccount  
  30. uid: john  
  31. sn: Doe  
  32. givenName: John  
  33. cn: John Doe  
  34. displayName: John Doe  
  35. uidNumber: 1000  
  36. gidNumber: 10000  
  37. userPassword: password  
  38. gecos: John Doe  
  39. loginShell: /bin/bash  
  40. homeDirectory: /home/john  
  41. shadowExpire: -1  
  42. shadowFlag: 0  
  43. shadowWarning: 7  
  44. shadowMin: 8  
  45. shadowMax: 999999  
  46. shadowLastChange: 10877  
  47. mail: john.doe@example.com  
  48. postalCode: 31000  
  49. l: Toulouse  
  50. o: Example  
  51. mobile: +33 (0)6 xx xx xx xx  
  52. homePhone: +33 (0)5 xx xx xx xx  
  53. title: System Administrator  
  54. postalAddress:   
  55. initials: JD  
  56.   
  57. dn: cn=example,ou=groups,dc=example,dc=com  
  58. objectClass: posixGroup  
  59. cn: example  
  60. gidNumber: 10000  

     使其生效

 

sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f frontend.example.com.ldif



 

**  查看当前的配置

 

       sudo ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config

       我的信息

 

Html代码   收藏代码
  1. 前面有很多,最后是  
  2.   
  3.   
  4.   
  5. # search result  
  6. search: 2  
  7. result: 0 Success  
  8.   
  9. # numResponses: 12  
  10. # numEntries: 11  
 

 ** 以陌生人身份查看当前目录结构下的数据

 

      ldapsearch -x -h localhost -b dc=admin,dc=example,dc=com

      我的信息

 

 

Html代码   收藏代码
  1. # extended LDIF  
  2. #  
  3. # LDAPv3  
  4. # base <dcdc=admin,dc=example,dc=com> with scope subtree  
  5. # filter: (objectclass=*)  
  6. # requesting: ALL  
  7. #  
  8.   
  9. # search result  
  10. search: 2  
  11. result: 32 No such object  
  12.   
  13. # numResponses: 1  
 

ok,ldap的基本配置基本搞定

 

3,phpldapadmin的安装

 

     同样 sudo apt-get install phpldapadmin即可

 

     用法同phpmyadmin一样,在浏览器中输入localhost/phpldapadmin即可;

 

     我在运行之后出现了一个错误:

             Unrecognized error number: 8192: Function eregi() is deprecated

 

最后在老外的BUG提交列表里找到了有用的信息:

 

 

Html代码   收藏代码
  1. Hello,  
  2.   
  3. I found a patch that is quite easy to apply:  
  4.   
  5. 1. Open /usr/share/phpldapadmin/lib/common.php  
  6. 2. Find the following lines and change variable in brakes as shown.  
  7.   
  8. Current:  
  9. =======  
  10. # We are now ready for error reporting.  
  11. error_reporting(E_ALL);  
  12.   
  13. Working:  
  14. =======  
  15. # We are now ready for error reporting.  
  16. error_reporting(E_ALL & ~E_DEPERCATED);  
  17.   
  18. Enjoy!  

 按其的步骤更改之后,成功!!!

 

点击登陆:

   DN:cn=admin,dc=example,dc=com

   密码:secret


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

long12310225

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值