·¢²©ÎÄ
liyf0371

peter1981.blog.chinaunix.net

   
¸öÈË×ÊÁÏ
  • ²©¿Í·ÃÎÊ£º635276
  • ²©ÎÄÊýÁ¿£º524
  • ²©¿Í»ý·Ö£º10496
  • ²©¿ÍµÈ¼¶£ºÉϽ«
  • ¹Ø×¢ÈËÆø£º 9
  • ×¢²áʱ¼ä£º2008-04-01 22:35:12
¶©ÔÄÎҵIJ©¿Í
  • ¶©ÔÄ
  • ¶©Ôĵ½Ïʹû
  • ¶©Ôĵ½×¥Ïº
  • ¶©Ôĵ½Google
×ÖÌå´óС£º´ó ÖРС²©ÎÄ
·ÖÀࣺ Linux


ʹÓÃÇáÁ¿¼¶Ä¿Â¼·ÃÎÊЭÒ飨LDAP£©¹¹½¨¼¯ÖеÄÉí·ÝÑé֤ϵͳ¿ÉÒÔ¼õÉÙ¹ÜÀí³É±¾£¬ÔöÇ¿°²È«ÐÔ£¬±ÜÃâÊý¾Ý¸´ÖƵÄÎÊÌ⣬²¢Ìá¸ßÊý¾ÝµÄÒ»ÖÂÐÔ¡£Ëæ×Å Linux® µÄ²»¶Ï³ÉÊ죬ÒѾ­³öÏÖÁ˺ܶ๤¾ßÓÃÀ´¼ò»¯Óû§ÕʺÅÐÅÏ¢µ½ LDAP Ŀ¼µÄÇ¨ÒÆ¡£»¹¿ª·¢ÁËһЩ¹¤¾ßÓÃÀ´ÔÚ¿Í»§»úºÍĿ¼·þÎñÆ÷Ö®¼äÆôÓüÓÃÜͨÐÅÅäÖ㬲¢Í¨¹ý¸´ÖÆÌṩÈÝ´íÐÔ¡£±¾ÎĽ«ÏòÄúչʾÈçºÎÅäÖ÷þÎñÆ÷ºÍ¿Í»§»úÔÚ Red Hat Linux ÉÏʹÓà OpenLDAP¡£

¼ò½é

Linux ·¢ÐаæÖÐÌṩµÄ OpenLDAP Èí¼þ°´ÕÕÒ»¸ö¿Í»§»ú/·þÎñÆ÷Ä£ÐÍʵÏÖÁËÇáÁ¿¼¶Ä¿Â¼·ÃÎÊЭÒ飨LDAP£©¡£LDAP µÄÉè¼ÆÄ¿µÄÊÇÌṩһÖÖÓÐЧµÄ·½·¨À´²éÕҺ͹ÜÀíÐÅÏ¢¡£OpenLDAP Èí¼þºÍ°üÌṩÁË´´½¨Ä¿Â¼ÐÅÏ¢Ê÷£¨Ò»¸öÖ÷Òª½øÐжÁ²Ù×÷µÄÊý¾Ý¿â£©µÄ¹¤¾ß¡£±¾ÎÄÏòÄúչʾÈçºÎ´æ´¢Óû§µÄÕʺÅÐÅÏ¢£¬²¢ÐÞ¸ÄÉí·ÝÑéÖ¤·þÎñÀ´Ê¹Óà LDAP »ñÈ¡ËùÐèÒªµÄÐÅÏ¢¡£ÄÚ²¿Ï¸½Ú²¢²»ÖØÒª£¬ÒòΪÕâЩ¹¤¾ß¿ÉÒÔ½«Êý¾Ý¿âµÄÄÚÈÝÒÔÎı¾¸ñʽ£¨LDAP Êý¾Ý½»»»¸ñʽ£¬LDIF£©³ÊÏÖÔÚÄúµÄÃæÇ°¡£

LDAP ÐÅÏ¢±»×éÖ¯³ÉÊôÐÔºÍÖµµÄ×éºÏ£¬³ÆÎª ÌõÄ¿£¨entry£©¡£ÌõÄ¿¿ÉÄÜ»á¾ßÓбØÐëµÄÊôÐÔ»ò¿ÉÑ¡ÊôÐÔ¡£Ò»¸öÌõÄ¿µÄÊôÐÔ±ØÐëÒª×ñÑ­ /etc/openldap/schema/ ģʽÎļþÖж¨ÒåµÄ¹æÔò¡£¹æÔò°üº¬ÔÚÌõÄ¿µÄ objectclass ÊôÐÔÖС£¿´Ò»ÏÂÏÂÃæµÄ¹ØÏµ£¬ÎÒÃÇ¿ÉÒÔ¿´³ö posixAccount objectclass Öаüº¬ÁËÃÜÂëÎļþÌõÄ¿µÄÐÅÏ¢£¨posixAccount userPassword ÊÇÎļþÌõÄ¿µÄ base64 ±àÂ룩¡£


ͼ 1. LDAP Ŀ¼ÌõÄ¿ºÍ Linux ÃÜÂëÎļþÖ®¼äµÄ¹ØÏµ
LDAP Ŀ¼ÌõÄ¿ºÍ Linux ÃÜÂëÎļþÖ®¼äµÄ¹ØÏµ

Îļþ /etc/openldap/schema/nis.schema Ϊ posixAccount ¶ÔÏóÀàÖеÄÌõÄ¿¶¨ÒåÁËËùÓеÄÊôÐÔºÍ objectclass¡£ÀýÈ磬ÏÂÃæÊÇ¶Ô uidNumber ÊôÐÔµÄÃèÊö£º

attributetype ( 1.3.6.1.1.1.1.0 NAME 'uidNumber'
   DESC 'An integer uniquely identifying a user in an administrative domain'
   EQUALITY integerMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

ËùÓеÄÊôÐÔÀàÐͶ¼ÒѾ­¶¨ÒåÁË£¬ËüÃDZ»ÊÕ¼¯µ½ posixAccount objectclass ÖС£ÀýÈ磺

objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount' SUP top AUXILIARY
   DESC 'Abstraction of an account with POSIX attributes'
   MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
   MAY ( userPassword $ loginShell $ gecos $ description ) )

ldapuser ÌõÄ¿¾ßÓÐÒ»¸öʶ±ðÃûÊôÐÔ dn£¬ËüÓÃ×÷Óû§Ãû£¬²¢Óë userPassword Ò»ÆðÓÃÀ´ÔÚ LDAP Ŀ¼ÖмǼÐÅÏ¢£¬»òÓë LDAP Ŀ¼°ó¶¨ÔÚÒ»ÆðʹÓá£

LDAP Ϊ×÷ΪÈÝÆ÷ʹÓõÄÌØÊâÌõÄ¿ÌṩÁ˽«ÕâЩÌõÄ¿×éÖ¯³ÉÊ÷½á¹¹µÄ¹¦ÄÜ¡£ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÃǽ«Ê¹ÓÃÒ»¸öÈÝÆ÷ People ±£´æÓû§ÕʺÅÐÅÏ¢£¬Ê¹ÓÃÁíÍâÒ»¸öÈÝÆ÷ Groups ±£´æ×éÕʺÅÐÅÏ¢¡£ËùÉú³ÉµÄĿ¼ÐÅÏ¢Ê÷Èçͼ 2 Ëùʾ¡£


ͼ 2. Óû§ÕʺÅÐÅϢʹÓõÄĿ¼ÐÅÏ¢Ê÷
Óû§ÕʺÅÐÅϢʹÓõÄĿ¼ÐÅÏ¢Ê÷

ÈÃÎÒÃÇÀ´¿´Ò»ÏÂÈçºÎÅäÖà OpenLDAP ·þÎñÆ÷£¬ÈçºÎ½«ÐÅÏ¢´ÓϵͳÎļþÇ¨ÒÆµ½ LDAP Ŀ¼ÖУ¬ÈçºÎÅäÖà OpenLDAP ¿Í»§»úͨ¹ý LDAP ¶ÔÓû§½øÐÐÉí·ÝÑéÖ¤¡£ÔÚʹÓÃÒ»¸ö¼¯ÖеÄÉí·ÝÑéÖ¤Êý¾Ý¿âʱ£¬Ó¦¸Ãͨ¹ýʹÓø´ÖƼ¼Êõ²ÉÓõڶþ¸ö LDAP ·þÎñÆ÷Ìṩ¸ß¿ÉÓÃÐÔ£¬ÕâÑùÔÚÖ÷·þÎñÆ÷³öÏÖÎÊÌâʱ£¬¾Í¿ÉÒÔʹÓõڶþ¸ö LDAP ·þÎñÆ÷ÏìÓ¦¿Í»§»úµÄÇëÇó¡£ÓÉÓÚÖîÈçÃÜÂëÖ®ÀàµÄÉí·ÝÑéÖ¤Êý¾Ý»áͨ¹ýÍøÂç½øÐд«Ê䣬Òò´ËÏ£ÍûʹÓà TSL ЭÒ齨Á¢¼ÓÃÜͨÐÅÁ¬½Ó¡£

