| AUDITD.CONF(5) | ابزارهای مدیریت سیستم | AUDITD.CONF(5) |
نام (NAME)
auditd.conf - فایل پیکربندی دیمن بازرسی (audit daemon)
توضیحات (DESCRIPTION)
فایل /etc/audit/auditd.conf حاوی اطلاعات پیکربندی مختص دیمن بازرسی (auditd) است. هر سطر باید شامل یک کلیدواژه پیکربندی، یک علامت مساوی (=) و به دنبال آن مقادیر پیکربندی متناظر باشد. تمامی نامها و مقادیر گزینهها به حروف کوچک و بزرگ حساس نیستند (case-insensitive). کلیدواژههای معتبر در ادامه فهرست و شرح داده شدهاند. طول هر سطر باید به ۱۶۰ نویسه محدود شود؛ در غیر این صورت سطر نادیده گرفته خواهد شد. برای درج یادداشت و توضیحات (کامنت) میتوانید سطر را با نویسه '#' آغاز کنید.
- local_events
- این کلیدواژه با مقادیر yes/no مشخص میکند که آیا رویدادهای محلی ثبت شوند یا خیر. به طور معمول شما خواستار ثبت رویدادهای محلی هستید، بنابراین مقدار پیشفرض آن yes است. مواردی که ممکن است این مقدار را روی no تنظیم کنید زمانی است که تنها میخواهید رویدادها را از شبکه تجمیع نمایید. در حال حاضر، این گزینه در مواردی سودمند است که دیمن بازرسی درون یک کانتینر در حال اجرا باشد. این گزینه فقط یکبار هنگام راهاندازی دیمن قابل تنظیم است؛ بارگذاری مجدد فایل پیکربندی تأثیری بر آن ندارد.
- log_file
- این کلیدواژه مسیر کامل فایل گزارشی که رکوردهای بازرسی در آن ذخیره میشوند را مشخص میکند. این فایل باید یک فایل معمولی (regular file) باشد. در صورت عدم تعیین صریح، مسیر پیشفرض /var/log/audit/audit.log است.
- write_logs
- این کلیدواژه با مقادیر yes/no تعیین میکند که آیا گزارشها روی دیسک نوشته شوند یا خیر. به طور معمول به این قابلیت نیاز است، بنابراین مقدار پیشفرض آن yes است.
- log_format
- قالب گزارش مشخص میکند که اطلاعات چگونه باید روی دیسک ذخیره شوند. دو گزینه وجود دارد: raw و enriched. چنانچه روی RAW تنظیم شود، رکوردهای بازرسی دقیقاً به همان قالبی که هسته ارسال میکند ذخیره میشوند. گزینه ENRICHED تمامی اطلاعات مربوط به uid، gid، فراخوانی سیستمی (syscall)، معماری و نشانی سوکت را پیش از نوشتن رویداد روی دیسک حل و نامگذاری (resolve) میکند. این قابلیت به فهم رویدادهایی که در یک سیستم تولید شده اما در سیستم دیگری گزارش یا تحلیل میشوند کمک مینماید. گزینه NOLOG اکنون منسوخ شده است. اگر قبلاً از این قالب استفاده میکردید، اکنون باید گزینه write_logs را روی no قرار دهید.
- log_group
- این کلیدواژه گروهی را مشخص میکند که بر دسترسیهای فایل گزارش اعمال میشود. مقدار پیشفرض root است. نام گروه میتواند به صورت عددی یا به صورت نام متنی وارد شود.
- priority_boost
- یک عدد نامنفی است که به دیمن بازرسی اعلام میکند اولویت اجرایی آن چه میزان ارتقا یابد. مقدار پیشفرض ۴ است. مقدار ۰ به معنای عدم تغییر اولویت است.
- flush
- مقادیر معتبر عبارتند از: none، incremental، incremental_async، data و sync. اگر روی none تنظیم شود، هیچ تلاش خاصی برای تخلیه و همگامسازی رکوردهای بازرسی بر روی دیسک صورت نمیگیرد. اگر روی incremental تنظیم گردد، پارامتر freq برای تعیین تعداد دفعات صدور دستور تخلیه صریح به دیسک به کار میرود. پارامتر incremental_async بسیار شبیه به incremental است، با این تفاوت که تخلیه دادهها برای دستیابی به کارایی بالاتر به صورت ناهمگام انجام میشود. پارامتر data به دیمن بازرسی میگوید که بخش دادههای فایل دیسک را همواره همگام (sync) نگه دارد. گزینه sync به دیمن بازرسی میگوید که در هر بار نوشتن روی دیسک، هم دادهها و هم فرادادهها (meta-data) را کاملاً همگام نگه دارد. مقدار پیشفرض incremental_async است.
- freq
- یک عدد نامنفی است که به دیمن بازرسی اعلام میکند پیش از صدور دستور تخلیه صریح به دیسک، چه تعداد رکورد را بنویسد. این مقدار تنها زمانی معتبر است که کلیدواژه flush روی incremental یا incremental_async تنظیم شده باشد.
- num_logs
- این کلیدواژه تعداد فایلهای گزارشی را مشخص میکند که در صورت تعیین rotate به عنوان max_log_file_action باید نگهداری شوند. اگر عدد کمتر از ۲ باشد، گزارشها چرخانده (rotate) نمیشوند. این عدد باید ۹۹۹ یا کمتر باشد. مقدار پیشفرض ۰ است که به معنای عدم چرخش است. با افزایش تعداد فایلهای لاگ مورد چرخش، ممکن است نیاز باشد تنظیمات صف انباشته هسته (kernel backlog) را افزایش دهید، چرا که چرخاندن فایلها زمان بیشتری میبرد. این کار معمولاً در /etc/audit/audit.rules انجام میشود. اگر چرخش لاگها پیکربندی شده باشد، دیمن لاگهای اضافی را بررسی کرده و در جهت حفظ فضای خالی دیسک آنها را حذف میکند. بررسی لاگهای اضافی تنها در زمان راهاندازی و هنگام پیکربندی مجددی که منجر به بررسی فضا شود، انجام میگیرد.
- name_format
- این گزینه نحوه درج نام گره (node) رایانه را در جریان رویدادهای بازرسی کنترل میکند. انتخابهای زیر در دسترس هستند: none، hostname، fqd، numeric و user. گزینه none به این معناست که هیچ نامی برای رایانه در رویداد بازرسی درج نمیشود. گزینه hostname نامی است که توسط فراخوانی سیستمی gethostname بازگردانده میشود. گزینه fqd نام میزبان را گرفته و از طریق DNS آن را به نام دامنه کاملاً واجد شرایط (FQDN) آن ماشین تبدیل میکند. گزینه numeric مشابه fqd است، با این تفاوت که نشانی IP ماشین را حل میکند. برای استفاده از این گزینه، ممکن است بخواهید بررسی کنید که دستور 'hostname -i' یا 'domainname -i' یک نشانی عددی برمیگرداند. همچنین در صورت استفاده از DHCP، استفاده از این گزینه پیشنهاد نمیشود زیرا ممکن است در طول زمان نشانیهای متفاوتی برای یک ماشین ثبت گردد. گزینه user یک رشته تعیینشده توسط مدیر سیستم از طریق گزینه name است. مقدار پیشفرض none میباشد.
- name
- این یک رشته تعریفشده توسط مدیر سیستم است که در صورت تعیین user به عنوان گزینه name_format، ماشین را شناسایی میکند.
- max_log_file
- این کلیدواژه حداکثر حجم فایل را بر حسب مبیبایت (MiB) مشخص میکند. با رسیدن به این حد، یک اقدام قابل پیکربندی فعال خواهد شد. مقدار دادهشده باید عددی باشد.
- max_log_file_action
- این پارامتر به سیستم اعلام میکند که هنگام تشخیص رسیدن حجم فایل به حداکثر مجاز، چه اقدامی انجام دهد. مقادیر معتبر عبارتند از: ignore، syslog، exec، suspend، rotate و keep_logs. اگر روی ignore تنظیم شود، دیمن بازرسی کاری انجام نمیدهد. گزینه syslog یک هشدار به syslog ارسال میکند. با تنظیم exec همراه با مسیر اسکریپت (/path-to-script)، اسکریپت مربوطه اجرا خواهد شد. شما نمیتوانید آرگومانی به اسکریپت ارسال کنید. همچنین اسکریپت پس از پایان عملیات خود، مسئول اعلام از سرگیری ثبت لاگ به دیمن auditd است. این کار با افزودن auditdctl --signal resume به اسکریپت انجامپذیر است. همچنین توجه داشته باشید که در زمان اجرای این اسکریپت، فرآیند ثبت وقایع متوقف میشود. هر اقدامی که اسکریپت انجام میدهد باید بسیار سریع باشد، زیرا رویدادها در هسته انباشته میشوند. اسکریپت باید فایل /var/log/audit/audit.log را حذف کرده یا تغییر نام دهد؛ در غیر این صورت پس از از سرگیری ثبت وقایع، اجرای مجدد اسکریپت بیدرنگ تکرار خواهد شد. چنانچه اسکریپت در اجرا شکست بخورد، بازرسی به حالت تعلیق درمیآید تا زمانی که با ارسال سیگنال فرمان از سرگیری داده شود. گزینه suspend موجب میشود دیمن بازرسی نوشتن رکوردها روی دیسک را متوقف کند؛ در این حالت دیمن همچنان فعال باقی میماند. گزینه rotate باعث میشود دیمن بازرسی لاگها را بچرخاند. باید توجه داشت که لاگهای با شماره بالاتر، قدیمیتر از لاگهای با شماره پایینتر هستند. این همان قاعدهای است که توسط ابزار logrotate استفاده میشود. گزینه keep_logs مشابه rotate است، با این تفاوت که از تنظیم num_logs استفاده نمیکند. این امر از رونویسی لاگهای بازرسی جلوگیری مینماید. نتیجه این است که لاگها انباشته شده و حذف نمیشوند - که در صورت پر شدن حجم ذخیرهسازی، اقدام مشخصشده در space_left_action را فعال خواهد کرد. بهترین شیوه، استفاده از این گزینه در ترکیب با یک اسکریپت خارجی جهت بایگانی دورهای لاگها است.
- verify_email
- این گزینه مشخص میکند که آیا نشانی ایمیل دادهشده در action_mail_acct بررسی شود تا اطمینان حاصل گردد نام دامنه آن قابل حل (resolve) است یا خیر. این گزینه باید پیش از action_mail_acct تعیین شود؛ در غیر این صورت مقدار پیشفرض yes اعمال خواهد شد.
- action_mail_acct
- این گزینه باید شامل یک نشانی ایمیل یا نام مستعار (alias) معتبر باشد. نشانیها میتوانند از زیرنشانیدهی سبک RFC 5233 با استفاده از نویسه '+' استفاده کنند. نویسههای مجاز شامل حروف و ارقام، '@'، '.'، '-'، '_' و '+' هستند. نشانی پیشفرض root است. چنانچه نشانی ایمیل محلی ماشین نباشد، باید اطمینان حاصل کنید که ایمیل به درستی بر روی سیستم و شبکه شما پیکربندی شده است. این گزینه مستلزم وجود فایل /usr/lib/sendmail بر روی ماشین است. بسیاری از کلاینتها آن را به صورت یک پیوند نمادین (symlink) ارائه میدهند.
- space_left
- اگر فضای خالی در فایلسیستم حاوی log_file به کمتر از این مقدار برسد، دیمن بازرسی اقدام مشخصشده توسط space_left_action را انجام میدهد. اگر مقدار space_left به عنوان یک عدد صحیح کامل مشخص شود، به عنوان اندازه مطلق بر حسب مبیبایت (MiB) تفسیر میشود. چنانچه مقدار به صورت عددی بین ۱ تا ۹۹ همراه با علامت درصد (به عنوان مثال 5%) تعیین گردد، دیمن بازرسی اندازه مطلق بر حسب مبیبایت را بر اساس حجم فایلسیستم حاوی log_file محاسبه میکند. (برای نمونه، اگر فایلسیستم حاوی log_file دارای ظرفیت ۲ گیگابایت باشد و space_left روی 25% تنظیم شود، دیمن بازرسی space_left را تقریباً برابر با ۵۰۰ مبیبایت در نظر میگیرد). توجه داشته باشید که این محاسبه در هنگام راهاندازی دیمن بازرسی انجام میشود؛ بنابراین اگر اندازه فایلسیستم حاوی log_file را در حین اجرای دیمن بازرسی تغییر دادید، باید سیگنال SIGHUP را به دیمن بازرسی ارسال کنید تا فایل پیکربندی را دوباره خوانده و درصد صحیح را مجدداً محاسبه نماید.
- space_left_action
- این پارامتر به سیستم اعلام میکند که پس از تشخیص شروع کاهش فضای دیسک، چه واکنشی نشان دهد. مقادیر معتبر عبارتند از: ignore، syslog، rotate، email، exec، suspend و single. اگر روی ignore تنظیم شود، دیمن بازرسی کاری انجام نمیدهد. گزینه syslog یک هشدار به syslog صادر میکند. گزینه rotate فایلهای لاگ را میچرخاند و قدیمیترین آنها را برای آزادسازی فضا حذف مینماید. گزینه Email پیام هشداری را به حساب ایمیل مشخصشده در action_mail_acct ارسال کرده و پیام را به syslog نیز میفرستد. با تنظیم exec همراه با مسیر اسکریپت (/path-to-script)، اسکریپت اجرا خواهد شد. شما نمیتوانید آرگومانی به اسکریپت بفرستید. همچنین اسکریپت پس از اتمام وظیفه خود مسئول اعلام از سرگیری ثبت لاگ به دیمن auditd است که با افزودن service auditd resume (یا auditdctl --signal resume) به اسکریپت انجام میپذیرد. گزینه suspend باعث میشود دیمن بازرسی نوشتن رکوردها روی دیسک را متوقف سازد. در صورت عدم موفقیت در اجرای اسکریپت، دیمن بازرسی در حالت تعلیق باقی خواهد ماند تا زمانی که با ارسال سیگنال فرمان از سرگیری به آن داده شود. گزینه single باعث میشود دیمن بازرسی سیستم رایانه را در حالت تککاربره (single-user mode) قرار دهد. به جز حالت rotate، این اقدام تنها یکبار انجام خواهد شد. گزینه halt که پیشتر در دسترس بود و موجب خاموش شدن سیستم رایانه میشد، اکنون منسوخ شده و دیگر نباید استفاده شود. مشخص گردید که متوقف کردن سیستم در این مرحله میتواند پیامدهای ناخواستهای در پی داشته باشد و در صورت انتخاب، اقدامی نامناسب تلقی میشود.
هشدارهای فضای دیسک یک روند سه مرحلهای را دنبال میکنند: پارامتر space_left_action نقطه حداقل سطح آب (low water mark) و نخستین هشدار مبنی بر رو به اتمام بودن فضای دیسک است. خاموش کردن سیستم در این مرحله توصیه نمیشود، چرا که مانع از اقدام اصلاحی توسط مدیران سیستم میگردد. مرحله بعدی، admin_space_left_action نشاندهنده سطح اضطراری است که آزادسازی فوری فضای دیسک را میطلبد. مدیران سیستم باید پاسخهای حیاتی را برای این سطح پیکربندی کنند. سرانجام، disk_full_action زمانی رخ میدهد که دیسک کاملاً پر شده باشد. در این مرحله ممکن است سیستم از پیش متوقف شده باشد و اقدامات پیشگیرانهای که در مراحل اولیه پیکربندی شدهاند، رفتار سیستم را رقم خواهند زد.
- admin_space_left
- یک مقدار عددی بر حسب مبیبایت (MiB) است که مشخص میکند چه زمانی دیمن بازرسی به دلیل اینکه سیستم با کمبود فضای دیسک مواجه است یک اقدام قابل پیکربندی را به اجرا گذارد. این پارامتر باید به عنوان آخرین فرصت پیش از اتمام کامل فضای دیسک در نظر گرفته شود. مقدار عددی این پارامتر باید کمتر از مقدار تعیینشده برای space_left باشد. همچنین میتوانید علامت درصد (به عنوان مثال 1%) را به انتهای عدد اضافه کنید تا دیمن بازرسی مقدار را بر اساس ظرفیت پارتیشن دیسک محاسبه کند.
- admin_space_left_action
- این پارامتر به سیستم اعلام میکند که پس از تشخیص کمبود فضای دیسک چه اقدامی انجام دهد. مقادیر معتبر عبارتند از: ignore، syslog، rotate، email، exec، suspend، single و halt. چنانچه روی ignore تنظیم شود، دیمن بازرسی کاری انجام نمیدهد. گزینه Syslog یک هشدار به سامانه syslog صادر میکند. گزینه rotate فایلهای لاگ را میچرخاند و قدیمیترین آنها را برای آزادسازی فضا پاک میکند. گزینه Email هشداری را به نشانی ایمیل تعیینشده در action_mail_acct ارسال کرده و پیام را به syslog نیز میفرستد. با تنظیم exec همراه با مسیر اسکریپت، اسکریپت مربوطه اجرا میشود. شما نمیتوانید آرگومانی به اسکریپت ارسال کنید. اسکریپت وظیفه دارد پس از پایان کار با افزودن دستور service auditd resume به اسکریپت، از سرگیری ثبت وقایع را به دیمن اعلام نماید. گزینه Suspend موجب میشود دیمن بازرسی نوشتن رکوردها روی دیسک را متوقف کند؛ دیمن همچنان فعال خواهد ماند. گزینه single سیستم را در حالت تککاربره قرار میدهد. گزینه halt موجب خاموش شدن سیستم رایانه میشود. به جز rotate، این اقدام تنها یکبار انجام میپذیرد.
- disk_full_action
- این پارامتر مشخص میکند سیستم زمانی که تشخیص دهد پارتیشن محل نگهداری فایلهای لاگ پر شده است، چه واکنشی نشان دهد. مقادیر معتبر عبارتند از: ignore، syslog، rotate، exec، suspend، single و halt. اگر روی ignore تنظیم شود، دیمن بازرسی پیامی به syslog صادر میکند اما هیچ اقدام دیگری انجام نخواهد شد. گزینه Syslog یک هشدار به syslog صادر مینماید. گزینه rotate فایلهای لاگ را میچرخاند و قدیمیترین آنها را برای باز کردن فضا پاک میکند. تنظیم exec همراه با مسیر اسکریپت، اسکریپت مربوطه را اجرا خواهد کرد. شما نمیتوانید آرگومانی به اسکریپت بفرستید. اسکریپت همچنین مسئول اعلام از سرگیری ثبت لاگها پس از پایان کار خود است که با افزودن service auditd resume به اسکریپت امکانپذیر خواهد بود. گزینه Suspend نوشتن رکوردها روی دیسک را متوقف میکند؛ دیمن همچنان زنده و فعال باقی میماند. گزینه single سیستم را وارد وضعیت تککاربره میکند. گزینه halt موجب خاموش شدن کامل سیستم رایانه میشود.
- disk_error_action
- این پارامتر مشخص میکند که هرگاه در حین نوشتن رویدادهای بازرسی روی دیسک یا چرخاندن لاگها خطایی شناسایی شد، سیستم چه واکنشی نشان دهد. مقادیر معتبر عبارتند از: ignore، syslog، exec، suspend، single و halt. اگر روی ignore تنظیم شود، دیمن بازرسی هیچ اقدامی انجام نمیدهد. گزینه Syslog حداکثر ۵ هشدار متوالی به syslog ارسال میکند. با تنظیم exec همراه با مسیر اسکریپت، اسکریپت اجرا میشود. شما نمیتوانید آرگومانی به اسکریپت بفرستید. گزینه Suspend نوشتن رکوردها بر روی دیسک را متوقف میکند، ولی دیمن فعال میماند. گزینه single سیستم رایانه را در حالت تککاربره قرار میدهد. گزینه halt سیستم رایانه را خاموش میکند.
- tcp_listen_port
- یک مقدار عددی در محدوده ۱ تا ۶۵۵۳۵ است که در صورت تعیین، باعث میشود auditd برای دریافت رکوردهای بازرسی از سیستمهای راه دور، روی پورت TCP متناظر گوش فرا دهد. ممکن است دیمن بازرسی با tcp_wrappers پیوند (link) داده شده باشد؛ در این صورت ممکن است بخواهید کنترل دسترسی را با مدخلی در فایلهای hosts.allow و hosts.deny اعمال نمایید. اگر این سرویس روی یک سیستمعامل مبتنی بر systemd مستقر شده باشد، ممکن است نیاز باشد دستورالعمل 'After' را تنظیم کنید؛ به یادداشت موجود در فایل auditd.service مراجعه فرمایید. شبکه را میتوان با افزودن این گزینه و ارسال سیگنال SIGHUP به auditd فعال کرد. تغییر پورت یا غیرفعالسازی شبکه نیازمند راهاندازی مجدد دیمن است تا کلاینتها بتوانند دوباره متصل شوند.
- tcp_listen_queue
- یک مقدار عددی است که تعداد اتصالات در انتظار (درخواستشده اما هنوز پذیرفتهنشده) را مشخص میکند. مقدار پیشفرض ۵ است. تنظیم این مقدار بر روی رقمی بسیار کوچک ممکن است در حالتی که تعداد زیادی از میزبانها دقیقاً همزمان شروع به کار کنند (مانند پس از قطعی برق)، باعث رد شدن اتصالات شود. این تنظیم فقط برای سرورهای تجمیعکننده به کار میرود؛ کلاینتهایی که گزارشهای خود را به یک سرور راه دور میفرستند باید این خط را به صورت کامنت باقی بگذارند. تغییر این مقدار در حین اجرای دیمن، شنونده را مجدداً راهاندازی کرده و اتصالات جاری را قطع مینماید.
- tcp_max_per_addr
- یک مقدار عددی است که حداکثر تعداد اتصالات همزمان مجاز از یک نشانی IP را مشخص میکند. مقدار پیشفرض ۱ و حداکثر آن ۱۰۲۴ است. تنظیم مقداری بیش از حد بزرگ برای این گزینه ممکن است سرور ثبت گزارش را در معرض حمله انکار سرویس (DoS) قرار دهد. همچنین توجه داشته باشید که هسته دارای حداکثر مقداری داخلی است که حتی در صورت مجاز دانستن آن توسط auditd، در نهایت از آن ممانعت خواهد کرد. مقدار پیشفرض در بیشتر موارد مناسب است، مگر آنکه یک اسکریپت بازیابی سفارشی برای هدایت رویدادهای ارسالنشده اجرا شود؛ در این صورت باید عدد را تنها به میزانی افزایش دهید که اجازه اتصال به آن نیز داده شود.
- use_libwrap
- این تنظیم مشخص میکند که آیا از tcp_wrappers برای تشخیص اتصالات مجاز از ماشینها استفاده شود یا خیر. مقادیر مجاز yes یا no هستند. مقدار پیشفرض yes است.
- tcp_client_ports
- این پارامتر میتواند یک مقدار عددی منفرد یا دو مقدار مجزا باشد که با خط تیره از هم جدا شدهاند (فاصلهگذاری مجاز نیست). این پارامتر پورتهای کلاینت مجاز برای اتصالات ورودی را مشخص میکند. در صورت عدم تعیین، هر پورتی مجاز است. مقادیر مجاز در محدوده ۱ تا ۶۵۵۳۵ هستند. به عنوان مثال، برای اجبار کلاینت به استفاده از یک پورت اختصاصی و ممتاز (privileged)، مقدار 1-1023 را برای این پارامتر تعیین کنید. همچنین باید گزینه local_port را در فایل audisp-remote.conf تنظیم فرمایید. اطمینان از اینکه کلاینتها دادهها را از یک پورت ممتاز ارسال میکنند یک ویژگی امنیتی برای جلوگیری از حملات تزریق لاگ توسط کاربران غیرقابل اعتماد است.
- tcp_client_max_idle
- این پارامتر تعداد ثانیههایی را مشخص میکند که یک کلاینت میتواند غیرفعال (بدون ارسال داده) بماند پیش از آنکه دیمن auditd نسبت به آن اعتراض کند. این پارامتر برای بستن اتصالات غیرفعال در مواقعی به کار میرود که ماشین کلاینت با مشکلی مواجه شده و قادر نیست اتصال را به صورت پاکیزه خاتمه دهد. توجه داشته باشید که این یک تنظیم سراسری است و باید از هر مقدار تنظیمشده برای heartbeat_timeout کلاینتها بیشتر باشد (ترجیحاً دو برابر). مقدار پیشفرض صفر است که این بررسی را غیرفعال میسازد.
- transport
- چنانچه روی TCP تنظیم شود، تنها اتصالات متنی ساده TCP استفاده خواهند شد. اگر روی TLS تنظیم گردد، اتصالات با استفاده از پروتکل TLS 1.3 و تبادل کلید ترکیبی پسا-کوانتومی (post-quantum hybrid key exchange) رمزگذاری میشوند. این حالت نیازمند پیکربندی یک کلید از پیش اشتراکگذاریشده (tls_psk_file) است. اگر روی KRB5 تنظیم شود، آنگاه از پروتکل Kerberos 5 برای احراز هویت و رمزنگاری استفاده خواهد شد. مقدار پیشفرض TCP است. تغییر این گزینه تنها پس از راهاندازی مجدد دیمن اعمال میشود تا کلاینتها بتوانند دوباره متصل شوند.
- enable_krb5
- این گزینه منسوخ شده است؛ به جای آن از گزینه transport در بالا استفاده کنید. اگر روی "yes" تنظیم شود، پروتکل Kerberos 5 برای احراز هویت و رمزنگاری به کار گرفته خواهد شد. مقدار پیشفرض "no" است. چنانچه این گزینه روی "yes" تنظیم شود و پس از گزینه transport بیاید، تنظیم transport را لغو خواهد کرد. این رفتار پیشفرض و مورد انتظار برای حفظ سازگاری با نسخههای پیشین است.
- krb5_principal
- این پرینسیپال (principal) برای این سرور است. مقدار پیشفرض "auditd" است. با این پیشفرض، سرور به دنبال کلیدی با نامی شبیه به auditd/hostname@EXAMPLE.COM ذخیرهشده در /etc/audit/audit.key میگردد تا خود را احراز هویت کند؛ در اینجا hostname نام استاندارد (canonical) برای میزبان سرور است که از طریق جستجوی DNS نشانی IP آن به دست میآید.
- krb5_key_file
- محل ذخیره فایل کلید برای پرینسیپال این کلاینت. توجه داشته باشید که فایل کلید باید متعلق به root و دارای مجوز 0400 باشد. مقدار پیشفرض /etc/audit/audit.key است.
- tls_auth
- حالت احراز هویت TLS. در حال حاضر تنها psk (احراز هویت کلید از پیش اشتراکگذاریشده / Pre-Shared Key) پشتیبانی میشود. مقدار پیشفرض psk است.
- tls_crypto_profile
- نمایه رمزنگاری (cryptographic profile) را برای TLS تعیین میکند. مقادیر معتبر عبارتند از: compatible، system و pqc. گزینه compatible از TLS 1.3 PSK کلاسیک پایدار همراه با تبادل کلید ترکیبی پسا-کوانتومی (PQC) به صورت فرصتطلبانه (opportunistic) استفاده میکند. گزینه system تمامی انتخابهای الگوریتمهای رمزنگاری و گروهها را به سیاست رمزنگاری سراسری سیستم (system crypto policy) واگذار مینماید. برای استقرار در محیطهای FIPS، سیستم میزبان را در حالت FIPS پیکربندی کرده و از این نمایه استفاده کنید. گزینه pqc تبادل کلید ترکیبی پسا-کوانتومی را الزامی دانسته و اتصالاتی که صرفاً گروههای کلاسیک را مذاکره نمایند رد میکند. مقدار پیشفرض compatible است.
- tls_psk_file
- مسیر فایلی شامل یک کلید از پیش اشتراکگذاریشده کدگذاریشده به صورت هگزادسیمال برای احراز هویت TLS-PSK. کلید باید حداقل ۳۲ بایت (۶۴ نویسه هگز) باشد. برای تولید کلید میتوانید از دستور openssl rand -hex 32 استفاده کنید. فایل باید متعلق به root بوده و دارای مجوز دسترسی 0400 باشد. در صورتی که tls_allowed_clients شامل مدخلهای کلید به ازای هر هویت باشد (به توضیحات زیر مراجعه کنید)، نیازی به این گزینه نیست.
- tls_psk_identity
- رشته شناسه (identity) مورد انتظار کلاینت PSK. این گزینه زمانی الزامی است که tls_psk_file تنظیم شده باشد اما tls_allowed_clients پیکربندی نشده باشد. سرور کلاینتهایی که شناسه متفاوتی ارائه دهند را رد میکند. شناسه تنها باید شامل نویسههای اسکی قابل چاپ باشد (بدون فاصله یا نویسههای کنترلی) و نباید از ۲۵۵ بایت فراتر رود.
- tls_allowed_clients
- مسیر فایلی که شناسههای کلاینتهای مجاز PSK را فهرست میکند. قالب فایل به صورت یک مدخل در هر سطر است: شناسه (identity)، وضعیت (enabled یا disabled)، و یادداشتهای اختیاری که با فاصله خالی جدا میشوند. سطرهایی که با # آغاز شوند توضیح (کامنت) به شمار میروند.
# identity status notes host-1234 enabled prod web host host-5678 disabled retired
# identity status key file host-prod enabled key=/etc/audit/psk/host-prod.key host-retired disabled key=/etc/audit/psk/host-retired.keyدر حالت کلید به ازای هر شناسه، گزینه tls_psk_file اختیاری است. کلاینتها باید به فایل کلید اختصاصی خود مجهز شوند، نه یک کلید مشترک.
- tls_cipher_suites
- فهرستی از مجموعههای رمزنگاری (cipher suites) پروتکل TLS 1.3 که با دونقطه (:) از هم جدا شدهاند. این گزینه مقادیر پیشفرض نمایه را لغو میکند. مقدار پیشفرض "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384" است.
- tls_key_exchange
- فهرستی از گروههای تبادل کلید که با دونقطه از هم جدا شدهاند. این گزینه مقادیر پیشفرض نمایه را لغو میکند. این مقادیر نمیتوانند بررسی گروه پس از دستتکانی در نمایه PQC را تضعیف نمایند. تبادل کلید ترکیبی PQC حجم دستتکانی را تقریباً ۱۱۲۰ بایت افزایش میدهد که ممکن است نیازمند بهروزرسانی تجهیزات میانی شبکه با قابلیت بازرسی عمیق بستهها (DPI) باشد.
- tls_require_pqc
- نام مستعار سازگاری برای tls_crypto_profile=pqc است. اگر روی yes تنظیم شود، tls_crypto_profile را روی pqc قرار میدهد. اگر روی no تنظیم گردد، تأثیری بر tls_crypto_profile نخواهد داشت (یک نام مستعار یکطرفه است). در پیکربندیهای جدید باید مستقیماً از tls_crypto_profile استفاده شود.
- distribute_network
- اگر روی "yes" تنظیم شود، رویدادهایی که مبدا آنها شبکه است برای پردازش به دیسپچر بازرسی توزیع خواهند شد. مقدار پیشفرض "no" است.
- q_depth
- یک مقدار عددی است که اندازه صف داخلی دیسپچر رویداد بازرسی را تعیین میکند. یک صف بزرگتر امکان مدیریت بهتر هجوم ناگهانی رویدادها را فراهم میسازد، اما در صورت خاتمه ناگهانی دیمن ممکن است رویدادهایی که هنوز پردازش نشدهاند را در خود نگه دارد. چنانچه در syslog پیامهایی مبنی بر افتادن (drop شدن) رویدادها دریافت میکنید، این مقدار را افزایش دهید. مقدار پیشفرض ۲۰۰۰ است.
- overflow_action
- این گزینه نحوه واکنش دیمن به سرریز صف داخلیاش را تعیین میکند. رخ دادن این حالت نشاندهنده آن است که رویدادهایی بیشتر از ظرفیت انتقال به فرآیندهای فرزند دریافت میشود. این خطا به این معناست که رویداد جاری که دیمن قصد توزیع آن را دارد از دست خواهد رفت. این گزینه شامل موارد زیر است: ignore، syslog، suspend، single و halt. اگر روی ignore تنظیم شود، دیمن بازرسی کاری انجام نمیدهد. گزینه syslog یک هشدار به syslog صادر میکند. گزینه suspend موجب میشود دیمن بازرسی ارسال رویدادها به فرآیندهای فرزند را متوقف سازد؛ دیمن همچنان زنده خواهد ماند. گزینه single سیستم رایانه را در حالت تککاربره قرار میدهد. گزینه halt موجب خاموش شدن کامل سیستم رایانه میشود.
- max_restarts
- یک عدد نامنفی است که به دیسپچر رویداد بازرسی اعلام میکند حداکثر چند بار مجاز است برای راهاندازی مجدد یک افزونه متوقفشده (crashed) تلاش نماید. مقدار پیشفرض ۱۰ است.
- plugin_dir
- مکانی است که auditd برای یافتن فایلهای پیکربندی افزونههای خود در آن جستجو میکند. دایرکتوری پیشفرض /etc/audit/plugins.d است.
- end_of_event_timeout
- یک عدد نامنفی بر حسب ثانیه است که توسط توابع کتابخانه فضای کاربری auparse() و ابزارهای aureport(8) و ausearch(8) استفاده میشود تا هنگام تجزیه جریان گزارش رویدادها، پایان یک رویداد را تشخیص دهند. برای جریان رویداد در حال پردازش، چنانچه زمان رویداد جاری در مقایسه با رویدادهای هممکان بیش از end_of_event_timeout ثانیه قدیمیتر باشد، رویداد کامل تلقی میشود. مقدار پیشفرض ۲ ثانیه است. برای جزئیات بیشتر به بخش «نکات» مراجعه فرمایید.
- report_interval
- این گزینه فاصله زمانی میان گزارشهای خودکار وضعیت را مشخص میکند. مقدار آن یک رشته زمانی متشکل از یک عدد است که میتواند به صورت اختیاری با m برای دقیقه، h برای ساعت، d برای روز، یا M برای ماه همراه باشد. مقدار پیشفرض ۰ است که گزارشدهی دورهای را غیرفعال میسازد. بزرگترین مقدار ممکن ۴۰ روز است. پس از تنظیم، auditd به صورت دورهای گزارش وضعیتی را ایجاد میکند که در /run/audit/auditd.state نوشته میشود.
بارگذاری مجدد (RELOADING)
بیشتر پارامترها را میتوان در زمان اجرای دیمن با ارسال سیگنال SIGHUP به auditd تغییر داد. این کار همچنین با اجرای دستور auditctl --signal reload امکانپذیر است. گزینههایی که تنها در زمان راهاندازی خوانده میشوند شامل local_events و verify_email هستند.
نکات (NOTES)
تغییرات در گزینههای پیکربندی TLS (شامل tls_psk_file، tls_psk_identity، tls_cipher_suites، tls_key_exchange، tls_require_pqc، tls_auth و tls_crypto_profile) برای اعمال شدن نیازمند راهاندازی مجدد کامل دیمن هستند. تغییر حالت فهرست دسترسی tls_allowed_clients میان single-PSK و حالت کلید به ازای هر شناسه نیز نیازمند راهاندازی مجدد است. فایل فهرست دسترسی tls_allowed_clients با سیگنال SIGHUP بدون نیاز به راهاندازی مجدد دیمن بارگذاری مجدد میشود؛ کلاینتهای متصلی که هویت آنها با بارگذاری مجدد غیرفعال یا حذف شده باشد، بیدرنگ قطع ارتباط میشوند.
در یک محیط CAPP (نمایه حفاظت دسترسی کنترلشده)، ردپای بازرسی (audit trail) چنان پراهمیت شمرده میشود که اگر ردپای بازرسی قابل ایجاد نباشد، دسترسی به منابع سیستم باید قطع گردد. در چنین محیطی پیشنهاد میشود که پوشه /var/log/audit بر روی یک پارتیشن اختصاصی قرار گیرد. این کار تضمین میکند که برآورد فضای خالی دقیق بوده و هیچ فرآیند دیگری بخشی از آن را مصرف نکند.
پارامتر flush باید روی sync یا data تنظیم شود.
پارامترهای max_log_file و num_logs باید به گونهای تنظیم گردند که از حداکثر ظرفیت پارتیشن استفاده کنید. باید توجه داشت که هرچه تعداد فایلهای مشمول چرخش بیشتر باشد، زمان بیشتری صرف خواهد شد تا سیستم آماده دریافت مجدد رویدادهای بازرسی شود. گزینه max_log_file_action باید روی keep_logs تنظیم گردد.
گزینه space_left باید روی مقداری تنظیم شود که به مدیر سیستم زمان کافی برای واکنش به پیامهای هشدار و انجام عملیات نگهداری جهت آزادسازی فضای دیسک را بدهد. این کار معمولاً شامل اجرای گزارش aureport -t و انتقال قدیمیترین گزارشها به یک بایگانی است. مقدار space_left وابسته به سامانه است، چرا که نرخ تولید رویدادها در هر محیط استقرار تفاوت دارد. پیشنهاد میشود پارامتر space_left_action روی email تنظیم شود. در صورتی که به قابلیتی شبیه به SNMP trap نیاز دارید، میتوانید از گزینه exec برای ارسال آن بهره ببرید.
گزینه admin_space_left باید بر روی میزان فضای دیسکی از پارتیشن بازرسی تنظیم شود که برای ثبت اقدامات مدیر سیستم مورد نیاز است. گزینه admin_space_left_action معمولاً روی single تنظیم میشود تا استفاده از ماشین تنها به کنسول محدود گردد.
گزینه disk_full_action زمانی فعال میشود که دیگر هیچ فضایی روی پارتیشن باقی نمانده باشد. تمام دسترسیها باید قطع شوند زیرا دیگر امکان ثبت رویدادهای بازرسی وجود ندارد. این پارامتر میتواند روی single یا halt تنظیم شود.
گزینه disk_error_action باید بسته به سیاستهای محلی شما در زمینه مواجهه با خرابیهای سختافزاری، روی syslog، single یا halt تنظیم گردد.
تعیین یک پورت کلاینت مجاز منفرد ممکن است راهاندازی مجدد زیرسیستم بازرسی را برای کلاینت دشوار سازد، زیرا تا زمان منقضی شدن وضعیت TIME_WAIT مربوط به بستن اتصال، کلاینت قادر به برقراری مجدد اتصال با همان نشانیها و پورتهای میزبان نخواهد بود.
رویدادهای auditd از یک یا چند رکورد تشکیل یافتهاند. سیستم auditd نمیتواند تضمین کند که مجموعه رکوردهای تشکیلدهنده یک رویداد به طور تجزیهناپذیر (atomic) رخ دهند؛ به این معنا که جریان دادهها ممکن است شامل رکوردهای درهمتنیدهای از رویدادهای مختلف باشد، مانند:
event0_record0 event1_record0 event2_record0 event1_record3 event2_record1 event1_record4 event3_record0
سیستم auditd تضمین نمیکند که رکوردهای تشکیلدهنده یک رویداد به ترتیب ظاهر شوند. بنابراین هنگام پردازش جریان رویدادها، لازم است فهرستی از رویدادها به همراه فهرست اختصاصی رکوردهای آنها نگهداری شود که به آن پردازش رویداد «فهرستِ فهرستها» (List of List یا LOL) گفته میشود.
هنگام پردازش جریان رویدادها، پایان یک رویداد از طریق موارد زیر تعیین میگردد:
نوع رکورد = AUDIT_PROCTITLE (توجه داریم که AUDIT_PROCTITLE همیشه آخرین رکورد است)، یا
نوع رکورد = AUDIT_KERNEL (رویدادهای هسته رویدادهای تکرکوردی هستند)، یا
نوع رکورد < AUDIT_FIRST_EVENT (تنها رویدادهای تکرکوردی پیش از این نوع ظاهر میشوند)، یا
نوع رکورد >= AUDIT_FIRST_ANOM_MSG (تنها رویدادهای تکرکوردی پس از این نوع ظاهر میشوند)، یا
نوع رکورد >= AUDIT_MAC_UNLBL_ALLOW && نوع رکورد <= AUDIT_MAC_CALIPSO_DEL (این موارد نیز رویدادهای تکرکوردی هستند)، یا
برای جریان در حال پردازش، زمان رویداد بیش از end_of_event_timeout ثانیه قدیمی باشد.
سیاست چرخش گزارشها (LOG ROTATION POLICY)
به طور پیشفرض، auditd از چرخش گزارشها بر اساس اندازه فایل استفاده میکند. چنانچه چرخش مبتنی بر زمان را ترجیح میدهید (مانند ساعتی، روزانه، هفتگی یا برنامهریزی سفارشی)، برای جزئیات پیکربندی به auditd.cron(5) مراجعه فرمایید.
فایلها (FILES)
- /etc/audit/auditd.conf
- فایل پیکربندی دیمن بازرسی
همچنین ببینید (SEE ALSO)
auditd(8)، audisp-remote.conf(5)، auditd-plugins(5)، auditd.cron(5).
نویسنده (AUTHOR)
Steve Grubb
| 2025-06-01 | Red Hat |