کانفیگ سرور - بهینه سرور

بهینه سرور

به وبسایت بهینه سرور | آموزش کانفیگ سرور و مدیریت سرور های لینوکسی، ویندوزی | خوش آمدید.
خانه / آموزش ها / آموزش نصب OpenLDAP روی CentOS

آموزش نصب OpenLDAP روی CentOS

LDAP یا همان Lightweight Directory Access Protocol یک پروتکل اینترنتی است که Email یا دیگر برنامه های اینترنتی برای دریافت اطلاعات از ان استفاده میکنند.LDAP معمولا در سازمان های متوسط و بزرگ استفاده میشود، درواقع LDAP یک راهکار برای دسترسی مرکزی اطلاعات در سرور میباشد مانند Contact ها یا لیست Email های مورد نیاز کارمندان که در قالب یک راهکار و پروتکل در اختیار شما قرار میگیرد. در این روش اطلاعات بصورت سلسله مراتبی سازماندهی میشود و مزایای این روش گروهبندی اطلاعات هست که به هر رده از کارکنان فقط اطلاعات مورد نیاز داده میشود.ساختار LDAP همان ساختار DNS میباشد و از استاندارد x.500 استفاده میکند. برای اشنایی بیشتر با این برنامه میتوانید از گوگل استفاده کنید. در این مقاله ما قصد داریم تا اموزش ابتدایی LDAP را برای شما قرار دهیم.برای استفاده از این پروتکل باید از ابزار OpenLDAP استفاده کنید.

برای راه اندازی این سرویس سه پکیج زیر باید نصب شود:

  1. openldap-servers – این سرور LDAP اصلی میباشد.
  2. openldap-clients – همه ابزار های مورد نیاز client را شامل میشود.
  3. openldap – کتاب خانه های مورد پشتیبانی توسط LDAP را شامل میشود.

 

برای نصب OpenLDAP در CenOS و Redhat از دستور زیر استفاده نمایید :

yum install -y openldap openldap-clients openldap-servers

فایل های کانفیگ LDAP :

  • config.ldif – فایل کانفیگ پیشفرص LDAP در زیر دایرکتوری etc/openldap/slapd.d/cn=config.ldif  بوده و فرمت ان LDIF میباشد. این فرمت ورودی LDAP است که اجازه ورود اطلاعات در دایرکتوری LDAP را به شما میدهد.
  • olcDatabase{2}bdb.ldif : در این فایل شما میتوانید تنظیمات مربوط به OpenLDAP مانند تعداد کانکشن ها مقدار Timeout و دیگر تنظیمات که در دایرکتوری etc/openldap/slapd.d/cn=config/olcDatabase{2}bdb.ldif واقع شده را تغییر دهید. در این فایل کاربر root مربوط به LDAP و DN پایه (Base) نیز مشخص میشود.

ساخت olcRootDN  به عنوان Admin :

ساختن یک یوزر با تمام مجوز های موجود در database مربوط به LDAP به عنوان یک اصل توصیه میشود. به همین دلیل ما هم از همین اصل پیروی خواهیم کرد. دستور زیر را وارد کنید :

grep olcRootDN /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif

خروجی :

olcRootDN: cn=Manager,dc=my-domain,dc=com

فایل تنظیمات etc/openldap/slapd.d/cn=config/olcDatabase{2}bdb.ldif را با ادیتور باز کرده خط خروجی بالا را به شکل زیر تغییر دهید:

olcRootDN: cn=admin,dc=wikiconfig,dc=ir

تذکر : در خط بالا در cn نام کاربری admin قرار داده شده و میتواند هر اسمی باشد … dc نام دامنه شما و dc دوم میتواند پسوند دامنه باشد.

برای قرار دادن پسورد برای olcRootPW  از دستور slappasswd  استفاده میکنیم. این دستور بعد از قرار دادن پسوورد که کد هش به ما میدهد که باید این کد را در درو فایل کانفیگ وارد نمایید :

slappasswd
New password: behineserver.com
Re-enter new password: behineserver.com
{SSHA}1pgok6qWn24lpBkVreTDboTr81rg4QC6

حال فایل کانفیگ را باز کرده متغییر olcRootPW را پیدا کنید و هش ساخته شده توسط slappasswd را در ان قرار دهید :

vi /etc/openldap/slapd.d/cn=config.ldif
olcRootPW: {SSHA}1pgok6qWn24lpBkVreTDboTr81rg4QC6

قرار دادن olcSuffix :
برای قرار دادن نام دامنه دلخواه به سادگی فایل کانفیگ را با ادیتور باز کرده و در مقابل olcSuffix تغییرات دلخواه را اعمال نمایید :

vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
olcSuffix: dc=wikiconfig,dc=ir

تست فایل کانفیگ OpenLDAP :
تست کافیست ار فرمان slaptest استفاده کنید. در صورت درست بودن تنظیمات، خروچی “testing succeeded” خواهد بود.

slaptest -u
config file testing succeeded

اگر با پیغام زیر مواجه شدید میتوانید ان را نادیده بگیرید :

54a39508 ldif_read_file: checksum error on “/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif”
54a39508 ldif_read_file: checksum error on “/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif”

برای شروع سرویس LDAP از فرمان زیر استفاده کنید :

service slapd start
Checking configuration files for slapd: [WARNING] config file testing succeeded
Starting slapd: [ OK ]

اطمینان از صحت Search در LDAP
برای این منظور کافیست از دستورات زیر برای اطمینان از کانفیگ سرور LDAP استفاده نمایید :

ldapsearch -x -b “dc=thegeekstuff,dc=com”
#extended LDIF
#
#LDAPv3
# base <dc=thegeekstuff,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 32 No such object
#numResponses: 1