USBGUARD-DAEMON.C(5)   USBGUARD-DAEMON.C(5)

usbguard-daemon.conf - پرونده پیکربندی دیمن USBGuard

پرونده usbguard-daemon.conf پس از تجزیه گزینه‌های خط فرمان توسط دیمن USBGuard بارگذاری می‌شود. این پرونده برای پیکربندی پارامترهای زمان اجرای دیمن به کار می‌رود. مسیر جستجوی پیش‌فرض /etc/usbguard/usbguard-daemon.conf است. این مسیر را می‌توان با استفاده از گزینه خط فرمان -c بازنویسی کرد، برای جزئیات بیشتر به usbguard-daemon(8) مراجعه کنید.

RuleFile=path

دیمن USBGuard از این پرونده برای بارگذاری مجموعه قوانین خط‌مشی و نوشتن قوانین جدید دریافت‌شده از طریق رابط IPC استفاده خواهد کرد. پیش‌فرض: %sysconfdir%/usbguard/rules.conf

RuleFolder=path

دیمن USBGuard از این پوشه برای بارگذاری مجموعه قوانین خط‌مشی و نوشتن قوانین جدید دریافت‌شده از طریق رابط IPC استفاده خواهد کرد. معمولاً این گزینه روی /etc/usbguard/rules.d/ تنظیم می‌شود. از آنجا که دیمن USBGuard رفتاری همانند سایر دیمن‌های استاندارد لینوکس دارد، پرونده‌های قوانین را به ترتیب حروف و اعداد بارگذاری می‌کند. نام پرونده‌های درون دایرکتوری RuleFolder باید با یک پیشوند عددی دو رقمی آغاز شوند که ترتیب پیمایش قوانین توسط دیمن را مشخص می‌کند. استفاده هم‌زمان از RuleFile و RuleFolder مجاز است. با این حال، در صورت برقراری یکی از شرایط زیر، امکان اصلاح خط‌مشی دائمی وجود نخواهد داشت:
•هیچ‌یک از گزینه‌های RuleFile یا RuleFolder مشخص نشده باشند.
•گزینه RuleFile مشخص نشده باشد، و RuleFolder مشخص شده باشد اما حاوی هیچ پرونده‌ای که بتوان قوانین دائمی را در آن ذخیره کرد نباشد.

ImplicitPolicyTarget=target

نحوه رفتار با دستگاه‌های USB که با هیچ قانونی در خط‌مشی مطابقت ندارند. مقدار هدف باید یکی از گزینه‌های allow، block یا reject (حذف منطقی گره دستگاه از سیستم) باشد. پیش‌فرض: block

PresentDevicePolicy=policy

نحوه رفتار با دستگاه‌های USB که هنگام شروع به کار دیمن از قبل متصل هستند. خط‌مشی باید یکی از گزینه‌های allow، block، reject، keep (حفظ وضعیت فعلی دستگاه) یا apply-policy (ارزیابی مجموعه قوانین برای هر دستگاه موجود) باشد. پیش‌فرض: apply-policy

PresentControllerPolicy=policy

نحوه رفتار با دستگاه‌های کنترلر USB که هنگام شروع به کار دیمن از قبل متصل هستند. یکی از گزینه‌های allow، block، reject، keep یا apply-policy. پیش‌فرض: keep

InsertedDevicePolicy=policy

نحوه رفتار با دستگاه‌های USB که پس از شروع به کار دیمن متصل می‌شوند. یکی از گزینه‌های block، reject یا apply-policy. پیش‌فرض: apply-policy

AuthorizedDefault=authorizedDefault

دیمن USBGuard برخی از مشخصه‌های وضعیت مجوزدهی پیش‌فرض دستگاه‌های کنترلر را تغییر می‌دهد. این تنظیم به شما امکان می‌دهد مشخص کنید مجوزدهی پیش‌فرض روی چه مقداری تنظیم شود. مقدار پیش‌فرض مجوزدهی باید یکی از گزینه‌های keep (عدم تغییر وضعیت مجوزدهی)، none (هر دستگاه جدید در ابتدا لغو مجوز می‌شود)، all (هر دستگاه جدید در ابتدا مجاز دانسته می‌شود) یا internal (دستگاه‌های داخلی مجاز شناخته می‌شوند، دستگاه‌های خارجی خیر) باشد. پیش‌فرض: none