ÎÒÃÇµÄ OpenLDAP ·þÎñÆ÷ºÍ¿Í»§»ú¶¼ÊÇÐéÄâ»ú£¬ÉÏÃæÔËÐеÄÊÇ Red Hat Enterprise Linux AS release 4£¨Nahant Update 1£©¡£ÔÚÎÒÃǵÄÀý×ÓÖÐʹÓÃÁË ±í 1 ËùÁгöµÄϵͳ¡£Èç¹ûÏëÄ£·ÂÕâЩÀý×Ó£¬ÇëʹÓÃÊʺÏÄú×Ô¼ºµÄÉèÖá£


±í 1. ÏµÍ³ÍøÂçÐÅÏ¢
½ÇÉ« Ö÷»úÃû IP µØÖ·
OpenLDAP Ö÷·þÎñÆ÷ dhcp64-233.ibm.com 9.47.64.233
OpenLDAP ´Ó·þÎñÆ÷ dhcp64-253.ibm.com 9.47.64.253
OpenLDAP ¿Í»§»ú dhcp64-251.ibm.com 9.47.64.251





»ØÒ³Ê×


ÅäÖà LDAP ·þÎñÆ÷

ÎÒÃÇʹÓà Red Hat Enterprise Linux release 4 Update 1 ÉϵİüÀ´¹¹½¨·þÎñÆ÷£º

  • openldap-2.2.13-2£º°üº¬ OpenLDAP ÅäÖÃÎļþ¡¢¿âºÍÎĵµ
  • openldap-servers-2.2.13-2£º°üº¬ slapd ºÍ slurpd ·þÎñÆ÷¡¢Ç¨Òƽű¾ºÍÏà¹ØÎļþ
  • openldap-clients-2.2.13-2£º°üº¬¿Í»§»ú³ÌÐò£¬ÓÃÀ´·ÃÎʺÍÐÞ¸Ä OpenLDAP Ŀ¼

OpenLDAP °üÔÚ·þÎñÆ÷Éϰ²×°Á˺ܶà³ÌÐò£º

  • ÊØ»¤½ø³Ì£º
    • slapd£ºÖ÷ LDAP ·þÎñÆ÷
    • slurpd£º¸ºÔðÓë¸´ÖÆ LDAP ·þÎñÆ÷±£³Öͬ²½µÄ·þÎñÆ÷
  • ¶ÔÍøÂçÉϵÄĿ¼½øÐвÙ×÷µÄ¿Í»§»ú³ÌÐò¡£ÏÂÃæÕâÁ½¸ö³ÌÐòÊÇÒ»¶Ô¶ù£º
    • ldapadd£º´ò¿ªÒ»¸öµ½ LDAP ·þÎñÆ÷µÄÁ¬½Ó£¬°ó¶¨¡¢Ð޸ĻòÔö¼ÓÌõÄ¿
    • ldapsearch£º´ò¿ªÒ»¸öµ½ LDAP ·þÎñÆ÷µÄÁ¬½Ó£¬°ó¶¨²¢Ê¹ÓÃÖ¸¶¨µÄ²ÎÊý½øÐÐËÑË÷
  • ¶Ô±¾µØÏµÍ³ÉϵÄÊý¾Ý¿â½øÐвÙ×÷µÄ¼¸¸ö³ÌÐò£º
    • slapadd£º½«ÒÔ LDAP Ŀ¼½»»»¸ñʽ£¨LDIF£©Ö¸¶¨µÄÌõÄ¿Ìí¼Óµ½ LDAP Êý¾Ý¿âÖÐ
    • slapcat£º´ò¿ª LDAP Êý¾Ý¿â£¬²¢½«¶ÔÓ¦µÄÌõÄ¿Êä³öΪ LDIF ¸ñʽ

OpenLDAP µÄÖ÷Òª·þÎñÆ÷ÅäÖÃÎļþÊÇ /etc/openldap/slapd.conf¡£±¾ÀýËùʹÓõÄÍêÕû slapd.conf ÎļþÈç Çåµ¥ 18 Ëùʾ¡£slapd.conf ÎļþÖаüÀ¨Ò»ÏµÁÐÈ«¾ÖÅäÖÃÑ¡ÏËüÃÇ×÷Ϊһ¸öÕûÌåÓ¦Óõ½ slapd ÉÏÃæ£¬ºóÃæÊǰüº¬Êý¾Ý¿âÌØÓÐÐÅÏ¢µÄÊý¾Ý¿âºó¶Ë¶¨Òå¡£Èç¹ûÒ»ÐÐÄÚÈÝÊÇÒÔ¿Õ¸ñ¿ªÊ¼µÄ£¬¾ÍÈÏΪËüÊÇÉÏÒ»ÐеÄÑÓÐø¡£¿ÕÐкÍÒÔ ¡°#¡± ×Ö·û¿ªÍ·µÄ×¢ÊÍÐж¼»á±»ºöÂÔ¡£

Èç¹ûÄúÕý°Ñ±¾Îĵ±×÷Á·Ï°À´×ö£¬ÄǾͿÉÒÔ°´ÕÕÏÂÃæÖ¸¶¨µÄ·½Ê½½øÐÐÐ޸쬴ӶøÆô¶¯ LDAP ·þÎñÆ÷¡£Ò»µ©È·ÈÏ·þÎñÆ÷Õý³£¹¤×÷Ö®ºó£¬¾Í¿ÉÒÔÌí¼Ó¸´Öƹ¦ÄÜ£¬È»ºóÔÙÌí¼Ó°²È«ÐÔÖ§³Ö¡£Ê×ÏÈÊÇÈ«¾ÖÅäÖÃÐÅÏ¢¶ÎµÄÉèÖá£ÆäÖÐÿ¸öÑ¡ÏîµÄÖµ¶¼ÊÇÎÒÃÇÏëÒªµÄ¡£

ÕýÈçÉÏÃæ½éÉܵÄÒ»Ñù£¬ÐÅÏ¢±»×éÖ¯³ÉÊôÐÔºÍÖµµÄ×éºÏ£¬³ÆÎªÌõÄ¿¡£ÌõÄ¿ÊôÐÔ±ØÐë×ñÑ­µÄ¹æÔòÊÇʹÓà objectclass רÓÃÊôÐÔ½øÐÐ×éÖ¯µÄ£¬Õâ¿ÉÒÔÔÚ /etc/openldap/schema/ ģʽÎļþÖÐÕÒµ½¡£¶ÔÓÚÉí·ÝÑéÖ¤À´Ëµ£¬ÐèҪʹÓÃÔÚ nis.schema Öж¨ÒåµÄ posixAccount ºÍ shadowAccount objectclasses£º

include /etc/openldap/schema/nis.schema

loglevel ÐÐÉèÖõÄÊÇÈÕ־ѡÏî¡£¿ÉÒÔ½«ÆäÉèÖÃΪÕâÑùµÄ¼¶±ð£ºµ÷ÊÔÓï¾äºÍ²Ù×÷ͳ¼ÆÐÅÏ¢¶¼»á±»¼Ç¼µ½ /var/log/slapd.log ÖС£ÈÕÖ¾¼¶±ðÊÇÀۼӵģº296 = 256 ÈÕÖ¾Á¬½Ó/²Ù×÷/½á¹û + 32 ËÑË÷¹ýÂËÆ÷´¦Àí + 8 Á¬½Ó¹ÜÀí£º

loglevel 296

ÈÕÖ¾ÐÅÏ¢»á±»¼Ç¼µ½ syslogd LOG_LOCAL4 »úÖÆÖС£»¹ÐèÒª½«ÏÂÃæµÄÄÚÈÝÌí¼Óµ½ /etc/syslog.conf ÖУ¬²¢Èà syslogd ÖØÐ¶ÁÈ¡×Ô¼ºµÄÅäÖÃÎļþ£º

local4.debug /var/log/slapd.log

access Ðж¨ÒåÁËË­¿ÉÒÔ·ÃÎÊĿ¼ÖеÄÄÚÈÝ¡£ÎÒÃÇÏ£ÍûÓû§¿ÉÒÔÐÞ¸Ä×Ô¼ºµÄÃÜÂ룬²¢¸üÐÂ×Ô¼ºµÄ shadow ÐÅÏ¢À´·´Ó³ÃÜÂëµÄ±ä»¯¡£Ï£ÍûÉí·ÝÑéÖ¤³ÌÐòÄܹ»¼ìË÷Óû§µÄÃÜÂë¡£»¹Ï£ÍûÓû§Äܹ»¶ÁÈ¡ËùÓÐÆäËûÌõÄ¿¡£×¢ÒâÃÜÂëÌõÄ¿ÊDz»¿É¶ÁµÄ£¬shadow ÊôÐÔµÄΩһÓô¦¾ÍÊǹÜÀíÃÜÂëµÄ¹ýÆÚÎÊÌâ¡£

