SSSD-KCM(8) File Formats and Conventions SSSD-KCM(8)

sssd-kcm - مدیر حافظه پنهان کربروس در SSSD

این صفحه راهنما پیکربندی مدیر حافظه پنهان کربروس در SSSD (KCM) را شرح می‌دهد. KCM فرآیندی است که حافظه‌های پنهان اعتبارنامه کربروس را ذخیره، ردیابی و مدیریت می‌کند. این ابزار از پروژه کربروس Heimdal سرچشمه می‌گیرد، اگرچه کتابخانه کربروس MIT نیز پشتیبانی سمت کلاینت را از حافظه پنهان اعتبارنامه KCM ارائه می‌دهد (جزئیات بیشتر در زیر آمده است).

در ساختاری که حافظه‌های پنهان کربروس توسط KCM مدیریت می‌شوند، کتابخانه کربروس (که معمولاً از طریق یک برنامه مانند kinit(1) استفاده می‌شود) یک “کلاینت KCM” است و دیمن KCM به عنوان “سرور KCM” شناخته می‌شود. کلاینت و سرور از طریق یک سوکت یونیکس ارتباط برقرار می‌کنند.

سرور KCM مالک هر یک از حافظه‌های پنهان اعتبارنامه را ردیابی می‌کند و بررسی کنترل دسترسی را بر اساس UID و GID کلاینت KCM انجام می‌دهد.

حافظه پنهان اعتبارنامه KCM دارای چندین ویژگی جالب است:

•از آنجا که این فرآیند در فضای کاربری اجرا می‌شود، بر خلاف keyring هسته، مشمول تفکیک فضای نام UID است
•بر خلاف حافظه پنهان مبتنی بر keyring هسته که بین تمام کانتینرها مشترک است، سرور KCM فرآیندی مجزا است که نقطه ورود آن یک سوکت یونیکس است
•پیاده‌سازی SSSD این حافظه‌های پنهان اعتبارنامه (ccacheها) را در یک پایگاه‌داده ذخیره می‌کند که معمولاً در /var/lib/sss/secrets واقع شده است و به ccacheها اجازه می‌دهد پس از راه‌اندازی مجدد سرور KCM یا ریبوت ماشین باقی بمانند.

این ویژگی به سیستم اجازه می‌دهد تا از یک حافظه پنهان اعتبارنامه آگاه از مجموعه استفاده کند، و با bind-mount کردن سوکت، حافظه پنهان اعتبارنامه را بین برخی از کانتینرها یا هیچ‌کدام به اشتراک بگذارد.

مهلت زمانی پیش‌فرض عدم فعالیت کلاینت KCM برابر 5 دقیقه است که زمان بیشتری را برای تعامل کاربر با ابزارهای خط فرمان مانند kinit فراهم می‌سازد.

به منظور استفاده از حافظه پنهان اعتبارنامه KCM، باید به عنوان نوع اعتبارنامه پیش‌فرض در krb5.conf(5) انتخاب شود. نام حافظه پنهان اعتبارنامه باید فقط “KCM:” بدون هیچ‌گونه بسط الگو باشد. برای مثال:

[libdefaults]
    default_ccache_name = KCM:

سپس، مطمئن شوید که کتابخانه‌های کلاینت کربروس و سرور KCM روی مسیر سوکت یونیکس توافق دارند. به طور پیش‌فرض، هر دو از مسیر یکسان /var/run/.heim_org.h5l.kcm-socket استفاده می‌کنند. برای پیکربندی کتابخانه کربروس، گزینه “kcm_socket” آن را تغییر دهید که در صفحه راهنمای krb5.conf(5) توضیح داده شده است.

در نهایت، مطمئن شوید که سرور SSSD KCM قابل دسترسی است. سرویس KCM معمولاً با فعال‌سازی از طریق سوکت توسط systemd(1) راه‌اندازی می‌شود. بر خلاف سایر سرویس‌های SSSD، نمی‌توان آن را با افزودن رشته “kcm” به دستورالعمل “service” شروع کرد.

systemctl start sssd-kcm.socket
systemctl enable sssd-kcm.socket

لطفاً توجه داشته باشید که توزیع شما ممکن است از قبل این واحدها را برای شما پیکربندی کرده باشد.

حافظه‌های پنهان اعتبارنامه در یک پایگاه‌داده ذخیره می‌شوند، بسیار شبیه به نحوه ذخیره‌سازی ورودی‌های کاربر یا گروه توسط SSSD. این پایگاه‌داده معمولاً در مسیر “/var/lib/sss/secrets” قرار دارد.