RestoreControllerDeviceState=boolean

دیمن USBGuard برخی مشخصه‌های دستگاه‌های کنترلر مانند وضعیت مجوزدهی پیش‌فرض نمونه‌های دستگاه فرزند جدید را تغییر می‌دهد. با استفاده از این تنظیم، می‌توانید کنترل کنید که آیا دیمن هنگام خاموش شدن تلاش کند مقادیر مشخصه‌ها را به وضعیت پیش از تغییر بازگرداند یا خیر. پیش‌فرض: false

DeviceManagerBackend=backend

تعیین پیاده‌سازی بک‌اند مدیریت دستگاه مورد استفاده. بک‌اند باید یکی از گزینه‌های uevent (پیش‌فرض) یا umockdev (مفید برای آزمایش) باشد. بک‌اند UEvent پیاده‌سازی مبتنی بر netlink است که از sysfs برای پویش دستگاه‌های موجود و از یک سوکت uevent برای دریافت رویدادهای مرتبط با دستگاه‌های USB استفاده می‌کند. مدیر دستگاه مبتنی بر UMockDev قادر است دستگاه‌ها را بر اساس پرونده‌های umockdev-record شبیه‌سازی کند. پیش‌فرض: uevent

IPCAllowedUsers=username [username ...]

فهرستی از نام‌های کاربری جداشده با فاصله که دیمن اتصال‌های IPC را از آن‌ها می‌پذیرد. پیش‌فرض: root

IPCAllowedGroups=groupname [groupname ...]

فهرستی از نام‌های گروه‌ها جداشده با فاصله که دیمن اتصال‌های IPC را از آن‌ها می‌پذیرد.

IPCAccessControlFiles=path

پرونده‌های موجود در این مسیر توسط دیمن به عنوان پرونده‌های تعریف کنترل دسترسی IPC تفسیر می‌شوند. برای جزئیات بیشتر به بخش کنترل دسترسی IPC (IPC ACCESS CONTROL) مراجعه کنید.

DeviceRulesWithPort=boolean

تولید قوانین ویژه دستگاه شامل مشخصه «via-port». پیش‌فرض: false

AuditBackend=backend

بک‌اند ثبت رویدادهای حسابرسی (Audit) در USBGuard. مقدار backend باید یکی از گزینه‌های FileAudit یا LinuxAudit باشد. پیش‌فرض: FileAudit

AuditFilePath=filepath

مسیر پرونده گزارش رویدادهای حسابرسی USBGuard. در صورتی که AuditBackend روی FileAudit تنظیم شده باشد الزامی است. پیش‌فرض: %localstatedir%/log/usbguard/usbguard-audit.log

HidePII=boolean

اطلاعات هویتی اشخاص (PII) مانند شماره سریال دستگاه و درهم‌ساز توصیف‌گرها (که شامل شماره سریال است) را از مدخل‌های حسابرسی پنهان می‌کند. پیش‌فرض: false

دیمن رابط عمومی IPC را برای USBGuard فراهم می‌کند. بسته به پیش‌فرض‌های توزیع شما، دسترسی به این رابط تنها به گروهی خاص یا کاربری مشخص محدود می‌شود. لطفاً یکی از گزینه‌های IPCAllowedUsers، IPCAllowedGroups یا IPCAccessControlFiles را برای محدود کردن دسترسی به رابط IPC تنظیم کنید. فهرست کنترل دسترسی (ACL) را بدون پیکربندی رها نکنید زیرا این کار رابط IPC را در معرض دسترس تمام کاربران محلی قرار می‌دهد و به آن‌ها اجازه می‌دهد وضعیت مجوزدهی دستگاه‌های USB را دستکاری کرده و خط‌مشی USBGuard را تغییر دهند.

در صورت تنظیم روی true، خط‌مشی مجوزدهی USB می‌تواند با اجرای نوعی حمله علیه دیمن (از طریق یک اکسپلویت محلی یا از طریق یک دستگاه USB) دور زده شود تا دیمن متوقف شده و به وضعیت پیش‌فرض سیستم‌عامل (که معمولاً سهل‌گیرانه است) بازگردد.

دسترسی به رابط IPC در USBGuard را می‌توان به ازای هر کاربر یا گروه محدود کرد. علاوه بر این، با استفاده از پرونده‌های کنترل دسترسی IPC، می‌توان دسترسی را همان‌طور که در ادامه توضیح داده شده تا سطح بخش‌ها (Sections) و امتیازها (Privileges) محدود ساخت.

