| rlm_passwd(5) | FreeRADIUS Module | rlm_passwd(5) |
نام (NAME)
rlm_passwd - ماژول FreeRADIUS برای مجوزدهی با استفاده از فایلهای با قالب مشابه passwd
توضیحات (DESCRIPTION)
ماژول rlm_passwd قابلیت مجوزدهی (authorization) را از طریق فایلهایی با قالب مشابه /etc/passwd فراهم میکند.
این ماژول به شما امکان میدهد اطلاعات حسابهای کاربری را از هر فایلی با قالب مشابه passwd (مانند /etc/passwd، /etc/group، smbpasswd، .htpasswd و غیره) بازیابی کنید. هر فیلد از فایل میتواند به یک مشخصه RADIUS نگاشت شود، در حالی که یکی از فیلدها به عنوان کلید استفاده میشود.
این ماژول فایل را هنگام مقداردهی اولیه میخواند و دادهها را در حافظه موقت (کش) ذخیره میکند. این کار باعث میشود تا سرعت عملکرد آن حتی برای فایلهایی با هزاران خط بسیار بالا باشد. برای خواندن مجدد فایل، باید ماژول با استفاده از radmin(8) مجدداً بارگذاری شود یا یک سیگنال SIGHUP به سرور ارسال گردد، زیرا بهروزرسانیهای پویا پشتیبانی نمیشوند.
پیکربندی (CONFIGURATION)
مورد یا موارد پیکربندی:
- allow_multiple_keys
- اگر روی «yes» تنظیم شود و بیش از یک رکورد در فایل با درخواست مطابقت داشته باشد، مشخصههای تمام آن رکوردها استفاده خواهند شد. اگر روی «no» (مقدار پیشفرض) تنظیم شود، ماژول درباره رکوردهای تکراری هشدار میدهد.
- delimiter = ":"
- نویسهای که به عنوان جداکننده میان فیلدها استفاده میشود. مقدار پیشفرض ":" است.
- filename
- مسیر فایل.
- format
- قالب فیلدها در فایل که به شکل یک خط نمونه از فایل مشخص میشود؛ به طوری که محتوای فیلدها همان مشخصههای RADIUS است که فیلدها به آنها نگاشت میشوند. فیلدها در پیکربندی با نویسه «:» از یکدیگر جدا میشوند (صرفنظر از اینکه چه مقداری برای گزینه «delimiter» تنظیم شده باشد).
- hash_size
- اندازه جدول درهمسازی (hash table). مقدار بزرگتر به معنای احتمال کمتر وقوع تداخل (collision) است، بنابراین رکوردها با سرعت بیشتری پیدا میشوند، هرچند حافظه بیشتری مصرف خواهد شد. داشتن hash_size در محدوده ۳۰ تا ۱۰۰ درصد تعداد رکوردهای فایل passwd معقول است.
- ignore_empty
- هنگامی که روی «yes» (پیشفرض) تنظیم شود، فیلدهای خالی در ورودی نادیده گرفته میشوند و مشخصه RADIUS افزوده نخواهد شد. با تنظیم این مقدار روی «no»، تمام مشخصههای موجود در فهرست قالب همیشه اضافه خواهند شد، حتی اگر مقداری نداشته باشند.
- ignore_nislike
- اگر روی «yes» تنظیم شود، تمام رکوردهای فایل که با علامت «+» شروع میشوند نادیده گرفته خواهند شد. مقدار پیشفرض «no» است.
قالب (FORMAT)
گزینه format نحوه خوانده شدن خطوط از فایل و نگاشت فیلدها به مشخصههای RADIUS را کنترل میکند.
فیلد کلید، فیلدی است که درون فایل جستجو میشود. این فیلد معمولاً با قرار گرفتن یک نویسه «*» در ابتدای آن مشخص میشود که نشان میدهد این فیلد تنها یک کلید دارد، مانند فایل /etc/passwd. فیلد کلید میتواند در عوض با «*,» آغاز شود که نشان میدهد این فیلد میتواند چندین کلید محتمل و جداشده با کاما داشته باشد، مانند زمان جستجو در فایل /etc/group.
سایر فیلدها نشاندهنده مشخصههای RADIUS هستند. به طور پیشفرض، آنها به عنوان یک فهرست مشخصه کنترلی (control attribute list) اضافه میشوند.
برای افزودن یک مشخصه به درخواست RADIUS (به گونهای که گویی توسط NAS ارسال شده است)، نویسه '~' را به ابتدای نام مشخصه در رشته "format" اضافه کنید.
برای افزودن یک مشخصه به پاسخ RADIUS (جهت ارسال مجدد به NAS)، نویسه «=» را به ابتدای نام مشخصه در رشته "format" اضافه کنید.
مثالها (EXAMPLES)
format = "*User-Name:Crypt-Password:"
- برای فایلی که ساختاری مشابه با /etc/passwd دارد. فیلد اول، User-Name، کلیدی است که باید در فایل جستجو شود. هنگامی که رکورد پیدا شود، یک مشخصه کنترلی به نام 'Crypt-Password' با محتوای فیلد دوم اضافه خواهد شد. (توجه داشته باشید که این روش با گذرواژههای shadow کار نخواهد کرد.)
format = "My-Group:::*,User-Name"
- تجزیه و تحلیل فایلی مشابه با فایل /etc/group. یک مدخل زمانی با درخواست مطابقت دارد که نام موجود در مشخصه User-Name در فهرست مقادیر جداشده با کاما در خطی از فایل وجود داشته باشد. زمانی که یک مدخل تطبیق پیدا کند، یک مشخصه "My-Group" ایجاد شده و به موارد کنترلی درخواست افزوده میشود. مقدار این مشخصه از فیلد اولِ خطِ تطبیقیافته در فایل گرفته خواهد شد.
- علامت ":::" در رشته قالب به این معناست که دو فیلد اضافی در آن خط، میان نام گروه و فهرست نامهای کاربری وجود دارد. آن فیلدها به هیچ مشخصه RADIUS نگاشت نمیشوند و بنابراین نادیده گرفته خواهند شد.
- برای اینکه این مثال در عمل کار کند، باید مشخصه My-Group را به فایل دیکشنری اضافه کنید. برای جزئیات در مورد نحوه انجام این کار، dictionary(5) را ببینید.
format = "~My-Group:::*,User-Name"
- مشابه مدخل قبلی است، با این تفاوت که مشخصه My-Group به خود درخواست اضافه میشود، گویی که توسط NAS ارسال شده باشد.
بخشها (SECTIONS)
authorize
فایلها (FILES)
/etc/raddb/mods-available/passwd
همچنین ببینید (SEE ALSO)
radiusd(8), radiusd.conf(5), radmin(8), dictionary(5), rlm_unix(5)
نویسندگان (AUTHORS)
Alan DeKok <aland@freeradius.org>, Matthew Newton <matthew@newtoncomputing.co.uk>.
| 20 January 2015 |