OIDENTD.CONF(5) oidentd User Manual OIDENTD.CONF(5)

oidentd.conf - پرونده‌های پیکربندی oidentd

پرونده‌های پیکربندی oidentd برای کنترل پاسخ‌هایی که oidentd پس از دریافت پرس‌وجو برای اتصالی متعلق به یک کاربر خاص به کلاینت‌ها ارسال می‌کند، به کار می‌روند.

پرونده پیکربندی سراسری سیستم /usr/local/etc/oidentd.conf انواع پاسخ‌هایی را مشخص می‌کند که هر کاربر مجاز به ارسال آن‌هاست. به‌طور پیش‌فرض، کاربران باید با نام کاربری واقعی خود پاسخ دهند.

پرونده‌های پیکربندی کاربر ~/.config/oidentd.conf به کاربران اجازه می‌دهند پاسخ‌های سفارشی Ident ارسال کنند یا هویت خود را پنهان نمایند، به شرط آنکه قابلیت‌های لازم را از طریق پرونده پیکربندی سراسری سیستم دریافت کرده باشند. اگر این پرونده وجود نداشته باشد یا oidentd بدون پشتیبانی از دایرکتوری پایه XDG کامپایل شده باشد، پرونده ~/.oidentd.conf به‌جای آن استفاده می‌شود. توجه داشته باشید که پرونده‌های پیکربندی کاربر تنها پس از مشخص شدن تعلق اتصال به کاربر مورد نظر خوانده می‌شوند.

پرونده پیکربندی سراسری سیستم برای اعطای قابلیت‌ها به کاربران یا اجبار کاربران به استفاده از یک قابلیت خاص به کار می‌رود. رفتار پیش‌فرض این است که هیچ مجوزی اعطا نمی‌شود، به این معنی که همه کاربران باید نام‌های کاربری واقعی خود را در پاسخ به پرس‌وجوهای Ident ارسال کنند. پرونده پیکربندی سراسری سیستم ممکن است خالی باشد یا وجود نداشته باشد، که در این حالت همین رفتار پیش‌فرض اعمال می‌شود. تغییرات این پرونده تنها پس از بازخوانی oidentd (که هنگام دریافت سیگنال SIGHUP رخ می‌دهد) یا راه‌اندازی مجدد آن اعمال می‌شوند.

پرونده پیکربندی سراسری سیستم شامل صفر یا یک دستورالعمل به شکل زیر است:

default {
        range-directives...
}

این دستورالعمل پیش‌فرض با همه کاربرانی که هیچ قانون صریحی برای آن‌ها تعریف نشده است مطابقت دارد. هر دستورالعمل کاربری که پس از این دستورالعمل بیاید، قابلیت‌های تعریف‌شده توسط آن را به ارث می‌برد. در صورت وجود، دستورالعمل پیش‌فرض باید اولین دستورالعمل در پرونده پیکربندی سراسری باشد.

پرونده پیکربندی سراسری سیستم همچنین ممکن است شامل صفر یا چند دستورالعمل به شکل زیر باشد:

user username {
        range-directives...
}

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

هر کاربر می‌تواند یک پرونده پیکربندی در ~/.config/oidentd.conf یا ~/.oidentd.conf ایجاد کند. این پرونده باید برای کاربری که oidentd با آن اجرا می‌شود قابل خواندن باشد. پرونده پیکربندی کاربر پس از هر جستجوی موفق به‌طور خودکار خوانده می‌شود، بنابراین هرگونه تغییری بلافاصله اعمال می‌گردد.

پرونده پیکربندی کاربر شامل صفر یا یک دستورالعمل به شکل زیر است:

global {
        capability-statements...
}

این دستورالعمل سراسری با تمام اتصال‌های متعلق به کاربر مطابقت دارد. در صورت وجود، باید اولین دستورالعمل در پرونده پیکربندی کاربر باشد.

پرونده پیکربندی کاربر همچنین ممکن است شامل صفر یا چند دستورالعمل به شکل زیر باشد:

range-specification {
        capability-statements...
}

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

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

default {
        capability-directives...
}

این دستورالعمل پیش‌فرض قواعدی را برای تمام اتصال‌هایی تعریف می‌کند که با هیچ دستورالعمل بازه دیگری مطابقت ندارند. در صورت وجود، دستورالعمل پیش‌فرض باید اولین دستورالعمل در دامنه خود باشد.

یک دستورالعمل بازه همچنین می‌تواند به شکل زیر باشد:

range-specification {
        capability-directives...
}

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

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

to fhost fport fport from lhost lport lport

این مشخصات بازه فقط با اتصال‌هایی مطابقت دارد که میزبان مقصد، درگاه مقصد، میزبان مبدأ و درگاه مبدأ مشخص‌شده را داشته باشند. دست‌کم یکی از این فیلترها باید مشخص شود. فیلترهای حذف‌شده با هر مقداری مطابقت دارند. فیلترها را می‌توان با هر ترتیبی مشخص کرد.