سرویس sssd-kcm معمولاً توسط systemd(1) بر اساس سوکت فعال می‌شود. برای تولید لاگ‌های اشکال‌زدایی، قطعه زیر را مستقیماً به پرونده /etc/sssd/sssd.conf یا به عنوان یک قطعه پیکربندی به دایرکتوری /etc/sssd/conf.d/ اضافه کنید:

[kcm]
debug_level = 10

سپس، سرویس sssd-kcm را مجدداً راه‌اندازی کنید:

systemctl restart sssd-kcm.service

در نهایت، هر سناریویی که برای شما کار نمی‌کند را اجرا نمایید. لاگ‌های KCM در مسیر /var/log/sssd/sssd_kcm.log تولید خواهند شد. توصیه می‌شود زمانی که دیگر نیازی به فعال بودن اشکال‌زدایی ندارید، لاگ‌های اشکال‌زدایی را غیرفعال کنید زیرا سرویس sssd-kcm می‌تواند حجم بسیار زیادی از اطلاعات اشکال‌زدایی را تولید کند.

لطفاً توجه داشته باشید که در حال حاضر، قطعات پیکربندی تنها در صورتی پردازش می‌شوند که پرونده پیکربندی اصلی در مسیر /etc/sssd/sssd.conf وجود داشته باشد.

سرویس sssd-kcm را می‌توان طوری پیکربندی کرد که برای TGTهای قابل تمدید ذخیره‌شده در ccache متعلق به KCM، تلاش برای تمدید انجام دهد. تمدیدها تنها زمانی انجام می‌شوند که نیمی از طول عمر بلیت سپری شده باشد. تمدیدهای KCM زمانی پیکربندی می‌شوند که گزینه‌های زیر در بخش [kcm] تنظیم شده باشند:

tgt_renewal = true
krb5_renew_interval = 60m

همچنین SSSD می‌تواند گزینه‌های krb5 برای تمدیدها را از یک دامنه موجود به ارث ببرد.

tgt_renewal = true
tgt_renewal_inherit = domain-name

گزینه‌های krb5 زیر را می‌توان در بخش [kcm] برای کنترل رفتار تمدید پیکربندی کرد، این گزینه‌ها در زیر با جزئیات شرح داده شده‌اند:

krb5_renew_interval
krb5_renewable_lifetime
krb5_lifetime
krb5_validate
krb5_canonicalize
krb5_auth_timeout

سرویس KCM در بخش “kcm” از پرونده sssd.conf پیکربندی می‌شود. لطفاً توجه داشته باشید از آنجا که سرویس KCM معمولاً با سوکت فعال می‌شود، پس از تغییر گزینه‌ها در بخش “kcm” پرونده sssd.conf، کافی است سرویس “sssd-kcm” را مجدداً راه‌اندازی کنید:

systemctl restart sssd-kcm.service

برای مرجع دقیق نحو، به بخش “FILE FORMAT” از صفحه راهنمای sssd.conf(5) مراجعه فرمایید.

گزینه‌های عمومی سرویس SSSD مانند “debug_level” یا “fd_limit” توسط سرویس kcm پذیرفته می‌شوند. لطفاً برای فهرست کامل به صفحه راهنمای sssd.conf(5) مراجعه کنید. علاوه بر این، برخی گزینه‌های ویژه KCM نیز وجود دارند.

socket_path (رشته)

سوکتی که سرویس KCM به آن گوش فرا خواهد داد.

پیش‌فرض: /var/run/.heim_org.h5l.kcm-socket

نکته: در پلتفرم‌هایی که systemd پشتیبانی می‌شود، مسیر سوکت با مسیر تعریف‌شده در پرونده واحد sssd-kcm.socket بازنویسی می‌شود.

max_ccaches (عدد صحیح)

پایگاه‌داده KCM چه تعداد حافظه پنهان اعتبارنامه برای تمام کاربران مجاز می‌داند.

پیش‌فرض: 0 (نامحدود، فقط سهمیه به ازای هر UID اعمال می‌شود)

max_uid_ccaches (عدد صحیح)

پایگاه‌داده KCM چه تعداد حافظه پنهان اعتبارنامه به ازای هر UID مجاز می‌داند. این معادل است با “با چه تعداد هویت اصلی (principal) می‌توانید kinit کنید”.

پیش‌فرض: 64

max_ccache_size (عدد صحیح)

حداکثر اندازه یک حافظه پنهان اعتبارنامه به ازای هر ccache چقدر می‌تواند باشد. هر بلیت سرویس در این سهمیه محاسبه می‌شود.

پیش‌فرض: 65536