access to attrs=shadowLastChange,userPassword
      by self write
      by * auth

access to *
      by * read

½ÓÏÂÀ´£¬ÔÚ database ²¿·Ö£¬Òª¶¨ÒåÏÂÃæµÄÄÚÈÝ¡£

ʹÓÃÐ嵀 bdb ºó¶ËÊý¾Ý¿â£º

database bdb

Ö¸¶¨ºó¶ËÊý¾Ý¿âÐèÒªÏìÓ¦µÄ²éѯµÄ DN ǰ׺¡£ÎªÁËÈ·±£Î©Ò»ÐÔ£¬¸ùǰ׺Ӧ¸Ã´Ó×Ô¼ºµÄÍøÂçÓòÃû¹¹½¨³öÀ´¡£ÔÚ±¾ÀýµÄÇé¿öÖУ¬ËüÊÇ .dc=svc,dc=beaverton,dc=ibm,dc=com.£¬µ«ÊÇÔÚÏÂÃæµÄÀý×ÓÖÐÎÒÃÇ¶ÔÆä½øÐÐÁ˼ò»¯£º

suffix "dc=ibm,dc=com"

Ö¸¶¨¹ÜÀí DN£¬Ëü²»ÓÃÓÚ·ÃÎÊ¿ØÖÆ»òÏÞÖÆÊý¾Ý¿âµÄ²Ù×÷¡£Ò²²»ÐèÒªÔÚĿ¼ÖÐΪÕâ¸ö DN Ö¸¶¨Ò»¸öÌõÄ¿¡£Îª¾ßÓÐ rootpw ÃÜÂëµÄ¹ÜÀíԱʹÓà DN ¿ÉÒÔÌø¹ý ACL ¹æÔòÖеÄËùÓзÃÎÊ¿ØÖÆ£º

rootdn "cn=Manager,dc=ibm,dc=com"
rootpw {MD5}ijFYNcSNctBYg

Õâ¾ÍÊÇÎÒÃÇÏÖÔÚÏëÒªÉèÖõÄÑ¡Ïî¡£ÉԺ󽫷µ»Ø slapd.conf ÎļþÀ´ÅäÖø´ÖÆ£¬È»ºóÔÚÅäÖð²È«ÐÔ¡£

ÏÖÔÚ£¬ÎÒÃÇÏ£Íû½«Êý¾ÝÌí¼Óµ½Ä¿Â¼ÖУ¬²¢È·ÈÏ¿ÉÒÔ·ÃÎÊÕâЩÐÅÏ¢¡£ÒªÊµÏÖÕâÖÖ¹¦ÄÜ£¬ÐèÒªÅäÖ÷þÎñÆ÷À´Ê¹Óà ldap ¿Í»§»ú¹¤¾ß£¬ÀýÈç ldapadd ºÍ ldapsearch¡£ldap ¿Í»§»ú¹¤¾ßµÄÅäÖÃÎļþÊÇ /etc/openldap/ldap.conf¡£ÎÒÃÇʹÓõÄÕâ¸öÎļþµÄÍêÕûÁбíÈç±¾ÎÄĩβµÄ Çåµ¥ 19 Ëùʾ¡£ÒªÔÚ ldap ·þÎñÆ÷ÉÏÔËÐÐÕâЩ¹¤¾ß£¬Ö»ÐèÒª½«¸ÃÐÐÐ޸ijÉÏÂÃæµÄÄÚÈÝ£º

BASE dc=ibm,dc=com

ÉèÖÃÆô¶¯½Å±¾ÔÚ¼¶±ð 2¡¢3 ºÍ 5 ʱÆô¶¯ LDAP£º


Çåµ¥ 1. ÉèÖÃÆô¶¯ÔËÐм¶±ð
# chkconfig --levels 235 ldap on

´ÓÃüÁîÐÐÖÐÆô¶¯·þÎñ£º


Çåµ¥ 2. Æô¶¯·þÎñ
# service ldap start
Starting slapd:                               [  OK  ]

OpenLDAP ÊØ»¤½ø³Ì slapd Ó¦¸ÃÒѾ­ÔËÐÐÁË£º


Çåµ¥ 3. ¼ì²é·þÎñÕýÔÚÔËÐÐ
# ps -ef | grep slap
ldap   13521  1  0 Oct24 ?     00:00:00 /usr/sbin/slapd -u ldap -h ldap:/// ldaps:///

ldapsearch -x ÃüÁîÓ¦¸Ã¿ÉÒԳɹ¦Íê³É£¬µ«²»»á·µ»ØÈκÎÊý¾Ý¡£





»ØÒ³Ê×


Ç¨ÒÆÃÜÂëºÍ shadow ÐÅÏ¢

Red Hat ËùÌṩµÄ openldap-servers °ü°üº¬ PADL Software Pty Ltd. ¹«Ë¾µÄ MigrationTools ¹¤¾ß¡£ÎÒÃǽ«Ê¹ÓÃÕâЩ¹¤¾ß½«Êý¾Ý´Ó Linux ϵͳÎļþ£¨ÀýÈç /etc/group ºÍ /etc/password£©×ª»»³É LDAP LDIF ¸ñʽ£¬ÕâÊÇÊý¾Ý¿âÐÅÏ¢µÄÒ»ÖÖÎı¾¸ñʽµÄ±íʾ¡£ÕâÖÖ¸ñʽÊÇÐн綨¡¢Ã°ºÅ·Ö¸ôµÄÊôÐÔ-Öµ¶Ô¡£

ÓÐÒ»×é Perl ½Å±¾±»°²×°µ½ /usr/share/openldap/migration/ ÖÐÖ´ÐÐÇ¨ÒÆ¡£ÕâЩ Perl ½Å±¾µÄÅäÖÃÐÅÏ¢°üº¬ÔÚ migrate_common.ph ÎļþµÄ¿ªÍ·¡£¶ÔÓÚÎÒÃǵÄÄ¿µÄÀ´Ëµ£¬Ö»ÐèÒªÐÞ¸ÄÃüÃûǰ׺µÄ±äÁ¿À´Ê¹ÓÃÌõÄ¿µÄʶ±ðÃû¾Í×ã¹»ÁË£¬ÈçÏÂËùʾ£º

$DEFAULT_BASE = "dc=ibm,dc=com"

ÔÚ½øÐÐÕâЩÐÞ¸ÄÖ®ºó£¬ÇëÔËÐнű¾ migrate_base.pl£¬Ëü»á´´½¨¸ùÏ²¢Îª Hosts¡¢Networks¡¢Group ºÍ People µÈ´´½¨µÍÒ»¼¶µÄ×éÖ¯µ¥Ôª£º


Çåµ¥ 4. ÔËÐÐ migrate_base.pl
# migrate_base.pl > base.ldif

±à¼­ base.ldif£¬É¾³ý³ýÏÂÃæÖ®ÍâµÄËùÓÐÌõÄ¿£º


Çåµ¥ 5. base.ldif ÌõÄ¿
# cat base.ldif
dn: dc=ibm,dc=com
dc: ibm
objectClass: top
objectClass: domain

dn: ou=People,dc=ibm,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=ibm,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit

ÔÚ LDAP ·þÎñÆ÷ÉÏ£¬Ê¹Óà OpenLDAP ¿Í»§»ú¹¤¾ß ldapadd ½«ÒÔÏÂÌõÄ¿²åÈëµ½Êý¾Ý¿âÖС£¼òµ¥Éí·ÝÑéÖ¤±ØÐëҪʹÓà -x Ñ¡ÏîÖ¸¶¨¡£ÔÚ slapd.conf Öж¨ÒåµÄ rootdn Éí·ÝÑé֤ʶ±ðÃûÊÇ ¡°cn=Manager,dc=ibm,dc=com¡±¡£¶ÔÓÚ¼òµ¥Éí·ÝÑéÖ¤À´Ëµ£¬±ØÐëʹÓÃÃÜÂ롣ѡÏî -W Ç¿ÖÆÌáʾÊäÈëÃÜÂë¡£Õâ¸öÃÜÂë¾ÍÊÇÔÚ slapd.conf ÎļþÖÐÖ¸¶¨µÄ rootpw ²ÎÊýµÄÖµ¡£°üº¬ÕâЩÌõÄ¿µÄ LDIF ÎļþÊÇʹÓà -f Ñ¡ÏîÖ¸¶¨µÄ£º