هنگامی که گزینه IPCAccessControlFiles را تنظیم می‌کنید، دیمن پرونده‌های کنترل دسترسی IPC را در پوشه مشخص‌شده جستجو می‌کند. هر پرونده در این پوشه به صورت زیر پردازش می‌شود:

1.نام پایه (basename) پرونده به عنوان نام کاربری، UID، نام گروه یا GID تفسیر می‌شود. اگر نام با : (دو نقطه) آغاز شود، فرض بر این است که باقی‌مانده نام نشان‌دهنده یک شناسه گروه (نام گروه یا GID در صورت رشته تمام‌عددی) است. در غیر این صورت، به عنوان شناسه کاربر (نام کاربری یا UID در صورت رشته تمام‌عددی) تفسیر می‌شود.
2.محتوای پرونده به صورت خطوط قالب‌بندی‌شده Section=[privilege1][,privilege2] ... تجزیه می‌شود که امتیازهای بخش را مشخص می‌کنند. اگر بخشی حذف شود، فرض می‌شود که هیچ امتیازی برای آن بخش داده نشده است.

بخش‌ها و امتیازهای در دسترس:

•Devices
•modify: تغییر وضعیت مجوزدهی دستگاه‌ها از جمله تغییرات دائمی (یعنی اصلاح قوانین ویژه دستگاه در خط‌مشی).
•list: توانایی دریافت فهرستی از دستگاه‌های شناسایی‌شده و مشخصه‌های آن‌ها.
•listen: شنود رویدادهای حضور دستگاه و تغییرات خط‌مشی دستگاه.
•Policy
•modify: افزودن قوانین به خط‌مشی یا حذف هر قانونی از آن.
•list: توانایی مشاهده خط‌مشی اعمال‌شده کنونی.
•Exceptions
•listen: دریافت پیام‌های استثنا (Exceptions).
•Parameters
•modify: تنظیم مقادیر پارامترهای زمان اجرا.
•list: دریافت مقادیر پارامترهای زمان اجرا.
•listen: شنود تغییرات پارامترهای مشخصه.

نمونه زیر یک مثال عموماً کاربردی و با امنیت مناسب از یک پرونده کنترل دسترسی است. این نمونه امکان تغییر وضعیت مجوزدهی دستگاه USB (Devices=modify)، فهرست کردن دستگاه‌های USB (Devices=list)، شنود رویدادهای مرتبط با دستگاه‌های USB (Devices=listen)، فهرست کردن قوانین خط‌مشی مجوزدهی USB (Policy=list) و شنود رویدادهای استثنا (Exceptions=listen) را فراهم می‌آورد:

Devices=modify,list,listen
Policy=list
Exceptions=listen

می‌توانید پرونده‌های کنترل دسترسی IPC را با استفاده از دستورات خط فرمان usbguard add-user و usbguard remove-user ایجاد یا حذف کنید. برای جزئیات بیشتر به usbguard(1) مراجعه کنید. اگر می‌خواهید پرونده‌های کنترل دسترسی IPC را به صورت دستی بسازید، باید مجوزهای پرونده‌ها را روی 0600 تنظیم کنید.

نمونه پیکربندی که دسترسی کامل IPC را به کاربران root و joe و اعضای گروه wheel اعطا می‌کند:

IPCAllowedUsers=root joe
IPCAllowedGroups=wheel

usbguard-daemon(8), usbguard-rules.conf(5)

اگر اشکالی در این نرم‌افزار یافتید یا می‌خواهید پیاده‌سازی قابلیتی را درخواست کنید، لطفاً یک تیکت در https://github.com/USBGuard/usbguard/issues/new ثبت کنید.

نرم‌افزار USBGuard در ابتدا توسط Daniel Kopeček نوشته شده است. افراد بسیاری در توسعه آن مشارکت داشته‌اند.

وب‌گاه اصلی: https://usbguard.github.io

مجوز GPLv2+: گنو GPL نسخه ۲ یا بالاتر http://gnu.org/licenses/gpl.html. این یک نرم‌افزار آزاد است: شما مجاز به تغییر و بازتوزیع آن هستید. تا جایی که قانون اجازه می‌دهد، هیچ ضمانتی وجود ندارد.

09/05/2026