tgt_renewal (بولی)

قابلیت تمدید TGT را فعال می‌کند.

پیش‌فرض: False (تمدید خودکار غیرفعال است)

tgt_renewal_inherit (رشته)

دامنه‌ای که گزینه‌های krb5_* برای استفاده در تمدیدهای TGT از آن به ارث برده می‌شوند.

پیش‌فرض: NULL

krb5_auth_timeout (عدد صحیح)

مهلت زمانی بر حسب ثانیه که پس از آن درخواست احراز هویت آنلاین یا درخواست تغییر گذرواژه متوقف می‌شود. در صورت امکان، درخواست احراز هویت به صورت برون‌خط (آفلاین) ادامه می‌یابد.

پیش‌فرض: 6

krb5_validate (بولی)

با کمک krb5_keytab بررسی می‌کند که TGT به دست آمده جعل نشده باشد. ورودی‌های keytab به صورت متوالی بررسی می‌شوند و نخستین ورودی با قلمرو (realm) منطبق برای اعتبارسنجی استفاده می‌شود. اگر هیچ ورودی با قلمرو مطابقت نداشته باشد، آخرین ورودی در keytab استفاده می‌شود. این فرآیند می‌تواند برای اعتبارسنجی محیط‌هایی که از اعتماد بین-قلمرویی (cross-realm trust) استفاده می‌کنند، با قرار دادن ورودی keytab مناسب به عنوان آخرین ورودی یا تنها ورودی در پرونده keytab به کار رود.

پیش‌فرض: false (برای ارائه‌دهنده IPA و AD برابر true)

لطفاً توجه داشته باشید که اعتبارسنجی بلیت نخستین گام هنگام بررسی PAC است (برای جزئیات به 'pac_check' در صفحه راهنمای sssd.conf(5) مراجعه کنید). اگر اعتبارسنجی بلیت غیرفعال باشد، بررسی‌های PAC نیز نادیده گرفته خواهند شد.

krb5_renewable_lifetime (رشته)

درخواست بلیت قابل تمدید با طول عمر کل، که به صورت یک عدد صحیح بلافاصله به همراه واحد زمانی مشخص می‌شود:

s برای ثانیه

m برای دقیقه

h برای ساعت

d برای روز.

اگر هیچ واحدی داده نشود، s فرض می‌شود.

نکته: ترکیب واحدها امکان‌پذیر نیست. برای تنظیم طول عمر قابل تمدید روی یک ساعت و نیم، به جای '1h30m' از '90m' استفاده کنید.

پیش‌فرض: تنظیم نشده، یعنی TGT قابل تمدید نیست

krb5_lifetime (رشته)

درخواست بلیت با طول عمر مشخص، که به صورت یک عدد صحیح بلافاصله به همراه واحد زمانی داده می‌شود:

s برای ثانیه

m برای دقیقه

h برای ساعت

d برای روز.

اگر هیچ واحدی داده نشود، s فرض می‌شود.

نکته: ترکیب واحدها امکان‌پذیر نیست. برای تنظیم طول عمر روی یک ساعت و نیم لطفاً به جای '1h30m' از '90m' استفاده کنید.

پیش‌فرض: تنظیم نشده، یعنی طول عمر پیش‌فرض بلیت که روی KDC پیکربندی شده است.

krb5_renew_interval (رشته)

زمان بر حسب ثانیه بین دو بررسی برای اینکه آیا TGT باید تمدید شود یا خیر. اگر حدود نیمی از طول عمر TGT سپری شده باشد تمدید می‌شود، که به صورت یک عدد صحیح بلافاصله به همراه واحد زمانی مشخص می‌شود:

s برای ثانیه

m برای دقیقه

h برای ساعت

d برای روز.

اگر هیچ واحدی داده نشود، s فرض می‌شود.

نکته: ترکیب واحدها امکان‌پذیر نیست. برای تنظیم طول عمر قابل تمدید روی یک ساعت و نیم، به جای '1h30m' از '90m' استفاده کنید.

اگر این گزینه تنظیم نشود یا 0 باشد، تمدید خودکار غیرفعال خواهد بود.

پیش‌فرض: تنظیم نشده

krb5_canonicalize (بولی)

مشخص می‌کند که آیا هویت اصلی کاربر و میزبان باید متعارف‌سازی (canonicalize) شوند یا خیر. این ویژگی با MIT Kerberos نسخه 1.7 و نسخه‌های بعدی در دسترس است.

پیش‌فرض: false

sssd(8), sssd.conf(5),

The SSSD upstream - https://github.com/SSSD/sssd

06/09/2026 SSSD