Çåµ¥ 6. ʹÓà ldapadd ²åÈëÌõÄ¿
# ldapadd -x -D "cn=Manager,dc=ibm,dc=com" -W -f base.ldif

½ÓÏÂÀ´£¬´Ó /etc/group ÖÐÇ¨ÒÆ ldapuser ×飺


Çåµ¥ 7. Ç¨ÒÆ ldapuser ×é
# grep ldapuser /etc/group > group.in
# ./migrate_group.pl group.in > group.ldif

#  cat group.ldif
dn: cn=ldapuser,ou=Group,dc=ibm,dc=com
objectClass: posixGroup
objectClass: top
cn: ldapuser
userPassword: {crypt}x
gidNumber: 500

# ldapadd -x -D "cn=Manager,dc=ibm,dc=com" -W -f group.ldif

×îºó£¬´Ó /etc/passwd ºÍ /etc/shadow ÖÐÇ¨ÒÆ ldapuser µÄÐÅÏ¢£º


Çåµ¥ 8. Ç¨ÒÆ ldapuser ÐÅÏ¢
# grep ldapuser /etc/passwd > passwd.in
# ./migrate_passwd.pl passwd.in > passwd.ldif

# cat passwd.ldif
dn: uid=ldapuser,ou=People,dc=ibm,dc=com
uid: ldapuser
cn: ldapuser
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt$1$TeOlOcMc$cpQaa0WpLSFRC1HIHW5bt1
shadowLastChange: 13048
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 500
gidNumber: 500
homeDirectory: /home/ldapuser
gecos: ldapuser

# ldapadd -x -D "cn=Manager,dc=ibm,dc=com" -W -f passwd.ldif

ÏÖÔÚ¼ì²éÒѾ­Ìí¼Óµ½Êý¾Ý¿âÖеÄÐÅÏ¢¡£Çåµ¥ 9 ¸ø³öÁËÈ«²¿Êä³ö½á¹û£º


Çåµ¥ 9. ÒÔ LDIF ¸ñʽÌî³äµÄ OpenLDAP Êý¾Ý¿â
# ldapsearch -x

# extended LDIF
#
# LDAPv3
# base <> with scope sub
# filter: (objectclass=*)
# requesting: ALL
#

# ibm.com
dn: dc=ibm,dc=com
dc: ibm
objectClass: top
objectClass: domain

# People, ibm.com
dn: ou=People,dc=ibm,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit

# Group, ibm.com
dn: ou=Group,dc=ibm,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit

# ldapuser, Group, ibm.com
dn: cn=ldapuser,ou=Group,dc=ibm,dc=com
objectClass: posixGroup
objectClass: top
cn: ldapuser
gidNumber: 500

# ldapuser, People, ibm.com
dn: uid=ldapuser,ou=People,dc=ibm,dc=com
uid: ldapuser
cn: ldapuser
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 500
gidNumber: 500
homeDirectory: /home/ldapuser
gecos: test2

# search result
search: 2
result: 0 Success

# numResponses: 6
# numEntries: 5





»ØÒ³Ê×


ÅäÖÃ LDAP ¿Í»§»ú

ÓÃÀ´ÉèÖÿͻ§»úµÄ Red Hat Enterprise Linux release 4 Update 1 °ü°üÀ¨£º

  • nss_ldap-226-6£º°üÀ¨Á½¸ö LDAP ·ÃÎʿͻ§»ú£ºnss_ldap ºÍ pam_ldap
    • nss_ldap ÊÇÒ»×é C ¿âÀ©Õ¹£¬ËüÔÊÐí LDAP Ŀ¼·þÎñÆ÷ÓÃ×÷Ò»¸öÓû§ºÍ×éÐÅÏ¢µÄÖ÷Ô´
    • pam_ldap ÊÇÒ»¸ö Linux-PAM Ä£¿é£¬ËüÖ§³ÖÉí·ÝÑéÖ¤¹¦ÄÜ

LDAP Éí·ÝÑéÖ¤ÒªÏëÕýÈ·µØ¹¤×÷£¬ÐèÒªÅäÖÃÁ½¸ö·þÎñ£ºÏµÍ³ÃüÃû·þÎñºÍÉí·ÝÑéÖ¤·þÎñ¡£

ϵͳÃüÃû·þÎñ£¨NSS£©ÐèÒªÅäÖÃΪʹÓà LDAP À´½âÎöÖîÈçÓû§ºÍ×éÕʺÅÖ®ÀàµÄ×ÊÔ´¡£ÀýÈ磬ÔÚÔËÐÐÃüÁî ls -l ʱ£¬Èç¹ûij¸öÎļþ inode ¸ø³öÎļþµÄËùÓÐÕßÊÇ ¡°user 501¡±£¬ÄÇôÃüÃû·þÎñ¾ÍÐèÒª½« ¡°uid 501¡± ½âÎö³ÉÓû§Ãû£¬²¢ÔÚ ls ÃüÁîÊä³ö½á¹ûÖÐÊä³ö¡£Í¨³£À´Ëµ£¬ÕâÊÇͨ¹ý²éÕÒ /etc/passwd ÎļþÖеÄËùÓÐÓû§ÕʺÅʵÏֵġ£ÓÉÓÚÓû§ÏÖÔÚ¶¼´æ´¢ÔÚ LDAP Ŀ¼ÖУ¬Òò´ËϵͳÐèÒªÅäÖóÉͬʱ¶Ô passwd ÎļþºÍ LDAP Ŀ¼ÖеÄÕʺŽøÐнâÎö¡£ÕâÖÖ¹¦ÄÜÊÇͨ¹ý /usr/lib/libnss_ldap.so ¿âÌṩµÄ¡£

Éí·ÝÑéÖ¤·þÎñÊÇʵ¼ÊÏò LDAP ÑéÖ¤Óû§Éí·ÝµÄ·þÎñ¡£¿É²åÈëÉí·ÝÑé֤ģ¿é£¨PAM£©ÌṩÁ˱¾µØ Linux Éí·ÝÑéÖ¤·þÎñ¡£ÏÂÃæÎÒÃǽ«ÅäÖà PAM ÏȶԱ¾µØµÄ /etc/passwd Îļþ¼ì²éÓû§Õʺţ¬È»ºóÔÙ¶Ô LDAP ·þÎñÆ÷½øÐмì²é¡£PAM LDAP Ä£¿é¿ÉÒÔÓÃÀ´½«Éí·ÝÑéÖ¤ÖØ¶¨Ïòµ½ LDAP Ŀ¼ÉÏ¡£/lib/security/pam_ldap.so PAM Ä£¿éÌṩÁË LDAP Éí·ÝÑéÖ¤¹¦ÄÜ¡£

Éí·ÝÑéÖ¤±¾ÉíÊÇÓÉ PAM ³ÌÐòÖ´Ðеģ¬Ëü´ÓÉí·ÝÑéÖ¤ºòÑ¡»úÖÆÖлñÈ¡Óû§Ãû£¬½«Æä°ó¶¨µ½ OpenLDAP ·þÎñÆ÷ÉÏ£¬¼ìË÷ÓëÕâ¸ö uid ÌõÄ¿£¨Óû§ÃûÌõÄ¿£©Ïà¹ØµÄ DN£»´ÓÉí·ÝÑéÖ¤ºòÑ¡»úÖÆÖлñÈ¡ÃÜÂ룬ȻºóʹÓÃÕâ¸ö DN ºÍÃÜÂëÊÔͼ½«Æä°ó¶¨µ½ OpenLDAP ·þÎñÆ÷ÉÏ¡£Èç¹û°ó¶¨³É¹¦£¬PAM »á±¨¸æËµÕâ¸öÓû§ÒѾ­³É¹¦Í¨¹ýÁË pam_ldap.so ÌṩµÄÉí·ÝÑéÖ¤²âÊÔ¡£¸ù¾Ý PAM µÄÅäÖò»Í¬£¬ÔÚÓû§¿´µ½ÃüÁîÐÐÌáʾ·û֮ǰ¿ÉÄÜ»áÖ´ÐÐÆäËû²âÊÔ¡£

ÎÒÃÇ¿ÉÒÔ²ÉÓÃÁ½ÖÖ·½·¨À´ÅäÖà LDAP ¿Í»§»ú¡£Ò»ÖÖ¿ìËÙ¶ø¼òµ¥µÄ·½·¨ÊÇÔËÐÐ /usr/sbin/authconfig£¬²¢ÔÚÁ½¸öÆÁÄ»ÖÐÊäÈëÐÅÏ¢¡£ÁíÍâÒ»ÖÖ·½·¨ÊÇͨ¹ý±à¼­¿Í»§»ú LDAP ÅäÖÃÎļþ /etc/ldap.conf£¬È»ºóÐÞ¸Ä /etc/nsswitch.conf¡¢/etc/sysconfig/authconfig ºÍ /etc/pam.d/system-auth¡£Ê×ÏÈÈÃÎÒÃÇÀ´¿´Ò»ÏÂÈçºÎÔËÐÐ authconfig¡£

