.\"**************************************************************************** .\" Copyright (C) 2007-2025 Lawrence Livermore National Security, LLC. .\" Copyright (C) 2002-2007 The Regents of the University of California. .\" UCRL-CODE-155910. .\" .\" This file is part of the MUNGE Uid 'N' Gid Emporium (MUNGE). .\" For details, see . .\" .\" MUNGE is free software: you can redistribute it and/or modify it under .\" the terms of the GNU General Public License as published by the Free .\" Software Foundation, either version 3 of the License, or (at your option) .\" any later version. Additionally for the MUNGE library (libmunge), you .\" can redistribute it and/or modify it under the terms of the GNU Lesser .\" General Public License as published by the Free Software Foundation, .\" either version 3 of the License, or (at your option) any later version. .\" .\" MUNGE is distributed in the hope that it will be useful, but WITHOUT .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License .\" and GNU Lesser General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" and GNU Lesser General Public License along with MUNGE. If not, see .\" . .\"**************************************************************************** .TH MUNGED 8 "2026-02-10" "munge-0.5.18" "MUNGE Uid 'N' Gid Emporium" .SH "نام (NAME)" munged \- دیمن MUNGE .SH "خلاصه دستور (SYNOPSIS)" .B munged [\fIگزینه\fR]... .SH "توضیحات (DESCRIPTION)" دیمن \fBmunged\fR مسئول احراز هویت کلاینت‌های محلی MUNGE و پاسخ‌گویی به درخواست‌های رمزگذاری (encode) و رمزگشایی (decode) گواهی‌های اعتباری آن‌ها است. .PP تمام دیمن‌های \fBmunged\fR درون یک قلمرو امنیتی (security realm) یک کلید مشترک دارند. انتظار می‌رود تمام میزبان‌های داخل این قلمرو دارای کاربران/UIDها و گروه‌ها/GIDهای مشترک باشند. این کلید برای حفاظت رمزنگاری‌شده از گواهی‌های اعتباری استفاده می‌شود؛ این کلید با دستور \fBmungekey\fR ایجاد می‌گردد. .PP هنگامی که یک گواهی اعتباری ایجاد می‌شود، \fBmunged\fR فراداده‌هایی (metadata) را درون آن تعبیه می‌کند که شامل UID و GID مؤثر کلاینت درخواست‌کننده (طبق تشخیص \fBmunged\fR) و زمان جاری (بر اساس ساعت محلی) است. سپس داده‌ها را فشرده‌سازی می‌کند، یک کد اصالت‌سنجی پیام (MAC) محاسبه می‌نماید، داده‌ها را رمزگذاری کرده و نتیجه را با کدگذاری Base64 درمی‌آورد و در نهایت گواهی اعتباری را به کلاینت بازمی‌گرداند. .PP هنگامی که یک گواهی اعتباری اعتبارسنجی می‌شود، \fBmunged\fR ابتدا کد اصالت‌سنجی پیام را بررسی می‌کند تا مطمئن شود گواهی دستکاری نشده باشد. سپس، محدودیت‌های UID/GID تعبیه‌شده را بررسی می‌کند تا مشخص شود آیا کلاینت درخواست‌کننده مجاز به رمزگشایی آن است یا خیر. پس از آن، زمان رمزگذاری تعبیه‌شده را با زمان جاری مقایسه می‌کند؛ اگر این اختلاف از طول عمر مجاز (TTL) تعبیه‌شده فراتر رود، گواهی اعتباری منقضی شده است. در نهایت، بررسی می‌کند که آیا این گواهی قبلاً روی این میزبان رمزگشایی شده است یا خیر؛ در این صورت، گواهی بازپخش (replayed) شده است. اگر تمام بررسی‌ها با موفقیت انجام شوند، فراداده و بار داده (payload) گواهی اعتباری به کلاینت بازگردانده می‌شوند. .SH "گزینه‌ها (OPTIONS)" .TP .BI "\-h, \-\-help" نمایش خلاصه‌ای از گزینه‌های خط فرمان. .TP .BI "\-L, \-\-license" نمایش اطلاعات مجوز. .TP .BI "\-V, \-\-version" نمایش اطلاعات نسخه. .TP .BI "\-f, \-\-force" اجبار دیمن به اجرا در صورت امکان. این گزینه هشدارهای مربوط به وجود سوکت دامنه محلی از قبل، کمبود آنتروپی برای PRNG، و مجوزهای دسترسی ناامن فایل/دایرکتوری را نادیده می‌گیرد. با احتیاط استفاده شود زیرا نادیده گرفتن این هشدارها می‌تواند امنیت را تحت تأثیر قرار دهد. .TP .BI "\-F, \-\-foreground" اجرای دیمن در پیش‌زمینه (foreground). .TP .BI "\-M, \-\-mlockall" قفل کردن صفحات در حافظه جهت جلوگیری از انتقال (swap) صفحات دیمن به دیسک. این کار می‌تواند از تأخیرهای احراز هویت تحت فشار شدید حافظه جلوگیری کند. نیازمند محدودیت‌های کافی برای قفل حافظه است. بخش \fBقفل‌کردن حافظه (MEMORY LOCKING)\fR در زیر را ببینید. .TP .BI "\-s, \-\-stop" متوقف کردن دیمنی که به سوکت متصل است و انتظار برای خاموش شدن کامل آن. برای هدف قرار دادن دیمنی که به یک مسیر سوکت غیرپیش‌فرض متصل است، از این گزینه همراه با \fB\-\-socket\fR استفاده کنید. در صورتی که دیمن مشخص‌شده با موفقیت متوقف شود، این گزینه با وضعیت خروج صفر خارج می‌شود، در غیر این صورت وضعیت خروج غیرصفر برمی‌گرداند. .TP .BI "\-S, \-\-socket " path تعیین سوکت دامنه محلی برای برقراری ارتباط با کلاینت‌ها. .TP .BI "\-v, \-\-verbose" نمایش گزارش‌های مشروح و تفصیلی. .TP .BI "\-\-auth\-server\-dir " directory تعیین یک دایرکتوری جایگزین که دیمن در آن پایپ مورد استفاده برای احراز هویت کلاینت‌ها را ایجاد می‌کند. سطح دسترسی توصیه‌شده برای این دایرکتوری 0711 است. این گزینه تنها روی پلتفرم‌هایی معتبر است که در آن‌ها احراز هویت کلاینت از طریق سازوکار انتقال توصیف‌کننده فایل انجام می‌شود. .TP .BI "\-\-auth\-client\-dir " directory تعیین یک دایرکتوری جایگزین که کلاینت‌ها در آن فایل مورد استفاده برای احراز هویت خود در برابر دیمن را ایجاد می‌کنند. سطح دسترسی توصیه‌شده برای این دایرکتوری 1733 است. این گزینه تنها روی پلتفرم‌هایی معتبر است که در آن‌ها احراز هویت کلاینت از طریق سازوکار انتقال توصیف‌کننده فایل انجام می‌شود. .TP .BI "\-\-benchmark" غیرفعال کردن تایمرهای دوره‌ای به منظور کاهش نویز در حین بنچ‌مارک و محک‌زنی. این گزینه بر مخزن آنتروپی PRNG، نگاشت گروه‌های تکمیلی، و هش بازپخش گواهی‌های اعتباری تأثیر می‌گذارد. هنگام اجرا در محیط عملیاتی این گزینه را فعال نکنید. .TP .BI "\-\-group\-check\-mtime " boolean تعیین این‌که آیا زمان آخرین تغییر فایل \fI/etc/group\fR باید پیش از به‌روزرسانی نگاشت عضویت در گروه‌های تکمیلی بررسی شود یا خیر. اگر این مقدار غیرصفر باشد، بررسی فعال می‌شود و نگاشت تنها در صورتی به‌روزرسانی خواهد شد که فایل از زمان آخرین به‌روزرسانی تغییر کرده باشد. .TP .BI "\-\-group\-update\-time " seconds تعیین فاصله زمانی (به ثانیه) بین به‌روزرسانی‌های نگاشت عضویت در گروه‌های تکمیلی؛ این نگاشت هنگام اعمال محدودیت بر روی گواهی‌های اعتباری بر اساس GID استفاده می‌شود. مقدار 0 باعث می‌شود که نگاشت در ابتدا محاسبه شود اما هرگز به‌روزرسانی نگردد (مگر اینکه توسط \fBSIGHUP\fR فعال شود). مقدار \-1 باعث غیرفعال شدن آن می‌شود. .TP .BI "\-\-key\-file " path تعیین یک مسیر جایگزین برای فایل کلید. .TP .BI "\-\-listen\-backlog " integer تعیین حد صف انتظار گوش‌دادن (listen backlog) سوکت؛ توجه داشته باشید که هسته ممکن است حد کمتری را اعمال کند. مقدار 0 از پیش‌فرض نرم‌افزار استفاده می‌کند. مقدار \-1 نشان‌دهنده \fBSOMAXCONN\fR، یعنی حداکثر طول صف انتظار گوش‌دادن تعریف‌شده در \fI\fR است. .TP .BI "\-\-log\-file " path تعیین یک مسیر جایگزین برای فایل لاگ (گزارش وقایع). .TP .BI "\-\-max\-ttl " integer تعیین حداکثر طول عمر (TTL به ثانیه) برای گواهی‌های اعتباری. این مقدار سقف TTL را هم در هنگام رمزگذاری و هم رمزگشایی تعیین می‌کند. حد بالای تعریف‌شده در کد ۳۶۰۰ ثانیه (۱ ساعت) است؛ مقدار پیش‌فرض ۳۶۰۰ می‌باشد. کاهش این مقدار، حداکثر زمان نگهداری ورودی‌های حافظه موقت بازپخش را محدود می‌کند، که در صورت امکان همگام نگه‌داشتن ساعت‌های درون قلمرو MUNGE با کمترین انحراف، راهکاری مناسب است. .TP .BI "\-\-num\-threads " integer تعیین تعداد ریسمان‌ها (threads) جهت ایجاد برای پردازش درخواست‌های گواهی اعتباری. .TP .BI "\-\-origin " address تعیین آدرس مبدأ که در فراداده گواهی اعتباری رمزگذاری می‌شود. این مقدار می‌تواند نام میزبان یا آدرس IPv4 باشد؛ همچنین می‌تواند نام یک رابط شبکه محلی باشد که در این صورت نخستین آدرس IPv4 یافت‌شده و اختصاص‌یافته به آن رابط استفاده خواهد شد. مقدار پیش‌فرض، آدرس IPv4 مربوط به نام میزبان بازگردانده‌شده توسط \fBgethostname()\fR است. ناتوانی در تحلیل آدرس منجر به بروز خطا خواهد شد؛ در صورت نادیده‌گیری، مبدأ بر روی آدرس null تنظیم می‌شود. .TP .BI "\-\-pid\-file " path تعیین یک مسیر جایگزین برای ذخیره شناسه فرایند (PID) دیمن. .TP .BI "\-\-seed\-file " path تعیین یک مسیر جایگزین برای فایل بذر (seed) تولیدکننده اعداد شبه‌تصادفی (PRNG). .TP .BI "\-\-syslog" هدایت پیام‌های لاگ به syslog هنگام اجرای دیمن در پس‌زمینه. .TP .BI "\-\-trusted\-group " group تعیین نام گروه یا GID مربوط به «گروه معتمد» (trusted group). این گزینه برای بررسی مجوزهای دسترسی در ساختار سلسله‌مراتبی دایرکتوری‌ها استفاده می‌شود. دایرکتوری‌هایی که دارای مجوز نوشتن برای گروه هستند در صورتی مجاز شناخته می‌شوند که متعلق به گروه معتمد باشند (یا بیت چسبنده / sticky bit تنظیم شده باشد). .SH "قفل‌کردن حافظه (MEMORY LOCKING)" گزینه \fB\-\-mlockall\fR صفحات حافظه را در حافظه اصلی قفل می‌کند تا از انتقال آن‌ها به فضای مبادله (swap) تحت فشار حافظه جلوگیری شود. .PP میزان مصرف حافظه با تعداد ریسمان‌های کاری، اندازه پایگاه‌های داده کاربر و گروه (در صورت فعال بودن نگاشت گروه‌های تکمیلی)، و نرخ رمزگشایی گواهی‌های اعتباری (که حافظه موقت بازپخش را بزرگ‌تر می‌کند) افزایش می‌یابد. .PP در بسیاری از سیستم‌ها مقدار پیش‌فرض حد مجاز قفل حافظه ناکافی است. حداقل ۱۶ مگابایت برای عملکرد پایه مورد نیاز است؛ مقدار ۶۴ تا ۲۵۶ مگابایت برای پیکربندی‌های معمول توصیه می‌شود. برای افزایش آن می‌توانید از یکی از روش‌های زیر استفاده کنید: .PP .SS "سیستم‌های مبتنی بر systemd (systemd-based systems)" فایل \fI/etc/systemd/system/munge.service.d/memlock.conf\fR را ایجاد کنید: .RS .nf [Service] LimitMEMLOCK=256M .fi .RE .PP سپس سرویس‌ها را مجدداً بارگذاری کرده و ری‌استارت کنید: .RS .nf systemctl daemon-reload systemctl restart munge.service .fi .RE .PP .SS "محدودیت‌های PAM (PAM limits)" خطوط زیر را به فایل \fI/etc/security/limits.conf\fR اضافه کنید (مقادیر به کیلوبایت): .RS .nf munge soft memlock 262144 munge hard memlock 262144 .fi .RE .PP در سیستم‌های مبتنی بر systemd، محدودیت‌های PAM برای سرویس‌ها نادیده گرفته می‌شوند. در عوض از پیکربندی systemd استفاده کنید. .PP .SS "محیط پوسته (برای آزمایش) (Shell environment (for testing))" پیش از اجرای \fBmunged\fR، مقدار حد مجاز را تنظیم کنید (مقدار به کیلوبایت): .RS .nf ulimit \-l 262144 munged \-\-mlockall .fi .RE .PP .SS "ملاحظات امنیتی (Security Considerations)" حافظه موقت بازپخش نامحدود است و همگام با نرخ رمزگشایی گواهی‌های اعتباری رشد می‌کند. ورودی‌های بازپخش تا زمان انقضای گواهی‌ها بر اساس طول عمر (TTL) آن‌ها نگهداری می‌شوند. گواهی‌ها به صورت پیش‌فرض دارای TTL به مدت ۵ دقیقه هستند؛ کلاینت‌ها می‌توانند تا حداکثر TTL پیکربندی‌شده روی دیمن munged رمزگذارنده (به طور پیش‌فرض ۱ ساعت، قابل تنظیم از طریق \fB\-\-max\-ttl\fR) را مشخص کنند. در طول رمزگشایی، TTL گواهی به حداکثر TTL دیمن munged رمزگشا محدود می‌شود. هنگامی که \fB\-\-mlockall\fR مشخص شده باشد، ورودی‌های بازپخش در حافظه فیزیکی قفل می‌شوند. .PP در سیستم‌هایی با کاربران محلی غیرقابل‌اعتماد، یک مهاجم می‌تواند گواهی‌هایی با حداکثر TTL (به طور پیش‌فرض ۱ ساعت) رمزگذاری کرده و آن‌ها را مکرراً رمزگشایی کند تا حافظه موقت بازپخش پر شود. پس از رسیدن به سقف محدودیت قفل حافظه، \fBmunged\fR احتمالاً در هنگام تلاش برای تخصیص حافظه بیشتر متوقف خواهد شد که منجر به بروز وضعیت انکار سرویس (DoS) می‌گردد. .PP از این گزینه تنها در سیستم‌های معتمد که کاربران محلی کنترل شده‌اند استفاده کنید، یا حد مجاز قفل حافظه را به جای نامحدود، روی یک حد بالای منطقی تنظیم نمایید. میزان استفاده از حافظه قفل‌شده \fBmunged\fR را در سیستم‌های پرترافیک مانیتور کنید تا اطمینان حاصل شود که در شرایط کارکرد عادی به این حد نزدیک نمی‌شود. کاهش \fB\-\-max\-ttl\fR می‌تواند رشد حافظه موقت بازپخش را محدود سازد اما نیازمند همگام‌سازی دقیق ساعت‌ها است. .SH "سیگنال‌ها (SIGNALS)" .TP .B SIGHUP به‌روزرسانی فوری نگاشت عضویت در گروه‌های تکمیلی به جای انتظار برای به‌روزرسانی زمان‌بندی‌شده بعدی؛ این نگاشت هنگام اعمال محدودیت بر روی گواهی‌های اعتباری بر اساس GID استفاده می‌شود. .TP .B SIGTERM پایان دادن به فعالیت دیمن. .\" .SH FILES .SH "نکات (NOTES)" تمامی ساعت‌ها درون یک قلمرو امنیتی باید در محدوده تنظیمات طول عمر (TTL) گواهی‌های اعتباری با یکدیگر همگام باشند. .PP در حالی که \fBmunged\fR از رمزگشایی مجدد یک گواهی اعتباری مشخص بر روی یک میزبان خاص جلوگیری می‌کند، هیچ عاملی مانع از رمزگشایی یک گواهی اعتباری پیش از انقضای آن بر روی چندین میزبان مختلف درون همان قلمرو امنیتی نمی‌شود. .SH "نویسنده (AUTHOR)" کریس دانلپ (Chris Dunlap) .SH "حق نشر (COPYRIGHT)" حق نشر \(co 2007-2025 شرکت امنیت ملی لارنس لیورمور (Lawrence Livermore National Security, LLC). .br حق نشر \(co 2002-2007 هیئت امنای دانشگاه کالیفرنیا (The Regents of the University of California). .PP پروژه MUNGE یک نرم‌افزار آزاد است: شما می‌توانید آن را تحت شرایط مجوز عمومی گنو (GNU General Public License) همان‌طور که توسط بنیاد نرم‌افزار آزاد منتشر شده است، چه نسخه ۳ مجوز و چه (به انتخاب خودتان) هر نسخه پس از آن، بازتوزیع کرده و/یا تغییر دهید. .PP همچنین در مورد کتابخانه MUNGE (libmunge)، شما می‌توانید آن را تحت شرایط مجوز عمومی کمتر فراگیر گنو (GNU Lesser General Public License) منتشر شده توسط بنیاد نرم‌افزار آزاد، چه نسخه ۳ مجوز و چه (به انتخاب خودتان) هر نسخه پس از آن، بازتوزیع کرده و/یا تغییر دهید. .SH "همچنین ببینید (SEE ALSO)" .BR munge (1), .BR remunge (1), .BR unmunge (1), .BR munge (3), .BR munge_ctx (3), .BR munge_enum (3), .BR munge (7), .BR mungekey (8). .PP \fBhttps://github.com/dun/munge\fR