AUDITD(8) ابزارهای مدیریت سیستم AUDITD(8)

auditd - دیمن حسابرسی لینوکس

auditd [-f] [-l] [-n] [-s disable|enable|nochange] [-c <config_dir>]

برنامه auditd بخش فضای کاربری سیستم حسابرسی لینوکس (Linux Auditing System) است. این دیمن وظیفه نوشتن رکوردهای حسابرسی بر روی دیسک را بر عهده دارد. مشاهده لاگ‌ها با استفاده از ابزارهای ausearch یا aureport انجام می‌شود. پیکربندی سیستم حسابرسی یا بارگذاری قواعد با استفاده از ابزار auditctl انجام می‌پذیرد. در زمان راه‌اندازی، قواعد موجود در /etc/audit/audit.rules توسط auditctl خوانده شده و در هسته بارگذاری می‌شوند. علاوه بر این، برنامه‌ای به نام augenrules نیز وجود دارد که قواعد موجود در دایرکتوری /etc/audit/rules.d/ را خوانده و آن‌ها را در قالب یک فایل audit.rules کامپایل می‌کند. خود دیمن حسابرسی نیز دارای گزینه‌های پیکربندی است که مدیر سیستم ممکن است بخواهد آن‌ها را سفارشی‌سازی کند. این گزینه‌ها در فایل auditd.conf قرار دارند.

اجرای دیمن حسابرسی در پیش‌زمینه (foreground) برای اشکال‌زدایی. در این حالت پیام‌ها نیز به جای لاگ حسابرسی، به خروجی خطای استاندارد (stderr) ارسال می‌شوند.
اجازه دادن به دیمن حسابرسی برای دنبال کردن پیوندهای نمادین (symlinks) برای فایل‌های پیکربندی.
عدم ایجاد انشعاب (no fork). این گزینه برای اجرای دیمن از طریق inittab یا systemd سودمند است.
تعیین اینکه آیا در زمان شروع، auditd باید مقدار فعلی فلگ فعال‌سازی هسته را تغییر دهد یا خیر. مقادیر معتبر برای ENABLE_STATE عبارتند از "disable" ،"enable" یا "nochange". حالت پیش‌فرض، فعال‌سازی است (و هنگام خاتمه کار auditd غیرفعال می‌شود). مقدار فلگ فعال‌سازی می‌تواند در طول حیات auditd با استفاده از 'auditctl -e' تغییر یابد.
مشخص کردن دایرکتوری جایگزین برای فایل‌های پیکربندی. توجه داشته باشید که همین دایرکتوری به دیسپچر (dispatcher) نیز فرستاده خواهد شد (پیش‌فرض: /etc/audit/).

باعث پیکربندی مجدد auditd می‌شود. بدین معنا که auditd فایل پیکربندی را دوباره می‌خواند. اگر خطای نگارشی وجود نداشته باشد، تغییرات درخواستی اعمال خواهند شد. در صورت موفقیت‌آمیز بودن پیکربندی مجدد، یک رویداد DAEMON_CONFIG در لاگ‌ها ثبت می‌شود. در صورت عدم موفقیت، نحوه مدیریت خطا توسط پارامترهای space_left_action، admin_space_left_action، disk_full_action و disk_error_action در فایل auditd.conf کنترل می‌شود.
باعث توقف پردازش رویدادهای حسابرسی توسط auditd، ثبت یک رویداد خاموشی (shutdown) و خروج از برنامه می‌شود.
باعث چرخش (rotate) فوری لاگ‌ها توسط auditd می‌شود. در این حالت پارامتر max_log_file_action بررسی می‌شود تا مشخص گردد که آیا لاگ‌ها باید نگه‌داری شوند یا خیر.
باعث می‌شود auditd تلاش کند تا ثبت لاگ و ارسال رویدادها به پلاگین‌ها را از سر بگیرد. این عمل معمولاً پس از تعلیق ثبت لاگ یا سرریز شدن صف داخلی مورد نیاز است. هر یک از این شرایط به تنظیمات پیکربندی مربوطه بستگی دارد.
باعث می‌شود auditd گزارشی از وضعیت داخلی خود را در فایل /run/audit/auditd.state تخلیه (dump) کند.

1
عدم توانایی در تنظیم اولویت، تبدیل شدن به دیمن، باز کردن netlink حسابرسی، نوشتن فایل pid، راه‌اندازی پلاگین‌ها، تحلیل نام دستگاه، تنظیم pid حسابرسی، یا سایر وظایف مقداردهی اولیه.
2
آرگومان‌های نامعتبر یا بیش از حد در خط فرمان.
4
دیمن حسابرسی از امتیازات و دسترسی‌های کافی برخوردار نیست.
6
خطایی در فایل پیکربندی وجود دارد.

/etc/audit/auditd.conf - فایل پیکربندی دیمن حسابرسی

/etc/audit/audit.rules - قواعد حسابرسی جهت بارگذاری در هنگام راه‌اندازی

/etc/audit/rules.d/ - دایرکتوری حاوی مجموعه‌قواعد مجزا برای کامپایل شدن در قالب یک فایل توسط augenrules.

/etc/audit/plugins.d/ - دایرکتوری حاوی فایل‌های پیکربندی پلاگین‌های مجزا.

/etc/audit/audit-stop.rules - این قواعد هنگامی که دیمن حسابرسی متوقف می‌شود بارگذاری می‌گردند.

/run/audit/auditd.state - گزارش مربوط به وضعیت داخلی دیمن.

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

دیمن حسابرسی می‌تواند رویدادهای حسابرسی را از سایر دیمن‌های حسابرسی از طریق پلاگین audisp-remote دریافت کند. همچنین ممکن است دیمن حسابرسی با tcp_wrappers پیوند داده شده باشد تا کنترل کند کدام ماشین‌ها مجاز به اتصال هستند. در این صورت، می‌توانید یک مدخل در فایل‌های hosts.allow و hosts.deny اضافه کنید.

auditd.conf(5), auditd-plugins(5), ausearch(8), aureport(8), auditctl(8), augenrules(8), audit.rules(7).

Steve Grubb

سپتامبر ۲۰۲۱ Red Hat