| OIDENTD.CONF(5) | oidentd User Manual | OIDENTD.CONF(5) |
نام (NAME)
oidentd.conf - پروندههای پیکربندی oidentd
توضیحات (DESCRIPTION)
پروندههای پیکربندی oidentd برای کنترل پاسخهایی که oidentd پس از دریافت پرسوجو برای اتصالی متعلق به یک کاربر خاص به کلاینتها ارسال میکند، به کار میروند.
پرونده پیکربندی سراسری سیستم /usr/local/etc/oidentd.conf انواع پاسخهایی را مشخص میکند که هر کاربر مجاز به ارسال آنهاست. بهطور پیشفرض، کاربران باید با نام کاربری واقعی خود پاسخ دهند.
پروندههای پیکربندی کاربر ~/.config/oidentd.conf به کاربران اجازه میدهند پاسخهای سفارشی Ident ارسال کنند یا هویت خود را پنهان نمایند، به شرط آنکه قابلیتهای لازم را از طریق پرونده پیکربندی سراسری سیستم دریافت کرده باشند. اگر این پرونده وجود نداشته باشد یا oidentd بدون پشتیبانی از دایرکتوری پایه XDG کامپایل شده باشد، پرونده ~/.oidentd.conf بهجای آن استفاده میشود. توجه داشته باشید که پروندههای پیکربندی کاربر تنها پس از مشخص شدن تعلق اتصال به کاربر مورد نظر خوانده میشوند.
پرونده پیکربندی سراسری سیستم (SYSTEM-WIDE CONFIGURATION FILE)
پرونده پیکربندی سراسری سیستم برای اعطای قابلیتها به کاربران یا اجبار کاربران به استفاده از یک قابلیت خاص به کار میرود. رفتار پیشفرض این است که هیچ مجوزی اعطا نمیشود، به این معنی که همه کاربران باید نامهای کاربری واقعی خود را در پاسخ به پرسوجوهای Ident ارسال کنند. پرونده پیکربندی سراسری سیستم ممکن است خالی باشد یا وجود نداشته باشد، که در این حالت همین رفتار پیشفرض اعمال میشود. تغییرات این پرونده تنها پس از بازخوانی oidentd (که هنگام دریافت سیگنال SIGHUP رخ میدهد) یا راهاندازی مجدد آن اعمال میشوند.
پرونده پیکربندی سراسری سیستم شامل صفر یا یک دستورالعمل به شکل زیر است:
default {
range-directives...
}
این دستورالعمل پیشفرض با همه کاربرانی که هیچ قانون صریحی برای آنها تعریف نشده است مطابقت دارد. هر دستورالعمل کاربری که پس از این دستورالعمل بیاید، قابلیتهای تعریفشده توسط آن را به ارث میبرد. در صورت وجود، دستورالعمل پیشفرض باید اولین دستورالعمل در پرونده پیکربندی سراسری باشد.
پرونده پیکربندی سراسری سیستم همچنین ممکن است شامل صفر یا چند دستورالعمل به شکل زیر باشد:
user username {
range-directives...
}
این دستورالعمل کاربر فقط برای کاربر مشخصشده اعمال میشود.
پرونده پیکربندی کاربر (USER CONFIGURATION FILE)
هر کاربر میتواند یک پرونده پیکربندی در ~/.config/oidentd.conf یا ~/.oidentd.conf ایجاد کند. این پرونده باید برای کاربری که oidentd با آن اجرا میشود قابل خواندن باشد. پرونده پیکربندی کاربر پس از هر جستجوی موفق بهطور خودکار خوانده میشود، بنابراین هرگونه تغییری بلافاصله اعمال میگردد.
پرونده پیکربندی کاربر شامل صفر یا یک دستورالعمل به شکل زیر است:
global {
capability-statements...
}
این دستورالعمل سراسری با تمام اتصالهای متعلق به کاربر مطابقت دارد. در صورت وجود، باید اولین دستورالعمل در پرونده پیکربندی کاربر باشد.
پرونده پیکربندی کاربر همچنین ممکن است شامل صفر یا چند دستورالعمل به شکل زیر باشد:
range-specification {
capability-statements...
}
این دستورالعمل بازه فقط برای اتصالهایی اعمال میشود که با مشخصات بازه دادهشده مطابقت داشته باشند.
دستورالعملهای بازه (RANGE DIRECTIVES)
حداکثر یک دستورالعمل بازه در هر دامنه مشخص میتواند به شکل زیر باشد:
default {
capability-directives...
}
این دستورالعمل پیشفرض قواعدی را برای تمام اتصالهایی تعریف میکند که با هیچ دستورالعمل بازه دیگری مطابقت ندارند. در صورت وجود، دستورالعمل پیشفرض باید اولین دستورالعمل در دامنه خود باشد.
یک دستورالعمل بازه همچنین میتواند به شکل زیر باشد:
range-specification {
capability-directives...
}
این دستورالعمل بازه فقط برای اتصالهایی اعمال میشود که با مشخصات بازه دادهشده مطابقت داشته باشند.
مشخصات بازه (RANGE SPECIFICATIONS)
یک مشخصات بازه شامل فیلترهایی است که تعیین میکنند یک دستورالعمل بازه برای کدام اتصالها اعمال شود. ساختار آن به شکل زیر است:
to fhost fport fport from lhost lport lport
این مشخصات بازه فقط با اتصالهایی مطابقت دارد که میزبان مقصد، درگاه مقصد، میزبان مبدأ و درگاه مبدأ مشخصشده را داشته باشند. دستکم یکی از این فیلترها باید مشخص شود. فیلترهای حذفشده با هر مقداری مطابقت دارند. فیلترها را میتوان با هر ترتیبی مشخص کرد.
فیلتر fhost میزبان یا آدرس خارجی یک اتصال را از دیدگاه ماشینی که oidentd را اجرا میکند، مشخص مینماید.
فیلتر fport درگاه یا بازه درگاههای خارجی یک اتصال را مشخص میکند.
فیلتر lhost میزبان یا آدرس محلی یک اتصال را از دیدگاه ماشینی که oidentd را اجرا میکند، مشخص مینماید. این گزینه ممکن است برای پشتیبانی از میزبانهای مجازی روی سیستمهایی با بیش از یک آدرس IP مفید باشد.
فیلتر lport درگاه یا بازه درگاههای محلی یک اتصال را مشخص میکند.
درگاهها را میتوان بهصورت عددی (مانند 113) یا با استفاده از نام سرویس (مانند ident) مشخص کرد. بازههای درگاه بهصورت عددی به شکل min:max مشخص میشوند. درگاه min را میتوان حذف کرد تا تمام درگاههای کوچکتر یا مساوی با درگاه max انتخاب شوند. به همین ترتیب، درگاه max را میتوان حذف کرد تا تمام درگاههای بزرگتر یا مساوی با درگاه min انتخاب گردند.
دستورالعملهای قابلیت (CAPABILITY DIRECTIVES)
یک دستورالعمل قابلیت میتواند یکی از شکلهای زیر را داشته باشد:
allow capability
در این حالت، دستورالعمل به کاربر اجازه استفاده از قابلیت مشخصشده را میدهد.
deny capability
در این حالت، دستورالعمل اجازه کاربر برای استفاده از قابلیت مشخصشده را لغو میکند.
force capability-statement
در این حالت، دستورالعمل کاربر را ملزم به استفاده از قابلیت مشخصشده میکند.
قابلیتها (CAPABILITIES)
عبارات زیر قابلیتهای معتبر هستند:
forward hide numeric random random_numeric
این قابلیتها به کاربران اجازه میدهند از بیانیههای قابلیت متناظر استفاده کنند.
spoof
قابلیت spoof به کاربران اجازه میدهد پاسخهای سفارشی Ident ارسال کنند. توجه داشته باشید که این شامل پاسخ دادن با نام کاربری دیگر یا جعل پاسخها برای اتصالها به درگاههای خارجی ممتاز نمیشود.
spoof_all
قابلیت spoof_all به کاربران اجازه میدهد با نام سایر کاربران پاسخ دهند. این قابلیت باید با احتیاط استفاده شود، چرا که به کاربران امکان جعل هویت دیگر کاربران را در سیستم محلی میدهد. قابلیت spoof_all تنها در ترکیب با spoof کار میکند، اما متضمن آن نیست.
spoof_privport
قابلیت spoof_privport به کاربران اجازه میدهد پاسخها را برای اتصالها به درگاههای خارجی ممتاز (با شماره درگاه زیر 1024) جعل کنند. قابلیت spoof_privport تنها در ترکیب با spoof کار میکند، اما متضمن آن نیست.
بیانیههای قابلیت (CAPABILITY STATEMENTS)
یک بیانیه قابلیت میتواند یکی از شکلهای زیر را داشته باشد:
forward host port
پرسوجوهای دریافتی را به یک کارساز Ident دیگر بازمیفرستد. کارساز مقصد باید از بازفرستادن پشتیبانی کند (مانند oidentd با گزینه --proxy).
ممکن است برای موفقیت بازفرستادن، قابلیتهای دیگری نیز نیاز باشد. برای نمونه، در صورتی که کارساز مقصد پاسخی غیر از نام کاربر در کارساز بازفرستنده بفرستد، قابلیت spoof لازم است. بنابراین ممکن است مطلوب باشد علاوه بر قابلیت forward، دستکم یکی از قابلیتهای hide، spoof، spoof_all و spoof_privport نیز اعطا شود. اگر از force forward استفاده شود، هیچ بررسی اضافی انجام نمیگیرد و نیازی به هیچ قابلیتی نیست.
اگر بازفرستادن با شکست مواجه شود، بسته به اینکه قابلیت hide به کاربر اعطا شده باشد یا خیر، oidentd با خطای "HIDDEN-USER" یا نام کاربری واقعی کاربر پاسخ میدهد. پاسخها ثبت وقایع میشوند، که به مدیر سیستم امکان میدهد تشخیص دهد کدام کاربر پاسخ مشخصی را ارسال کرده است.
hide
پاسخهای Ident را از کلاینتها پنهان میکند. هنگامی که از این قابلیت استفاده میشود، oidentd بهجای ارسال پاسخ Ident، خطای "HIDDEN-USER" را به کلاینتهای Ident گزارش میدهد.
numeric
با شناسه کاربر (UID) پاسخ میدهد.
random
پاسخهای Ident حرفیعددی تولیدشده بهصورت تصادفی ارسال میکند. برای هر جستجوی Ident یک پاسخ جدید ایجاد میشود. پاسخها ثبت وقایع میشوند، که به مدیر سیستم امکان میدهد تشخیص دهد کدام کاربر پاسخ مشخصی را ارسال کرده است.
random_numeric
پاسخهای عددی Ident بهصورت تصادفی بین 0 (شامل) و 100,000 (غیرشامل) با پیشوند "user" ارسال میکند. برای هر جستجوی Ident یک پاسخ جدید ایجاد میشود. پاسخها ثبت وقایع میشوند، که به مدیر سیستم امکان میدهد تشخیص دهد کدام کاربر پاسخ مشخصی را ارسال کرده است.
reply reply1 [reply2 ...]
یک پاسخ Ident را به دلخواه و تصادفی از فهرست پاسخهای نقلقولشده دادهشده ارسال میکند. هنگام استفاده در پرونده پیکربندی کاربر، حداکثر 20 پاسخ را میتوان مشخص کرد. در پرونده پیکربندی سراسری سیستم، تا 255 پاسخ قابل تعیین است. پاسخها ثبت وقایع میشوند، که به مدیر سیستم امکان میدهد تشخیص دهد کدام کاربر پاسخ مشخصی را ارسال کرده است.
مثالها (EXAMPLES)
پرونده پیکربندی سراسری سیستم (SYSTEM-WIDE CONFIGURATION FILE)
default {
default {
allow spoof
}
fport 6667 {
deny spoof
allow hide
}
}
به همه کاربران اجازه میدهد پاسخهای Ident را جعل کنند، بهجز در اتصالها به درگاه 6667. فقط در اتصالها به درگاه 6667، به کاربران اجازه میدهد پاسخهای Ident خود را پنهان نمایند.
user "root" {
default {
force hide
}
}
تمام اتصالهای متعلق به کاربر ریشه (root) را پنهان میکند.
user "lisa" {
lport 1024: {
force reply "me"
}
}
برای اتصالهای متعلق به کاربر "lisa" روی درگاه محلی 1024 یا بالاتر، همواره با "me" پاسخ میدهد و هرگونه تنظیمی را در پرونده پیکربندی کاربر نادیده میگیرد.
پرونده پیکربندی کاربر (USER CONFIGURATION FILE)
global {
reply "paul"
}
به تمام پرسوجوهای Ident با "paul" پاسخ میدهد.
to irc.example.net fport 6667 {
hide
}
پاسخهای Ident را برای اتصالها به irc.example.net روی درگاه 6667 پنهان میکند.
قالببندی رشتهها (STRING FORMATTING)
رشتهها را میتوان درون گیومه دوتایی محصور کرد. این برای رشتههایی که حاوی نویسههای خاص هستند و در غیر این صورت به شکلی ناخواسته تفسیر میشوند، مفید است.
رشتههای درون گیومه ممکن است شامل توالیهای گریز زیر باشند:
\a هشدار (زنگ یا bell) \b پسبر (backspace) \f برگهخور (form feed) \n خط جدید (line feed) \r بازگشت به ابتدای سطر (carriage return) \t تب افقی (horizontal tab) \v تب عمودی (vertical tab) \\:\ اسلش وارو (backslash) \" علامت گیومه دوتایی \\:NNN نویسهای با مقدار عددی هشتهشتی NNN \xNN نویسهای با مقدار عددی شانزدهشانزدهی NN
توضیحات (COMMENTS)
پس از برخورد با علامت هش ("#")، oidentd هرگونه متن باقیمانده در همان خط را نادیده میگیرد. این به کاربران امکان میدهد به پرونده پیکربندی توضیحات اضافه کنند. توضیحات را همچنین میتوان به شکل زیر نوشت که به آنها امکان میدهد چندین خط را در بر گیرند:
/* comment */
نویسنده (AUTHOR)
Janik Rabe <info@janikrabe.com>
در اصل توسط Ryan McCabe نوشته شده است.
اشکالات (BUGS)
لطفاً هرگونه اشکال را به Janik Rabe <info@janikrabe.com>. گزارش دهید.
همچنین ببینید (SEE ALSO)
| oidentd 3.1.0 |