Èçͼ 3 Ëùʾ½øÐÐÑ¡Ôñ£¬È»ºóµã»÷ Next¡£


ͼ 3. Ö´ÐÐ authconfig ÃüÁîµÄµÚÒ»¸öÒ³Ãæ
Ö´ÐÐ authconfig ÃüÁîµÄµÚÒ»¸öÒ³Ãæ

ÔÚÈçͼ 4 ËùʾµÄµÚ¶þ¸öÆÁÄ»ÖÐÊäÈë¶ÔÓ¦µÄÐÅÏ¢£¬È»ºóµã»÷ OK¡£


ͼ 4. Ö´ÐÐ authconfig ÃüÁîµÄµÚ¶þ¸öÒ³Ãæ
Ö´ÐÐ authconfig ÃüÁîµÄµÚ¶þ¸öÒ³Ãæ

ÒªÊÖ¹¤ÅäÖà OpenLDAP ¿Í»§»ú£¬Çë×ñÑ­ÏÂÃæµÄ²½Öè¡£

ÓÃÀ´¸ú×ÙÌØ¶¨Éí·ÝÑéÖ¤»úÖÆÊÇ·ñÒѾ­ÆôÓõÄÎļþÊÇ /etc/sysconfig/¡£ÎÒÃÇ¿ÉÒÔÏ£ÍûÒÔÏÂÌõÄ¿µÄÖµ¶¼ÊÇ ¡°yes¡±£º

USELDAP=yes
USELDAPAUTH=yes
USEMD5=yes
USESHADOW=yes
USELOCAUTHORIZE=yes

PAM ºÍ NSS Ä£¿éʹÓõĻù±¾ÅäÖÃÎļþÊÇ /etc/ldap.conf¡£host Ñ¡ÏîÖ¸¶¨ LDAP ·þÎñÆ÷£¬base Ñ¡ÏîÖ¸¶¨Õâ¸öĿ¼ʹÓÃµÄ DN£¬×î³õÎÒÃÇÏ£Íû¹Ø±Õ¼ÓÃܹ¦ÄÜ£º

host dhcp64-233.ibm.com
base dc=ibm,dc=com
ssl off

ÒªÈà NSS ·þÎñʹÓà OpenLDAP ·þÎñÆ÷£¬ÐèÒª½« ¡°ldap¡± Ìí¼Óµ½ /etc/nsswitch.conf ÎļþµÄ passwd¡¢shadow ºÍ group ÐÐÖУ¬ÈçÏÂËùʾ£º

passwd: files ldap
shadow: files ldap
group: files ldap

ÒªÈà PAM Éí·ÝÑéÖ¤·þÎñʹÓà OpenLDAP ·þÎñÆ÷£¬Ç뽫 pam_ldap ÐмÓÈëµ½ /etc/pam.d/system-auth ÖУ¬Î»ÖÃÔÚ¶ÔÓ¦µÄ±ê×¼ pam_unix.so ÌõĿ֮ºó¡£¾¡¹ÜÆäËûÉèÖÃÒ²¿ÉÒÔʵÏÖÏàͬµÄ½á¹û£¬µ«ÊÇÎÒʹÓÃÏÂÃæµÄÎļþÉèÖãº

auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth sufficient /lib/security/$ISA/pam_ldap.so use_first_pass
auth required /lib/security/$ISA/pam_deny.so

account required /lib/security/$ISA/pam_unix.so broken_shadow
account sufficient /lib/security/$ISA/pam_localuser.so
account sufficient /lib/security/$ISA/pam_succeed_if.so uid %lt; 100 quiet
account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_ldap.so
account required /lib/security/$ISA/pam_permit.so

password requisite /lib/security/$ISA/pam_cracklib.so retry=3
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password sufficient /lib/security/$ISA/pam_ldap.so use_authtok
password required /lib/security/$ISA/pam_deny.so

session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so
session optional /lib/security/$ISA/pam_ldap.so

ÏÖÔÚ£¬Óû§ÕʺÅÐÅÏ¢¿ÉÒÔ´Ó¿Í»§»úϵͳÖÐɾ³ý²¢´Ó LDAP Ŀ¼ÖнøÐлñÈ¡ÁË¡£µ±Óû§ÊÔͼµÇ¼¿Í»§»úϵͳʱ£¬PAM Éí·ÝÑéÖ¤·þÎñ¾Í»á´ÓÓû§ÄÇÀï»ñÈ¡Óû§Ãû£¬ÔÚÎÒÃǵÄÀý×ÓÖÐÊÇ ldapuser¡£PAM »á´Ó LDAP ·þÎñÆ÷ÖмìË÷ʶ±ðÃû£¨DN£©ÌõÄ¿ .dn: uid=ldapuser, ou=People, dc=ibm, dc=com.¡£PAM È»ºó»á´ÓÓû§ÄÇÀï»ñÈ¡ÃÜÂ롣Ȼºó PAM ÊÔͼʹÓÃÕâ¸ö DN ºÍÃÜÂëÓë LDAP ·þÎñÆ÷½øÐа󶨡£DN ºÍÃÜÂë¶¼ÒÔÕýÎÄÎı¾µÄ¸ñʽ·¢Ë͸ø LDAP ·þÎñÆ÷¡£ÔÚ¶ÔÃÜÂë½øÐÐÉ¢ÁвÙ×÷Ö®ºó£¬Èç¹û·þÎñÆ÷¿ÉÒÔÈÃÓû§µÇ¼£¬¾Í»áÏò PAM ±¨¸æËµÒѾ­³É¹¦½øÐÐÁ˰󶨡£³É¹¦°ó¶¨¿ÉÒÔÍêÈ«Âú×ã PAM ¶Ô pam_ldap Ä£¿é»ã±¨³É¹¦µÄ±ê×¼£¬Èç¹ûËùÓÐÆäËû PAM ±ê×¼¶¼ÒѾ­Âú×ãÁË£¬ÄÇô¾ÍÔÊÐíÓû§µÇ¼µ½ÏµÍ³ÖС£

µ± LDAP ·þÎñÆ÷¶ÔÉí·ÝÑéÖ¤½øÐд¦Àíʱ£¬ÐèÒª½â¾öÁíÍâÁ½¸öÎÊÌâ²ÅÄÜÂú×ãÌṩ¿É¿¿°²È«µÄÉí·ÝÑéÖ¤µÄÄ¿±ê¡£ÏÖÔÚ£¬Èκοͻ§»úϵͳ²»Äܳɹ¦µØÓë LDAP ·þÎñÆ÷½øÐÐͨÐŶ¼»á×èÖ¹Óû§µÇ¼¿Í»§»úϵͳ¡£ÔÚÏÂÒ»½ÚÖÐÎÒÃǽ«¿´µ½ÈçºÎÏû³ýÕâÖÖµ¥µã¹ÊÕÏ£¬Õ⽫ÏÔʾ¿Í»§»úÈçºÎ´Ó±¸·Ý·þÎñÆ÷ÉÏ·ÃÎÊ LDAP Ŀ¼¡£ÓÉÓÚÓû§ÃÜÂëÊÇÔÚÍøÂçÉÏÒÔÕýÎÄÎı¾¸ñʽ´«ÊäµÄ£¬Òò´ËÕâ²¢²»ÄÜÂú×㰲ȫÉí·ÝÑéÖ¤µÄÐèÇó¡£ÅäÖà TLS °²È«ÐÔ ½«½â¾öÕâ¸öÎÊÌâ¡£





»ØÒ³Ê×


ÅäÖø´ÖÆ

ΪÁË·ÀÖ¹³öÏÖ¿Í»§»úÓÉÓÚ LDAP ·þÎñÆ÷µÄÎÊÌâ¶ø²»ÄܵǼµÄÇé¿ö£¬ÎÒÃÇÐèÒª²ÉÓø´ÖƼ¼ÊõÀ´ÊµÏÖ¿É¿¿ÐÔÄ¿±ê¡£¸´ÖÆÊÇͨ¹ý OpenLDAP ¸´Öƽø³Ì slurpd ÌṩµÄ£¬Ëü»áÖÜÆÚÐԵػ½ÐÑ£¬²¢¼ì²éÖ÷·þÎñÆ÷ÉϵÄÈÕÖ¾Îļþ£¬´Ó¶øÈ·¶¨ÊÇ·ñÓÐÈκθüС£ÕâЩ¸üÐÂÈ»ºó»á´«²¥µ½´Ó·þÎñÆ÷ÉÏ¡£¶ÁÇëÇó¿ÉÒÔÓÉÈκÎÒ»¸ö·þÎñÆ÷½øÐнâÎö£¬¶ø¸üÐÂÇëÇóÔòÖ»ÄÜÓÉÖ÷·þÎñÆ÷½øÐнâÎö¡£¿Í»§»úÐèÒª¸ºÔðÔÚÍÆ¼öµØÖ·ÉÏÖØÊÔ¸üвÙ×÷¡£

