dpkg-reconfigure slapd
میتوانید پایگاهداده LDAP را با جزئیات بیشتری تنظیم کنید.
falcot.com
”.
dpkg-reconfigure slapd
را اجرا کنید.
$
ldapsearch -x -b dc=falcot,dc=com
# extended LDIF # # LDAPv3 # base <dc=falcot,dc=com> with scope sub # filter: (objectclass=*) # requesting: ALL # # falcot.com dn: dc=falcot,dc=com objectClass: top objectClass: dcObject objectClass: organization o: Falcot Corp dc: falcot # admin, falcot.com dn: cn=admin,dc=falcot,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2
/etc/passwd
، /etc/group
، /etc/services
و /etc/hosts
) میشود که با تبدیل آنها، قابلیت ذخیرهسازی در پایگاهداده LDAP را فراهم میکند.
/etc/migrationtools/migrate_common.ph
باید ویرایش شود؛ گزینههای IGNORE_UID_BELOW
و IGNORE_GID_BELOW
باید فعال (با حذف توضیحات قبل از خود) و گزینه DEFAULT_MAIL_DOMAIN
/DEFAULT_BASE
باید بروزرسانی گردد.
migrate_all_online.sh
به صورت زیر اجرا میشود:
#
cd /usr/share/migrationtools
#
LDAPADD="/usr/bin/ldapadd -c" ETC_ALIASES=/dev/null ./migrate_all_online.sh
migrate_all_online.sh
درباره پایگاهداده LDAP که قرار است داده به داخل آن وارد شود چندین پرسش مطرح میکند. قسمت
جدول 11.1 به بررسی پاسخهای مطرح شده در مورد شرکت فالکوت میپردازد.
جدول 11.1. پاسخ به پرسشهای مطرح شده توسط اسکریپت migrate_all_online.sh
پرسش | پاسخ |
---|---|
شرایط نامگذاری X.500 | dc=falcot,dc=com |
نام سرور LDAP | localhost |
مدیر دامنه | cn=admin,dc=falcot,dc=com |
مدرک اعتبارسنجی | گذرواژه مدیریتی |
ایجاد DUAConfigProfile | no |
/etc/aliases
امتناع کردیم، چرا که شِمای استاندارد فراهم شده توسط دبیان ساختار مورد نظر این اسکریپت برای توضیح نامهای مستعار ایمیل را شامل نمیشود. به منظور درج این داده در ساختار دایرکتوری، فایل /etc/ldap/schema/misc.schema
باید به شِمای استاندارد اضافه گردد.
-c
در دستور ldapadd
دقت کنید؛ این گزینه درخواست میکند که در صورت بروز خطا، پردازش متوقف نشود. استفاده از این گزینه مورد نیاز است چرا که هنگام تبدیل فایل /etc/services
اغلب چند خطای کوچک رخ میدهد که میتوان از آنها چشمپوشی کرد.
جدول 11.2. پیکربندی بسته libnss-ldap
پرسش | پاسخ |
---|---|
شناسه منحصربفرد سرور LDAP | ldap://ldap.falcot.com |
نام متمایز پایگاه جستجو | dc=falcot,dc=com |
نسخه LDAP مورد استفاده | 3 |
آیا پایگاهداده LDAP نیازمند نام کاربری است؟ | no |
ویژگیهای خاص LDAP برای root | بله |
فایل پیکربندی تنها توسط خود مالک خواندنی/نوشتنی باشد | no |
حسابکاربری LDAP برای root | cn=admin,dc=falcot,dc=com |
گذرواژه حسابکاربری root در LDAP | گذرواژه مدیریتی |
ldap
، فایل /etc/nsswitch.conf
نیاز به تغییرات دارد.
مثال 11.26. فایل /etc/nsswitch.conf
# /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-doc' and `info' packages installed, try: # `info libc "Name Service Switch"' for information about this file. passwd: ldap compat group: ldap compat shadow: ldap compat hosts: files dns ldap networks: ldap files protocols: ldap db files services: ldap db files ethers: ldap db files rpc: ldap db files netgroup: ldap files
ldap
معمولا قبل از دیگران قرار میگیرد، پس ابتدا از همه مورد پرس و جو میباشد. استثنا این مورد سرویس hosts
است چرا که قبل از برقراری ارتباط با سرور LDAP، ابتدا به DNS نیاز است (برای شناسایی ldap.falcot.com
). بدون این استثنا، یک پرس و جو مبتنی بر نام، از سرور LDAP اطلاعات خود را میپرسد؛ اینکار منجر به بروز خطا در سرور LDAP شده که آن را در یک حلقه بینهایت قرار میدهد.
files
نادیده گرفته شوند)، سرویسها میتوانند با شیوه نگارش زیر پیکربندی گردند:
service: ldap [NOTFOUND=return] files
.
/etc/environment
و /etc/default/locale
را مشاهده کنید) میپردازد که به برنامهها اجازه احرازهویت توسط پایگاهداده LDAP را میدهد.
جدول 11.3. پیکربندی libpam-ldap
پرسش | پاسخ |
---|---|
حساب مدیر LDAP مجاز است که مانند root رفتار کند؟ | بله. اینکار باعث میشود بتواند از دستور passwd برای تغییر گذرواژههای ذخیرهشده در پایگاهداده LDAP استفاده شود. |
پایگاهداده LDAP نیازمند اطلاعات ورود باشد؟ | no |
حسابکاربری LDAP برای root | cn=admin,dc=falcot,dc=com |
گذرواژه حسابکاربری root در LDAP | گذرواژه مدیریتی پایگاهداده LDAP |
الگوریتم رمزنگاری محلی برای استفاده گذرواژهها | crypt |
/etc/pam.d/common-auth
، /etc/pam.d/common-password
و /etc/pam.d/common-account
تعریف شده است، منطبق میشود. این مکانیزم از ابزار انحصاری pam-auth-update
استفاده میکند (که توسط بسته libpam-runtime فراهم میشود). مدیرسیستم همچنین میتواند از این ابزار برای فعالسازی یا غیرفعالسازی افزونههای PAM استفاده کند.
./build-key-server ldap.falcot.com
چند پرسش درباره محل، نام سازمان و از این قبیل پرسیده میشود. پاسخ به پرسش “نام متداول” باید مطابق با نام تمام-عیار سرور LDAP باشد؛ در این مورد، ldap.falcot.com
.
keys/ldap.falcot.com.crt
ایجاد میکند؛ کلید خصوصی متناظر آن در keys/ldap.falcot.com.key
ذخیره میشود.
openldap
اجرا میشود، قابل خواندن باشد.
#
adduser openldap ssl-cert
Adding user `openldap' to group `ssl-cert' ... Adding user openldap to group ssl-cert Done. #
mv keys/ldap.falcot.com.key /etc/ssl/private/ldap.falcot.com.key
#
chown root:ssl-cert /etc/ssl/private/ldap.falcot.com.key
#
chmod 0640 /etc/ssl/private/ldap.falcot.com.key
#
mv newcert.pem /etc/ssl/certs/ldap.falcot.com.pem
slapd
نیز از این کلیدها برای رمزنگاری استفاده کند. پیکربندی سرور LDAP به صورت خودکار مدیریت میشود: پیکربندی میتواند با عملیات ساده LDAP روی سلسلهمراتب شی cn=config
بروزرسانی شود تا سرور در زمان واقعی و به صورت پایدار، اقدام به بروزرسانی /etc/ldap/slapd.d
کند. از این رو، ldapmodify
ابزار مناسب بروزرسانی پیکربندی به حساب میآید:
مثال 11.27. پیکربندی slapd
برای رمزنگاری
#
cat >ssl.ldif <<END dn: cn=config changetype: modify add: olcTLSCertificateFile olcTLSCertificateFile: /etc/ssl/certs/ldap.falcot.com.pem - add: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ssl/private/ldap.falcot.com.key - END
#
ldapmodify -Y EXTERNAL -H ldapi:/// -f ssl.ldif
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "cn=config"
SLAPD_SERVICES
در فایل /etc/default/slapd
است. ما به صورت امنی از آن استفاده کرده و تمام تبادل دادههای ناامن LDAP را غیرفعال کردهایم.
مثال 11.28. فایل /etc/default/slapd
# Default location of the slapd.conf file or slapd.d cn=config directory. If # empty, use the compiled-in default (/etc/ldap/slapd.d with a fallback to # /etc/ldap/slapd.conf). SLAPD_CONF= # System account to run the slapd server under. If empty the server # will run as root. SLAPD_USER="openldap" # System group to run the slapd server under. If empty the server will # run in the primary group of its user. SLAPD_GROUP="openldap" # Path to the pid file of the slapd server. If not set the init.d script # will try to figure it out from $SLAPD_CONF (/etc/ldap/slapd.conf by # default) SLAPD_PIDFILE= # slapd normally serves ldap only on all TCP-ports 389. slapd can also # service requests on TCP-port 636 (ldaps) and requests via unix # sockets. # Example usage: # SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// ldapi:///" SLAPD_SERVICES="ldaps:/// ldapi:///" # If SLAPD_NO_START is set, the init script will not start or restart # slapd (but stop will still work). Uncomment this if you are # starting slapd via some other means or if you don't want slapd normally # started at boot. #SLAPD_NO_START=1 # If SLAPD_SENTINEL_FILE is set to path to a file and that file exists, # the init script will not start or restart slapd (but stop will still # work). Use this for temporarily disabling startup of slapd (when doing # maintenance, for example, or through a configuration management system) # when you don't want to edit a configuration file. SLAPD_SENTINEL_FILE=/etc/ldap/noslapd # For Kerberos authentication (via SASL), slapd by default uses the system # keytab file (/etc/krb5.keytab). To use a different keytab file, # uncomment this line and change the path. #export KRB5_KTNAME=/etc/krb5.keytab # Additional options to pass to slapd SLAPD_OPTIONS=""
ldaps://
استفاده کنند.
/usr/local/share/ca-certificates
و اجرای update-ca-certificates
انجام میشود.
#
cp keys/ca.crt /usr/local/share/ca-certificates/falcot.crt
#
update-ca-certificates
Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d.... Adding debian:falcot.pem done. done.
/etc/ldap/ldap.conf
تغییر کنند. اینکار از نوشتنهای اضافی جلوگیری بعمل میآورد.
مثال 11.29. فایل /etc/ldap/ldap.conf
# # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. BASE dc=falcot,dc=com URI ldaps://ldap.falcot.com #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never # TLS certificates (needed for GnuTLS) TLS_CACERT /etc/ssl/certs/ca-certificates.crt