| NTLM_AUTH(1) | User Commands | NTLM_AUTH(1) |
نام (NAME)
ntlm_auth - ابزاری برای فراهم کردن امکان دسترسی خارجی به تابع احراز هویت NTLM در Winbind
خلاصه دستور (SYNOPSIS)
ntlm_auth
توضیحات (DESCRIPTION)
این ابزار بخشی از مجموعهٔ samba(7) است.
ابزار ntlm_auth یک ابزار کمکی است که کاربران را با استفاده از احراز هویت NT/LM تأیید اعتبار میکند. در صورتی که کاربر با موفقیت احراز هویت شود مقدار 0 و در صورت رد دسترسی مقدار 1 را برمیگرداند. ابزار ntlm_auth از winbind برای دسترسی به دادههای کاربر و احراز هویت یک دامنه استفاده میکند. این ابزار فقط برای استفاده توسط سایر برنامهها (در حال حاضر Squid و mod_ntlm_winbind) طراحی شده است.
الزامات عملیاتی (OPERATIONAL REQUIREMENTS)
برای کارکرد بسیاری از این دستورات، دیمن winbindd(8) باید در حال اجرا باشد.
برخی از این دستورات همچنین نیازمند دسترسی به دایرکتوری winbindd_privileged در $LOCKDIR هستند. این کار باید با اجرای دستور به عنوان کاربر ریشه (root) یا اعطای دسترسی گروهی به دایرکتوری winbindd_privileged انجام شود. به دلایل امنیتی، این دایرکتوری نباید برای همگان قابل دسترس باشد.
گزینهها (OPTIONS)
--helper-protocol=PROTO
squid-2.4-basic
squid-2.5-basic
squid-2.5-ntlmssp
نیازمند دسترسی به دایرکتوری winbindd_privileged در $LOCKDIR است. پروتکل مورد استفاده در اینجا شرح داده شده است: http://devel.squid-cache.org/ntlm/squid_helper_protocol.html. این پروتکل گسترش یافته است تا بستهٔ NTLMSSP Negotiate بتواند به عنوان آرگومان به دستور YR ارسال شود (و بدین ترتیب از دست رفتن اطلاعات در تبادل پروتکل جلوگیری شود).
ntlmssp-client-1
این ابزار کمکی از نوع کلاینت است و به همین دلیل میتواند توسط هر کاربری اجرا شود. پروتکل مورد استفاده در واقع معکوس پروتکل قبلی است. یک دستور YR (بدون هیچ آرگومانی) تبادل احراز هویت را آغاز میکند.
gss-spnego
نیازمند دسترسی به دایرکتوری winbindd_privileged در $LOCKDIR است.
gss-spnego-client
ntlm-server-1
این پروتکل شامل خطوطی به این صورت است: Parameter: value و Parameter:: Base64-encode value. وجود یک نقطهٔ منفرد . نشان میدهد که یک طرف ارسال داده به طرف دیگر را به پایان رسانده است (که به نوبهٔ خود میتواند باعث شود ابزار کمکی کاربر را احراز هویت کند).
پارامترهای پیادهسازیشدهٔ کنونی از برنامهٔ خارجی به ابزار کمکی عبارتند از:
Username
مثالها:
Username:: Ym9i
NT-Domain
مثالها:
NT-Domain:: V09SS0dST1VQ
Full-Username
مثالها:
Full-Username:: V09SS0dST1VQYm9i
LANMAN-Challenge
مثالها:
LANMAN-Response
NT-Response
مثالها:
Password
مثالها:
Password:: c2FtYmEy
Request-User-Session-Key
مثالها:
Request-LanMan-Session-Key
مثالها:
هشدار
توسعهدهندگان و پیادهسازان باید دقت کنند که هر دادهای (مانند نامهای کاربری/گذرواژهها) را که ممکن است حاوی دادههای مخرب کاربر باشد، مانند نویسهٔ خط جدید (newline)، بهصورت base64 کدگذاری نمایند. آنها همچنین ممکن است نیاز داشته باشند رشتههای دریافتی از helper را که ممکن است به همین ترتیب با base64 کدگذاری شده باشند، رمزگشایی کنند.
--username=USERNAME
--domain=DOMAIN
--workstation=WORKSTATION
--challenge=STRING
--lm-response=RESPONSE
--nt-response=RESPONSE
--password=PASSWORD
اگر در خط فرمان مشخص نشود، در صورت نیاز درخواست خواهد شد.
برای نقشهای سرور مبتنی بر NTLMSSP، این پارامتر گذرواژهٔ مورد انتظار را مشخص میکند، و امکان آزمایش را بدون فعال بودن winbindd فراهم میسازد.
--request-lm-key
--request-nt-key
--diagnostics
--require-membership-of={SID|Name}
--pam-winbind-conf=FILENAME
--target-hostname=HOSTNAME
--target-service=SERVICE
--use-cached-creds
--allow-mschapv2
--offline-logon
-?|--help
--usage
-d|--debuglevel=level
هرچه این مقدار بالاتر باشد، جزئیات بیشتری دربارهٔ فعالیتهای سرور در فایلهای گزارش ثبت خواهد شد. در سطح 0، تنها خطاهای حیاتی و هشدارهای جدی ثبت خواهند شد. سطح 1 سطحی معقول برای اجرای روزمره است - مقدار اندکی اطلاعات دربارهٔ عملیاتهای انجامشده تولید میکند.
سطوح بالاتر از 1 حجم قابل توجهی از دادههای گزارش را تولید میکنند و تنها باید هنگام بررسی یک مشکل استفاده شوند. سطوح بالاتر از 3 فقط برای استفادهٔ توسعهدهندگان طراحی شدهاند و حجم عظیمی از دادههای گزارش تولید میکنند که اغلب آنها بسیار پیچیده و ناخوانا هستند.
توجه داشته باشید که مشخص کردن این پارامتر در اینجا، پارامتر log level را در فایل /etc/samba/smb.conf بازنویسی خواهد کرد. --debug-stdout
--configfile=<configuration file>
--option=<name>=<value>
-V|--version
راهاندازی نمونه (EXAMPLE SETUP)
برای راهاندازی ntlm_auth جهت استفاده توسط squid 2.5، هم با احراز هویت basic و هم NTLMSSP، موارد زیر باید در فایل squid.conf قرار داده شوند.
auth_param ntlm program ntlm_auth --helper-protocol=squid-2.5-ntlmssp auth_param basic program ntlm_auth --helper-protocol=squid-2.5-basic auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours
نکته
این مثال فرض میکند که ntlm_auth در مسیر (PATH) شما نصب شده است و مجوزهای گروهی روی winbindd_privileged همانطور که در بالا شرح داده شد، تنظیم شدهاند.
برای راهاندازی ntlm_auth جهت استفاده توسط squid 2.5 با محدودیت گروهی، علاوه بر مثال بالا، موارد زیر باید به فایل squid.conf اضافه شوند.
auth_param ntlm program ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of='WORKGROUP\Domain Users' auth_param basic program ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of='WORKGROUP\Domain Users'
عیبیابی (TROUBLESHOOTING)
اگر در احراز هویت Internet Explorer اجراشده تحت MS Windows 9X یا Millennium Edition در برابر هلپر احراز هویت NTLMSSP متعلق به ntlm_auth (--helper-protocol=squid-2.5-ntlmssp) با مشکل مواجه شدید، لطفاً مقالهٔ شماره ۲۳۹۸۶۹ در Microsoft Knowledge Base را مطالعه کرده و دستورالعملهای شرحدادهشده در آن را دنبال کنید..SH "نسخه (VERSION)"
این صفحهٔ راهنما بخشی از نسخهٔ 4.24.6 از مجموعهٔ Samba است.
نویسنده (AUTHOR)
نرمافزار اصلی Samba و ابزارهای مرتبط با آن توسط Andrew Tridgell ایجاد شدند. Samba اکنون توسط Samba Team بهصورت یک پروژهٔ متنباز، مشابه شیوهٔ توسعهٔ هستهٔ Linux، توسعه داده میشود.
صفحهٔ راهنمای ntlm_auth توسط Jelmer Vernooij و Andrew Bartlett نوشته شده است.
| 08/16/2026 | Samba 4.24.6 |