ÒªÅäÖø´ÖÆ£¬ÐèҪֹͣ OpenLDAP ·þÎñÆ÷µÄ slapd ÊØ»¤½ø³Ì£º


Çåµ¥ 10. Í£Ö¹·þÎñ
# service ldap stop

½«ÒÔÏÂÄÚÈÝÌí¼Óµ½·þÎñÆ÷µÄ /etc/openldap/slapd.conf ÎļþÖУ¬´Ó¶øÆôÓöÔдӷþÎñÆ÷µÄ¸´ÖÆ¡£replogfile ÐеÄÄÚÈÝÖ¸¶¨Àà LDIF ±ä»¯Ó¦¸ÃдÈëµÄÎļþ¡£replica Ô­ÓﶨÒåÁ˱仯Ӧ¸Ã´«²¥µ½µÄÖ÷»ú£º

#Replicas of this database
replogfile /var/lib/ldap/replog
replica host=dhcp64-253.ibm.com:389
        binddn="cn=Manager,dc=ibm,dc=com"
        credentials=secret
        bindmethod=simple

ÔÚÔËÐÐ´Ó OpenLDAP ·þÎñÆ÷µÄϵͳÉÏ£¬Çë×ñÑ­ ÅäÖà LDAP ·þÎñÆ÷ Ò»½Ú¸ø³öµÄ²½Ö衣Ȼºóͨ¹ý½«ÐÅÏ¢µ¼³öµ½Ò»¸ö ldif ÎļþÖв¢½«ÆäÌí¼Óµ½´Ó·þÎñÆ÷Êý¾Ý¿âÉÏ£¬´Ó¶ø½«Êý¾Ý¿â´ÓÖ÷·þÎñÆ÷¿½±´µ½¸´ÖÆ·þÎñÆ÷ÉÏ¡£

ÔÚÖ÷·þÎñÆ÷ÉÏ£º


Çåµ¥ 11. ½«Êý¾Ýµ¼³öµ½ LDIF ÎļþÖÐ
# ldapsearch -x > database.ldif

ÔÚ¸´ÖÆ·þÎñÆ÷ÉÏ£º


Çåµ¥ 12. ½«Êý¾ÝÌí¼Óµ½´Ó·þÎñÆ÷Êý¾Ý¿âÖÐ
# ldapadd -x -D "cn=Manager,dc=ibm,dc=com" -W -f database.ldif

½«ÒÔÏÂÄÚÈÝÌí¼Óµ½¸´ÖÆ·þÎñÆ÷µÄ /etc/openldap/slapd.conf ÎļþÖС£updatedn Ö¸¶¨ÁËÔÚ¸üдÓĿ¼ʱÖ÷ slurpd ÊØ»¤½ø³ÌʹÓÃµÄ DN¡£updateref Ö¸¶¨µÄÊÇÖ÷Ŀ¼·þÎñÆ÷¡£µ±Ò»¸ö LDAP ¿Í»§»úÇëÇó´Ó·þÎñÆ÷½øÐиüÐÂʱ£¬´Ó·þÎñÆ÷¾Í½«¿Í»§»úÖØ¶¨Ïòµ½Õâ¸öÖ÷·þÎñÆ÷ÉÏ¡£

updatedn "cn=Manager,dc=ibm,dc=com"
updateref ldap://dhcp64-233.ibm.com:389/

Æô¶¯¸´ÖÆ OpenLDAP ·þÎñÆ÷£¬µ±ËüÔËÐÐÖ®ºó£¬ÔÙÆô¶¯Ö÷ OpenLDAP ·þÎñÆ÷¡£ÔÚÖ÷·þÎñÆ÷ÉÏ£¬slapd ºÍ slurpd ¶¼»áÆô¶¯¡£

ÏÖÔÚ£¬¿ÉÒÔÈà OpenLDAP ¿Í»§»ú³ýÁËÖ÷·þÎñÆ÷Ö®Í⻹¿ÉÒÔʹÓø´ÖÆ·þÎñÆ÷£¬Õâ¿ÉÒÔͨ¹ýÔËÐÐ authconfig ²¢½«¸´ÖÆÖ÷»úÃûÌí¼Óµ½µÚ¶þ¸öÆÁÄ»ÖÐµÄ Server ÐÐÖÐʵÏÖ£¬Ò²¿ÉÒÔͨ¹ýÔÚ /etc/ldap.conf ÖÐÐÞ¸Ä host ʵÏÖ£º

host dhcp64-253.ibm.com dhcp64-233.ibm.com

ΪÁËÈ·Èϸ´ÖÆ¿ÉÒÔÕý³£¹¤×÷£¬ÐèÒªÑо¿Ò»ÏÂÔÚ¸üРgecos ÊôÐÔʱµ½µ×·¢ÉúÁËʲô¡£¸´ÖÆÈÕ־ʹÓÃÁËÓë LDIF ÀàËÆµÄ¸ñʽ¡£ÔÚ¶ÁÈ¡ replogfile Ö®ºó£¬slurpd »á½«Õâ¸öÌõÄ¿¿½±´µ½×Ô¼ºµÄÖØ×öÈÕÖ¾ÖС£Êµ¼ÊµÄ±ä»¯¶¼ÒÔ LDIF ¸ñʽ±£´æÔÚÖ÷ LDAP ·þÎñÆ÷ÉÏ /var/lib/ldap/replica/ ÖÐµÄ slurpd.replog ÎļþÖС£

ʹÓÃÎļþ user_mod Öеı仯£¬¿Í»§»ú³ÌÐò ldapmodify Ó¦ÓÃÕâЩ±ä»¯£º


Çåµ¥ 13. Ó¦Óà user_mod µÄ±ä»¯
# cat user_mod
dn: uid=ldapuser,ou=People,dc=ibm,dc=com
changetype: modify
replace: gecos
gecos: test2

# tail -f /var/lib/ldap/replog &

# ldapmodify -x -r -f /home/ldapuser/user_mod -D'cn=Manager,dc=ibm,dc=com' -W
Enter LDAP Password:
modifying entry "uid=ldapuser,ou=People,dc=ibm,dc=com"

replica: dhcp64-253.ibm.com:389
time: 1130111686
dn: uid=ldapuser,ou=People,dc=ibm,dc=com
changetype: modify
replace: gecos
gecos: test2
-
replace: entryCSN
entryCSN: 20051023235446Z#000001#00#000000
-
replace: modifiersName
modifiersName: cn=Manager,dc=ibm,dc=com
-
replace: modifyTimestamp
modifyTimestamp: 20051023235446Z
-





»ØÒ³Ê×


ÅäÖà TLS °²È«ÐÔ

LDAP ÊÇÒÔÃ÷Îĵĸñʽͨ¹ýÍøÂçÀ´·¢ËÍËùÓÐÐÅÏ¢µÄ£¬°üÀ¨ÃÜÂë¡£ÎÒÃǽ«²ÉÓà TLS ËùÌṩµÄ¼ÓÃÜ»úÖÆ£¨SSL µÄºó¼ÌÕߣ©À´½â¾öÕâ¸öÎÊÌâ¡£ÔÚ´«Êä²ã£¬Êý¾ÝʹÓà TLS ЭÒé½øÐмÓÃܺͷâ×°£¬È»ºóͨ¹ýÍøÂç½øÐд«Êä¡£ÓÃÀ´ÅäÖüÓÃܵŤ¾ß¶¼ÊÇÓÉ OpenSSL °üÌṩµÄ¡£

ËäÈ»¼ÓÃÜÊÇÒ»¸ö¸´ÔÓµÄÖ÷Ì⣬µ«ÊÇҪʹÓà OpenSSL °ü£¬ÎÒÃÇÒÀÈ»ÐèÒª¼òÒª½éÉÜһϠTLS ÊÇÈçºÎ¹¤×÷µÄ¡£Êý¾Ý¿éʹÓÃÒ»¸ö¶Ô³ÆÃÜÔ¿Ëã·¨½øÐмÓÃÜ£¬ËüʹÓÃÒ»¸öÃÜÔ¿À´ÊµÏÖ¶ÔÊý¾ÝµÄ¼ÓÃܺͽâÃÜ¡£ÎÒÃÇ»¹ÓÐÒ»¸öÎÊÌ⣺ÈçºÎ·ÀÖ¹³öÏÖÒÔÕýÎÄÎı¾¸ñʽ½«ÃÜÔ¿´Ó LDAP ·þÎñÆ÷·¢Ë͵½ LDAP ¿Í»§»úÉϵÄÇé¿ö¡£ÎÒÃÇʹÓù«Ô¿Ëã·¨À´½â¾öÕâ¸öÎÊÌ⣬ÆäÖпͻ§»ú¿ÉÒÔʹÓÃÒ»¸ö×ÔÓÉ»ñÈ¡µÄ¹«Ô¿¶Ô×Ô¼ºµÄÃÜÔ¿½øÐмÓÃÜ£¬¶øÖ»ÓзþÎñÆ÷²Å¿ÉÒÔ¶ÔÕâ¸öÃÜÔ¿½øÐнâÃÜ¡£