فیلتر fhost میزبان یا آدرس خارجی یک اتصال را از دیدگاه ماشینی که oidentd را اجرا می‌کند، مشخص می‌نماید.

فیلتر fport درگاه یا بازه درگاه‌های خارجی یک اتصال را مشخص می‌کند.

فیلتر lhost میزبان یا آدرس محلی یک اتصال را از دیدگاه ماشینی که oidentd را اجرا می‌کند، مشخص می‌نماید. این گزینه ممکن است برای پشتیبانی از میزبان‌های مجازی روی سیستم‌هایی با بیش از یک آدرس IP مفید باشد.

فیلتر lport درگاه یا بازه درگاه‌های محلی یک اتصال را مشخص می‌کند.

درگاه‌ها را می‌توان به‌صورت عددی (مانند 113) یا با استفاده از نام سرویس (مانند ident) مشخص کرد. بازه‌های درگاه به‌صورت عددی به شکل min:max مشخص می‌شوند. درگاه min را می‌توان حذف کرد تا تمام درگاه‌های کوچک‌تر یا مساوی با درگاه max انتخاب شوند. به همین ترتیب، درگاه max را می‌توان حذف کرد تا تمام درگاه‌های بزرگ‌تر یا مساوی با درگاه min انتخاب گردند.

یک دستورالعمل قابلیت می‌تواند یکی از شکل‌های زیر را داشته باشد:

allow capability

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

deny capability

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

force capability-statement

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

عبارات زیر قابلیت‌های معتبر هستند:

forward
hide
numeric
random
random_numeric

این قابلیت‌ها به کاربران اجازه می‌دهند از بیانیه‌های قابلیت متناظر استفاده کنند.

spoof

قابلیت spoof به کاربران اجازه می‌دهد پاسخ‌های سفارشی Ident ارسال کنند. توجه داشته باشید که این شامل پاسخ دادن با نام کاربری دیگر یا جعل پاسخ‌ها برای اتصال‌ها به درگاه‌های خارجی ممتاز نمی‌شود.

spoof_all

قابلیت spoof_all به کاربران اجازه می‌دهد با نام سایر کاربران پاسخ دهند. این قابلیت باید با احتیاط استفاده شود، چرا که به کاربران امکان جعل هویت دیگر کاربران را در سیستم محلی می‌دهد. قابلیت spoof_all تنها در ترکیب با spoof کار می‌کند، اما متضمن آن نیست.

spoof_privport

قابلیت spoof_privport به کاربران اجازه می‌دهد پاسخ‌ها را برای اتصال‌ها به درگاه‌های خارجی ممتاز (با شماره درگاه زیر 1024) جعل کنند. قابلیت spoof_privport تنها در ترکیب با spoof کار می‌کند، اما متضمن آن نیست.

یک بیانیه قابلیت می‌تواند یکی از شکل‌های زیر را داشته باشد:

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 پاسخ قابل تعیین است. پاسخ‌ها ثبت وقایع می‌شوند، که به مدیر سیستم امکان می‌دهد تشخیص دهد کدام کاربر پاسخ مشخصی را ارسال کرده است.

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" پاسخ می‌دهد و هرگونه تنظیمی را در پرونده پیکربندی کاربر نادیده می‌گیرد.

global {
        reply "paul"
}

به تمام پرس‌وجوهای Ident با "paul" پاسخ می‌دهد.

to irc.example.net fport 6667 {
        hide
}

پاسخ‌های Ident را برای اتصال‌ها به irc.example.net روی درگاه 6667 پنهان می‌کند.

رشته‌ها را می‌توان درون گیومه دوتایی محصور کرد. این برای رشته‌هایی که حاوی نویسه‌های خاص هستند و در غیر این صورت به شکلی ناخواسته تفسیر می‌شوند، مفید است.

رشته‌های درون گیومه ممکن است شامل توالی‌های گریز زیر باشند:

\a    هشدار (زنگ یا bell)
\b    پس‌بر (backspace)
\f    برگه‌خور (form feed)
\n    خط جدید (line feed)
\r    بازگشت به ابتدای سطر (carriage return)
\t    تب افقی (horizontal tab)
\v    تب عمودی (vertical tab)
\\:\    اسلش وارو (backslash)
\"    علامت گیومه دوتایی
\\:NNN  نویسه‌ای با مقدار عددی هشت‌هشتی NNN
\xNN  نویسه‌ای با مقدار عددی شانزده‌شانزدهی NN

پس از برخورد با علامت هش ("#")، oidentd هرگونه متن باقی‌مانده در همان خط را نادیده می‌گیرد. این به کاربران امکان می‌دهد به پرونده پیکربندی توضیحات اضافه کنند. توضیحات را همچنین می‌توان به شکل زیر نوشت که به آن‌ها امکان می‌دهد چندین خط را در بر گیرند:

/* comment */

Janik Rabe <info@janikrabe.com>

در اصل توسط Ryan McCabe نوشته شده است.

لطفاً هرگونه اشکال را به Janik Rabe <info@janikrabe.com>. گزارش دهید.

oidentd(8) oidentd_masq.conf(5)

oidentd 3.1.0