¹«Ô¿ÊÇ×÷Ϊ֤ÊéµÄÒ»²¿·ÖÀ´´´½¨ºÍ·Ö·¢µÄ£¬ÆäÖаüº¬ÁËһЩ֧³ÖÐÅÏ¢£¬ÀýÈç ID¡¢¹ýÆÚÈÕÆÚ¡¢ÌṩÕâ¸öÖ¤ÊéµÄ LDAP ·þÎñÆ÷µÄÍêÕûÓòÃû£¨FQDN£©¡£ÔÚ LDAP ¿Í»§»úʹÓÃÖ¤Êé½øÐмÓÃÜ֮ǰ£¬Ëü»áÑéÖ¤×Ô¼ºÕýÔÚÓëÖ®½øÐн»Ì¸µÄ·þÎñÆ÷ÓµÓÐÕâ¸öÖ¤Ê飬ÕâÊÇͨ¹ý¼ÓÃÜÒ»¸öÌôÕ½²¢ÑéÖ¤·þÎñÆ÷¿ÉÒÔ¶ÔÆä½øÐнâÃÜʵÏֵġ£

ÒªÑéÖ¤·¢ÐÐÕâ¸öÖ¤ÊéµÄ·þÎñÆ÷ÊÇÒ»¸öÒѾ­Åú×¼¹ýµÄ LDAP ·þÎñÆ÷£¬¿Í»§»ú±»ÅäÖÃΪֻ½ÓÊܱ¾µØÖ¤Êé»ú¹¹£¨CA£©ËùÇ©ÊðµÄÖ¤Êé¡£ËüʹÓà CA ËùÉú³ÉµÄÖ¤ÊéÖеĹ«Ô¿£¬Õâ¸ö¹«Ô¿±£´æµ½¿Í»§»úÖÐÒÔÑéÖ¤Õâ¸ö LDAP Ëù²úÉúµÄÖ¤ÊéÊÇÓÐЧµÄ¡£

ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÃǽ«×Ô¼ºµÄ LDAP ·þÎñÆ÷ÉèÖÃΪ֤Êé»ú¹¹£¬²¢´´½¨Ò»¸ö×ÔÇ©ÊðµÄÖ¤Ê鹩 LDAP ¿Í»§»úºÍ·þÎñÆ÷ÔÚ¼ÓÃÜÐÅÏ¢ÖÐʹÓá£

ÓÃÀ´¹¹½¨ TLS ·þÎñÆ÷µÄ Red Hat Enterprise Linux release 4 Update 1 °üÊÇ£º

  • openssl-0.9.7a-43.1£º°üÀ¨Ò»¸öÖ¤Êé¹ÜÀí¹¤¾ßºÍÌṩ¸÷ÖÖ¼ÓÃÜËã·¨ºÍЭÒéµÄ¹²Ïí¿â

Òª¹¹½¨Ö¤Êé»ú¹¹µÄ¹¤×÷»·¾³²¢Éú³É×Ô¼ºµÄ×ÔÇ©ÊðÖ¤Ê飬ÐèÒªÔËÐÐ /usr/share/ssl/misc/CA shell ½Å±¾£¬ÕâÊÇÒ»¸ö¶Ô openssl ÃüÁîµÄ·â×°³ÌÐò¡£Ë½ÃÜÐÔÔöÇ¿Óʼþ£¨PEM£©ÊÇÒ»ÖÖÓÃÀ´¶ÔÊý¾Ý½øÐмÓÃܺͱàÂëµÄ¸ñʽ£º


Çåµ¥ 14. ÔËÐÐ CA shell ½Å±¾
# cd /usr/share/ssl/misc
# ./CA -newca
CA certificate filename (or enter to create)

Making CA certificate ...
Generating a 1024 bit RSA private key
.........++++++
......++++++
writing new private key to './demoCA/private/./cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated into
your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:US
State or Province Name (full name) [Berkshire]:Oregon
Locality Name (eg, city) [Newbury]:Beaverton
Organization Name (eg, company) [My Company Ltd]:IBM
Organizational Unit Name (eg, section) []:its
Common Name (eg, your name or your server's hostname) []:dhcp64-233.ibm.com
Email Address []:root@dhcp64-233.ibm.com

½ÓÏÂÀ´£¬ÒªÉú³ÉÓÉÖ¤Êé»ú¹¹½øÐÐÇ©ÊðµÄ·þÎñÆ÷Ö¤Êé¡£ÆäÓàµÄ²½ÖèÖ»»á¶ÔÖ÷ LDAP ·þÎñÆ÷Ö´ÐÐÒ»´Î£¬´Ëʱָ¶¨µÄÊÇ CN=dhcp64-233.ibm.com£»È»ºó¶Ô´Ó·þÎñÆ÷Ö´ÐÐÒ»´Î£¬´Ëʱָ¶¨µÄÊÇ CN=dhcp64-253.ibm.com¡£»¹ÒªÊ¹Óà nodes Ñ¡ÏÕâÑù¾Í²»ÓÃÔÚÿ´ÎÆô¶¯ OpenLDAP ·þÎñÆ÷ÊØ»¤½ø³Ì slapd ʱ¶¼ÐèÒªÊäÈëÃÜÂëÁË¡£Ç©ÊðºóµÄ¹«Ô¿±»Ç¶Èëµ½Ö¤ÊéÇëÇó slapd-req.pem ÖУ¬Óë֮ƥÅäµÄ˽ԿǶÈëÔÚ slapd-key.pem ÖУº


Çåµ¥ 15. Éú³É·þÎñÆ÷Ö¤Êé
# openssl req -new -nodes -subj
   '/CN=dhcp64-233.ibm.com/O=IBM/C=US/ST=Oregon/L=Beaverton'
   -keyout slapd-key.pem -out slapd-req.pem -days 365
Generating a 1024 bit RSA private key
...............++++++
.....................................++++++
writing new private key to 'slapd-key.pem'
-----

ʹÓÃÔÚµÚÒ»¸ö²½ÖèÖд´½¨µÄ CA Ö¤Êé¶ÔÕâ¸öÖ¤Êé½øÐÐÇ©Êð£º


Çåµ¥ 16. ¶ÔÖ¤Êé½øÐÐÇ©Êð
# openssl ca -out slapd-cert.pem -infiles slapd-req.pem
Using configuration from /usr/share/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Oct 25 02:50:05 2005 GMT
            Not After : Oct 25 02:50:05 2006 GMT
        Subject:
            countryName               = US
            stateOrProvinceName       = Oregon
            organizationName          = IBM
            commonName                = dhcp64-233.ibm.com
        X509v3 extensions:
            X509v3 Basic Constraints:
            CA:FALSE
            Netscape Comment:
            OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
            11:A2:FB:59:42:A4:B3:26:73:1D:6D:F5:4D:2F:80:F0:FA:10:38:F5
            X509v3 Authority Key Identifier:
            keyid:F7:6A:25:F5:76:BE:20:E7:8D:0F:51:EF:D8:86:7B:AF:2C:74:2F:80
            DirName:/C=US/ST=Oregon/L=Beaverton/O=IBM/OU=its/CN=dhcp64-233.ibm.com
/emailAddress=root@dhcp64-233.ibm.com
            serial:00

Certificate is to be certified until Oct 25 02:50:05 2006 GMT (365 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

ÏÂÒ»¸ö²½Ö轫ËùÓÐÐèÒªµÄÖ¤Ê鿽±´µ½ slapd ¿ÉÒÔÕÒµ½µÄµØ·½¡£ÁíÍ⣬»¹Òª¶Ôÿ¸öÎļþÇ¿ÖÆ²ÉÓÃÕýÈ·µÄȨÏÞ£º


Çåµ¥ 17. ¿½±´Ö¤Êé²¢Ç¿ÖÆÉèÖÃȨÏÞ
# cp -p slapd-key.pem /etc/openldap/slapdkey.pem
# cp -p slapd-cert.pem /etc/openldap/slapdcert.pem
# chown ldap:ldap /etc/openldap/slapdcert.pem
# chmod 644 /etc/openldap/slapdcert.pem
# chown ldap:ldap /etc/openldap/slapdkey.pem
# chmod 400 /etc/openldap/slapdkey.pem

# mkdir /etc/openldap/cacerts/
# cp /usr/share/ssl/misc/demoCA/cacert.pem /etc/openldap/cacerts/cacert.pem
# chown ldap:ldap /etc/openldap/cacerts cacert.pem
# chmod 644 /etc/openldap/cacerts cacert.pem

ÔÚ OpenLDAP ·þÎñÆ÷ÉÏ£¬½«ÒÔÏÂÄÚÈÝÌí¼Óµ½ /etc/openldap/slapd.conf ÎļþµÄ global ¶ÎÏÂÃæ¡£TLSCertificateFile ºÍ TLSCertificateKeyFile Ö¸¶¨ÁËÖ¤ÊéÎļþºÍ˽ԿÎļþµÄ·¾¶¡£TLSCipherSuite Ö¸¶¨ÁËÒ»¸ö OpenSSL ÃÜÂëµÄÁÐ±í£¬slapd ÔÚÓë TLS ЭÉ̽¨Á¢Á¬½Óʱ¿ÉÒÔ´ÓÖа´ÕÕ½µÐò˳ÐòÒÀ´ÎÑ¡Ôñ¡£HIGH µÄÒâ˼ÊÇ ¡°ËùÓÐÃÜÔ¿µÄ³¤¶È¶¼´óÓÚ 128 λ¡±£»MEDIUM ±íʾ ¡°ËùÓÐÃÜÔ¿µÄ³¤¶È¶¼µÈÓÚ 128 λ¡±£»+SSLv2 ±íʾ ¡°²»¹ÜÃÜÔ¿Ç¿¶ÈÈçºÎ£¬ËùÓÐÃÜÂë¶¼ÊÇÒÔ SSL ЭÒé°æ±¾ 2 µÄÐÎʽָ¶¨µÄ¡±¡£

TLSCipherSuite HIGH:MEDIUM:+SSLv2
TLSCACertificateFile /etc/openldap/cacerts/cacert.pem
TLSCertificateFile /etc/openldap/slapdcert.pem
TLSCertificateKeyFile /etc/openldap/slapdkey.pem

½«ÒÔÏÂÄÚÈÝÌí¼Óµ½ LDAP ·þÎñÆ÷µÄµÚ¶þ¸öÅäÖÃÎļþ /etc/openldap/ldap.conf ÖУº

TLS_CACERTDIR /etc/openldap/cacerts
TLS_REQCERT allow

ΪÁËÔÊÐí´Ó OpenLDAP ¿Í»§»úÉÏʹÓð²È«Á¬½Ó£¬ÐèÒª½«ÒÔÏÂÄÚÈÝÌí¼Óµ½ /etc/openldap/ldap.conf ÎļþÖУº

ssl start_tls
tls_checkpeer yes
tls_cacertfile /etc/openldap/cacerts/cacert.pem





»ØÒ³Ê×


½áÊøÓï

°´ÕÕ±¾Îĸø³öµÄÌáʾ£¬ÎÒÃÇÏÖÔÚÒѾ­Ê¹ÓÃÇáÁ¿¼¶Ä¿Â¼·ÃÎÊЭÒ飨LDAP£©¹¹½¨ÁËÒ»¸ö¼¯ÖеÄÉí·ÝÑé֤ϵͳ¡£ÎÒÃÇ×î³õÊÇͨ¹ýÅäÖà LDAP ·þÎñÆ÷À´ÏìÓ¦¶Ô ¡°dc=ibm,dc=com¡± µÄ»ù±¾ÇëÇó¿ªÊ¼ÈëÊֵġ£ÎÒÃÇʹÓÃÁËÒ»×é Perl ½Å±¾À´½«Óû§ÕʺÅÐÅÏ¢Ç¨ÒÆµ½ LDAP Ŀ¼ÖС£ÎÒÃÇ¶Ô Linux Óû§ÕʺŷþÎñ¡¢PAM ºÍ NSS ·þÎñ½øÐÐÁËÐ޸쬴Ӷø¿ÉÒÔ´Ó LDAP ·þÎñÆ÷ÖмìË÷Óû§ÐÅÏ¢¡£»¹ÉèÖÃÁËÒ»¸ö LDAP ·þÎñÆ÷¸±±¾×÷Ϊ±¸Ó÷þÎñÆ÷À´ÏìÓ¦¿Í»§»úµÄÇëÇó¡£È»ºó£¬Ê¹Óà TLS ЭÒéÔÚ LDAP ¿Í»§»úºÍ·þÎñÆ÷Ö®¼ä¶ÔͨÐŽøÐа²È«¼ÓÃÜ¡£¹§Ï²£¡

ΪÁ˲ο¼·½±ã£¬ÏÂÃæ¸ø³öÁ˱¾ÎÄÖÐʹÓõÄÅäÖÃÎļþµÄÍêÕûÇåµ¥¡£


Çåµ¥ 18. ±¾ÎÄÀý×ÓÖÐʹÓõķþÎñÆ÷ /etc/openldap/slapd.conf Îļþ
#
# See slapd.conf (5) for details on configuration options.
#
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema

loglevel        256
pidfile         /var/run/slapd.pid
argsfile        /var/run/slapd.args

# The next three lines allow use of TLS for encrypting connections.
TLSCipherSuite  HIGH:MEDIUM:+SSLv2
TLSCACertificateFile    /etc/openldap/cacerts/cacert.pem
TLSCertificateFile      /etc/openldap/slapdcert.pem
TLSCertificateKeyFile   /etc/openldap/slapdkey.pem

# access control policy:
# Restrict password access to change by owner and authentication.
# Allow read access by everyone to all other attributes.

access to attrs=shadowLastChange,userPassword
   by self write
   by * auth

access to *
   by * read

#######################################################################
# database definition
#######################################################################

database        bdb
suffix          "dc=ibm,dc=com"

rootdn          "cn=Manager,dc=ibm,dc=com"
rootpw          {MD5}ijFYNcSNctBYg

directory       /var/lib/ldap

# Indices to maintain for this database
index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub

#Replicas of this database
replica host=dhcp64-253.ibm.com:389
        binddn="cn=Manager,dc=ibm,dc=com"
        credentials=secret
        bindmethod=simple
replogfile /var/lib/ldap/replog


Çåµ¥ 19. ±¾ÎÄÀý×ÓÖÐʹÓõķþÎñÆ÷ /etc/openldap/ldap.conf Îļþ
#
# LDAP Defaults
#

# See ldap.conf(5) for details

HOST 127.0.0.1
BASE dc=ibm,dc=com

TLS_CACERTDIR /etc/openldap/cacerts
TLS_REQCERT allow


Çåµ¥ 20. ±¾ÎÄÀý×ÓÖÐʹÓõĿͻ§»ú /etc/ldap.conf Îļþ
a
# @(#)$Id: ldap.conf,v 1.34 2004/09/16 23:32:02 lukeh Exp $
#
# This is the configuration file for the LDAP nameservice
# switch library and the LDAP PAM module.
#
# PADL Software
# http://www.padl.com
#

# Your LDAP server.
# Multiple hosts may be specified, each separated by a
# space.

host dhcp64-233.ibm.com dhcp64-233.ibm.com

# The distinguished name of the search base.

base dc=ibm,dc=com

# OpenLDAP SSL mechanism, start_tls mechanism uses the normal LDAP port 389
ssl start_tls

#Require and verify server certificate
tls_checkpeer yes

# CA certificates for server certificate verification
tls_cacertfile /etc/openldap/cacerts/cacert.pem

pam_password md5



²Î¿¼×ÊÁÏ

ѧϰ

»ñµÃ²úÆ·ºÍ¼¼Êõ
  • Ë÷È¡Ãâ·ÑµÄ SEK for Linux£¬ÕâÓÐÁ½ÕÅ DVD£¬°üÀ¨×îÐ嵀 IBM for Linux µÄÊÔÓðæÈí¼þ£¬°üÀ¨ DB2®¡¢Lotus®¡¢Rational®¡¢Tivoli® ºÍ WebSphere®¡£

  • ÔÚÄúµÄÏÂÒ»¸ö¿ª·¢ÏîÄ¿ÖвÉÓà IBM ÊÔÓðæÈí¼þ£¬Õâ¿ÉÒÔ´Ó developerWorks ÉÏÖ±½ÓÏÂÔØ¡£


ÌÖÂÛ


 

Ç×£¬Äú»¹Ã»ÓеǼ,Çë[µÇ¼]»ò[×¢²á]ºóÔÙ½øÐÐÆÀÂÛ