راهنمای Auditd در لینوکس: نصب، پیکربندی و تحلیل لاگها

Auditd (Linux Audit Daemon) یک ابزار قدرتمند برای نظارت، ثبت و تحلیل فعالیتهای سیستم در لینوکس است. این ابزار به مدیران سیستم امکان میدهد تا تمامی رخدادهای مهم، از جمله اجرای دستورات، تغییرات در فایلهای حساس، فراخوانیهای سیستمی (syscalls) و دسترسیهای غیرمجاز را بهدقت رصد کنند. Auditd نقشی کلیدی در تأمین امنیت سیستم ایفا میکند و به سازمانها کمک میکند تا از تهدیدات داخلی و خارجی جلوگیری کرده و مطابقت خود را با استانداردهای امنیتی و قوانین نظارتی مانند PCI-DSS، HIPAA و ISO 27001 حفظ کنند. با استفاده از این ابزار، مدیران سیستم میتوانند فعالیتهای کاربران را بررسی کرده، مشکلات احتمالی را شناسایی کرده و سیاستهای امنیتی مناسبی را برای جلوگیری از نفوذ و سوءاستفاده اعمال کنند.
با توجه به افزایش حملات سایبری و نیاز به پایش دقیق فعالیتهای سیستم، استفاده از Auditd به یک ضرورت برای سازمانها، مراکز داده و سرورهای حیاتی تبدیل شده است. این ابزار از طریق تنظیم قوانین دقیق، امکان نظارت بر دسترسیها، تغییرات و اجرای برنامهها را فراهم کرده و در صورت بروز رخدادهای مشکوک، هشدارهای لازم را ثبت میکند. علاوه بر این، Auditd قابلیت ارسال لاگها به سرورهای مرکزی را دارد که امکان بررسی دقیقتر و تحلیل عمیق رخدادها را برای مدیران امنیتی فراهم میکند. در این مقاله، به بررسی نحوه نصب، پیکربندی و تحلیل گزارشهای Auditd پرداخته و روشهای بهینهسازی آن برای افزایش امنیت سیستم را توضیح خواهیم داد.
۱. Auditd چیست و چه کاربردی دارد؟
Auditd یا Linux Audit Daemon یک سرویس در سیستمعامل لینوکس است که برای ثبت و تحلیل رخدادهای امنیتی استفاده میشود. این ابزار به مدیران سیستم کمک میکند تا تمامی فعالیتهای حساس، از جمله تغییرات در فایلهای مهم، اجرای برنامهها، دسترسیهای غیرمجاز و تعاملات کاربران با سیستم را بهدقت مانیتور کنند. Auditd بهویژه در محیطهایی که نیاز به رعایت استانداردهای امنیتی و قانونی دارند، مانند سازمانهای مالی، مراکز داده و زیرساختهای حیاتی، بسیار کاربردی است.
ویژگیهای کلیدی Auditd
Auditd بهعنوان یک سیستم نظارتی، قابلیتهای متعددی دارد که آن را به یکی از مهمترین ابزارهای امنیتی لینوکس تبدیل کرده است. برخی از ویژگیهای کلیدی آن عبارتاند از:
- ثبت تغییرات در فایلهای حساس: با استفاده از Auditd میتوان تغییرات در فایلهایی مانند
/etc/passwd
و/etc/shadow
را بهدقت رصد کرد. - نظارت بر اجرای برنامهها و دستورات: Auditd میتواند تمامی برنامههای اجراشده در سیستم را ثبت کرده و اطلاعات مربوط به کاربران و فرآیندهای مرتبط را ارائه دهد.
- پشتیبانی از قوانین سفارشی: مدیران سیستم میتوانند قوانین خاصی را برای نظارت بر رخدادهای موردنظر خود تعریف کنند.
- تحلیل لاگها و گزارشگیری: ابزارهایی مانند
ausearch
وaureport
به تحلیل لاگهای ثبتشده توسط Auditd کمک میکنند. - امکان ارسال لاگها به سرور مرکزی: Auditd قابلیت ارسال گزارشها به یک سرور مرکزی را دارد تا در صورت نیاز بتوان تحلیلهای امنیتی جامعتری انجام داد.
۲. نصب و راهاندازی Auditd در لینوکس
Auditd بهعنوان یکی از سرویسهای پیشفرض در بسیاری از توزیعهای لینوکس موجود است، اما در صورت عدم نصب، میتوان آن را بهراحتی روی سیستم نصب و پیکربندی کرد. در این بخش، روش نصب Auditd در توزیعهای مختلف لینوکس و نحوه راهاندازی و بررسی عملکرد آن توضیح داده میشود.
۲.۱. نصب Auditd در توزیعهای Debian و Ubuntu
در سیستمهای مبتنی بر Debian مانند Ubuntu و Debian، میتوان با استفاده از مدیر بسته APT، Auditd را نصب کرد:
sudo apt update sudo apt install auditd audispd-plugins
پس از نصب، سرویس Auditd بهصورت خودکار راهاندازی میشود، اما در صورت عدم اجرا، میتوان آن را بهصورت دستی فعال کرد.
۲.۲. نصب Auditd در توزیعهای RHEL، CentOS و Fedora
در سیستمهای مبتنی بر RHEL، CentOS و Fedora، برای نصب Auditd از YUM یا DNF استفاده کنید:
در RHEL و CentOS:
sudo yum install audit
در Fedora:
sudo dnf install audit
۲.۳. فعالسازی و اجرای سرویس Auditd
پس از نصب، باید Auditd را فعال و راهاندازی کنید تا در هنگام راهاندازی سیستم بهصورت خودکار اجرا شود.
فعالسازی و اجرای سرویس Auditd:
sudo systemctl enable auditd sudo systemctl start auditd
بررسی وضعیت اجرای سرویس Auditd:
sudo systemctl status auditd
اگر Auditd به درستی اجرا شود، خروجیای مشابه زیر نمایش داده خواهد شد:
● auditd.service - Security Auditing Service Loaded: loaded (/lib/systemd/system/auditd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2025-03-05 12:00:00 UTC; 5min ago ...
۲.۴. بررسی عملکرد Auditd
برای اطمینان از اینکه Auditd به درستی کار میکند، میتوان از ابزار auditctl برای نمایش قوانین فعال و از ausearch برای مشاهده لاگها استفاده کرد.
بررسی لیست قوانین فعال Auditd:
sudo auditctl -l
مشاهده آخرین لاگهای ثبتشده توسط Auditd:
sudo tail -f /var/log/audit/audit.log
۲.۵. راهاندازی مجدد و غیرفعال کردن Auditd (در صورت نیاز)
اگر بخواهید پس از تغییرات در تنظیمات، Auditd را مجدداً راهاندازی کنید، میتوانید از دستور زیر استفاده کنید:
sudo systemctl restart auditd
برای غیرفعال کردن موقت Auditd (بدون حذف آن):
sudo systemctl stop auditd
و برای حذف کامل Auditd از سیستم (در صورت عدم نیاز):
در Debian/Ubuntu:
sudo apt remove auditd --purge
در RHEL/CentOS/Fedora:
sudo yum remove audit
با انجام مراحل فوق، Auditd بهطور کامل روی سیستم نصب، پیکربندی و اجرا میشود. پس از راهاندازی، این ابزار میتواند تمامی رویدادهای امنیتی سیستم را ثبت کرده و به مدیران سیستم در نظارت بر فعالیتهای کاربران، بررسی تغییرات فایلهای حساس و جلوگیری از حملات امنیتی کمک کند. در بخشهای بعدی، به نحوه تنظیم قوانین Auditd برای نظارت بر فعالیتهای خاص و تحلیل گزارشهای آن پرداخته خواهد شد.
۳. پیکربندی Auditd
پس از نصب و راهاندازی Auditd، لازم است که این سرویس متناسب با نیازهای امنیتی سیستم پیکربندی شود. پیکربندی صحیح Auditd به مدیران سیستم کمک میکند تا لاگهای دقیقتر و هدفمندتری ثبت کنند و از پر شدن غیرضروری فضای دیسک جلوگیری نمایند. این تنظیمات در فایل /etc/audit/auditd.conf
ذخیره میشوند و شامل مشخص کردن مسیر ذخیره لاگها، تعیین اندازه حداکثری فایلهای لاگ، تعریف رفتار در صورت پر شدن دیسک و تنظیمات دیگر است. در ادامه، بخشهای مختلف پیکربندی Auditd را بهطور کامل بررسی میکنیم.
۳.۱. تنظیمات اصلی در فایل auditd.conf
فایل پیکربندی اصلی Auditd در مسیر /etc/audit/auditd.conf
قرار دارد. میتوان این فایل را با یک ویرایشگر متنی مانند nano باز کرده و تغییرات مورد نیاز را اعمال کرد:
sudo nano /etc/audit/auditd.conf
در این فایل، میتوان مقادیر زیر را تنظیم کرد:
۳.۱.۱. تعیین مسیر ذخیره لاگها
log_file = /var/log/audit/audit.log
این گزینه مسیر پیشفرضی را که Auditd در آن فایلهای لاگ را ذخیره میکند، مشخص میکند. اگر میخواهید لاگها را در مسیر دیگری ذخیره کنید، مقدار آن را تغییر دهید.
۳.۱.۲. تعیین حداکثر اندازه فایلهای لاگ
max_log_file = 10
این مقدار بر حسب مگابایت تعیین میشود. بهعنوان مثال، مقدار ۱۰ به این معنی است که فایل لاگ Auditd پس از رسیدن به حجم ۱۰ مگابایت بسته شده و یک فایل جدید ایجاد خواهد شد.
۳.۱.۳. تعیین رفتار در صورت پر شدن فایل لاگ
max_log_file_action = ROTATE
این گزینه تعیین میکند که وقتی حجم فایل لاگ به مقدار تعیینشده در max_log_file
رسید، چه اتفاقی بیفتد. مقدارهای قابل قبول:
ROTATE
: فایل لاگ قدیمی را حذف کرده و یک فایل جدید ایجاد میکند.IGNORE
: ثبت لاگها ادامه خواهد یافت، حتی اگر فایل به حداکثر اندازه تعیینشده برسد.SYSLOG
: پیام هشدار بهsyslog
ارسال میشود.SUSPEND
: سرویس Auditd متوقف میشود.HALT
: سیستم بهطور کامل خاموش میشود.
۳.۱.۴. تعیین رفتار در صورت پر شدن فضای دیسک
disk_full_action = HALT
این گزینه تعیین میکند که اگر فضای دیسک پر شود، Auditd چه واکنشی نشان دهد. مقدارهای قابل قبول:
IGNORE
: لاگگیری ادامه مییابد.SYSLOG
: پیام هشدار ارسال میشود.SUSPEND
: Auditd متوقف میشود.HALT
: سیستم خاموش میشود (گزینه پیشنهادی برای سیستمهای حساس امنیتی).
۳.۱.۵. تعیین سطح جزئیات لاگها
log_format = RAW
این گزینه فرمت لاگهای ذخیرهشده را مشخص میکند. مقدارهای قابل قبول:
RAW
: دادهها را بدون پردازش اضافی ذخیره میکند.ENRICHED
: اطلاعات بیشتری از جمله نام کاربری و مسیر کامل پردازشها را در لاگها ذخیره میکند.
۳.۱.۶. تنظیم میزان استفاده از حافظه
flush = INCREMENTAL freq = 50
این تنظیمات مشخص میکنند که دادههای ثبتشده در حافظه هر چند وقت یک بار به دیسک منتقل شوند. مقدار freq = 50
تعیین میکند که پس از ثبت ۵۰ رویداد، دادهها روی دیسک ذخیره شوند.
۳.۲. ذخیره تغییرات و راهاندازی مجدد Auditd
پس از انجام تغییرات، فایل را ذخیره کرده و سرویس Auditd را مجدداً راهاندازی کنید:
sudo systemctl restart auditd
برای بررسی اینکه آیا تغییرات بهدرستی اعمال شدهاند، میتوانید تنظیمات فعلی را با این دستور مشاهده کنید:
auditctl -s
۳.۳. فعالسازی قوانین نظارتی در Auditd
پس از تنظیمات اولیه، باید قوانین (Rules) مناسبی برای نظارت بر فعالیتهای سیستم تعریف کنید. این قوانین تعیین میکنند که چه نوع رویدادهایی باید ثبت شوند. قوانین Auditd در فایل /etc/audit/rules.d/audit.rules
تعریف میشوند. برای ویرایش این فایل:
sudo nano /etc/audit/rules.d/audit.rules
مثلاً برای ثبت تغییرات فایل /etc/passwd
میتوانید خط زیر را اضافه کنید:
-w /etc/passwd -p wa -k passwd_changes
-w
: مسیر فایل تحت نظارت-p
: نوع تغییرات مورد نظارتr
: خواندن فایلw
: نوشتن در فایلx
: اجرای فایلa
: تغییرات در متادیتای فایل
-k
: کلید اختصاصی برای دستهبندی لاگها
پس از ویرایش قوانین، سرویس Auditd را مجدداً راهاندازی کنید:
sudo systemctl restart auditd
برای مشاهده قوانین فعال:
auditctl -l
۳.۴. بررسی لاگهای Auditd
پس از پیکربندی Auditd، میتوان لاگهای ثبتشده را بررسی کرد. لاگهای Auditd در مسیر /var/log/audit/audit.log
ذخیره میشوند. برای مشاهده زنده لاگها:
sudo tail -f /var/log/audit/audit.log
برای جستجوی رویدادهای مرتبط با یک کلید خاص (مثلاً passwd_changes
):
ausearch -k passwd_changes
برای نمایش رویدادهای مرتبط با یک کاربر خاص:
ausearch -ua 1000
(عدد 1000 مقدار UID کاربر موردنظر است).
۳.۵. ارسال لاگهای Auditd به سرور مرکزی
در سازمانهای بزرگ، معمولاً لاگهای امنیتی به یک سرور مرکزی ارسال میشوند. برای این کار، تنظیمات زیر را در فایل /etc/audit/auditd.conf
انجام دهید:
remote_server = 192.168.1.100
سپس سرویس Auditd را مجدداً راهاندازی کنید:
sudo systemctl restart auditd
۳.۶. غیرفعال کردن Auditd (در صورت نیاز)
اگر به هر دلیلی بخواهید Auditd را غیرفعال کنید، میتوانید از دستور زیر استفاده کنید:
sudo systemctl stop auditd sudo systemctl disable auditd
برای حذف کامل Auditd از سیستم:
در Debian/Ubuntu:
sudo apt remove auditd --purge
در RHEL/CentOS/Fedora:
sudo yum remove audit
در این بخش، نحوه پیکربندی Auditd برای ثبت لاگهای امنیتی، مدیریت قوانین نظارتی و تنظیمات مربوط به فضای ذخیرهسازی بررسی شد. پیکربندی مناسب Auditd به مدیران سیستم کمک میکند تا امنیت سیستم را افزایش داده و از دسترسیهای غیرمجاز جلوگیری کنند. در بخش بعدی، نحوه ایجاد قوانین اختصاصی و تحلیل گزارشهای Auditd توضیح داده خواهد شد.
ارسال لاگهای Auditd به Splunk
Splunk یکی از قدرتمندترین ابزارهای مانیتورینگ و تحلیل لاگ است که برای جمعآوری، فیلتر کردن، و تحلیل دادههای امنیتی و عملیاتی استفاده میشود. در این راهنما، نحوه ارسال لاگهای Auditd به Splunk بررسی میشود تا بتوان لاگهای امنیتی لینوکس را بهصورت مرکزی در Splunk مانیتور کرد.
۱. نصب و پیکربندی Splunk Forwarder
برای ارسال لاگهای Auditd به Splunk، نیاز به Splunk Universal Forwarder داریم که وظیفه ارسال لاگهای سیستم را به سرور Splunk بر عهده دارد.
۱.۱. دانلود و نصب Splunk Universal Forwarder
ابتدا فایل نصبی را از سایت رسمی Splunk دریافت کنید:
در Ubuntu/Debian:
wget -O splunkforwarder.deb https://download.splunk.com/products/universalforwarder/releases/latest/linux/splunkforwarder.deb sudo dpkg -i splunkforwarder.deb
در RHEL/CentOS:
wget -O splunkforwarder.rpm https://download.splunk.com/products/universalforwarder/releases/latest/linux/splunkforwarder.rpm sudo rpm -i splunkforwarder.rpm
۱.۲. فعالسازی و راهاندازی Splunk Forwarder
sudo /opt/splunkforwarder/bin/splunk enable boot-start sudo /opt/splunkforwarder/bin/splunk start
در اولین اجرا، از شما خواسته میشود که یک نام کاربری و رمز عبور تعیین کنید.
۲. پیکربندی Splunk Forwarder برای دریافت لاگهای Auditd
پس از نصب و راهاندازی Splunk Forwarder، باید مشخص کنیم که لاگهای Auditd به سرور Splunk ارسال شوند.
۲.۱. اضافه کردن فایل لاگ Auditd به Splunk Forwarder
برای این کار، باید مسیر لاگهای Auditd را به فایل inputs.conf
در مسیر /opt/splunkforwarder/etc/system/local/
اضافه کنیم:
sudo nano /opt/splunkforwarder/etc/system/local/inputs.conf
سپس خطوط زیر را به این فایل اضافه کنید:
[monitor:///var/log/audit/audit.log] disabled = false index = linux_auditd sourcetype = linux_audit
monitor:///var/log/audit/audit.log
: مسیر فایل لاگ Auditd که باید مانیتور شود.index = linux_auditd
: تعیین ایندکس اختصاصی برای لاگهای Auditd.sourcetype = linux_audit
: تعیین نوع دادهها برای پردازش در Splunk.
۲.۲. تنظیم آدرس سرور Splunk
در همان مسیر، فایل outputs.conf
را ویرایش کنید:
sudo nano /opt/splunkforwarder/etc/system/local/outputs.conf
و خطوط زیر را اضافه کنید:
[tcpout] defaultGroup = splunk_indexer [tcpout:splunk_indexer] server = 192.168.1.100:9997
server = 192.168.1.100:9997
: در اینجا باید آدرس IP و پورت سرور Splunk را جایگزین مقدار دادهشده کنید.
۳. راهاندازی مجدد Splunk Forwarder
پس از انجام تنظیمات، Splunk Forwarder را راهاندازی مجدد کنید:
sudo /opt/splunkforwarder/bin/splunk restart
برای بررسی وضعیت اتصال به سرور Splunk:
sudo /opt/splunkforwarder/bin/splunk list forward-server
اگر اتصال به درستی برقرار باشد، نام سرور Splunk در خروجی نمایش داده میشود.
۴. بررسی لاگهای Auditd در Splunk
پس از ارسال لاگها، وارد محیط وب Splunk شوید (معمولاً از طریق http://192.168.1.100:8000
) و با نام کاربری و رمز عبور خود لاگین کنید. سپس در قسمت Search & Reporting از جستجوی زیر برای نمایش لاگهای Auditd استفاده کنید:
index=linux_auditd sourcetype=linux_audit
همچنین میتوانید فیلترهای پیشرفتهتری اعمال کنید. مثلاً برای نمایش تمامی تغییرات در فایل /etc/passwd
:
index=linux_auditd sourcetype=linux_audit "/etc/passwd"
۵. بهینهسازی و مدیریت لاگها
برای مدیریت بهتر لاگها، پیشنهاد میشود:
- Retention Policy: دوره نگهداری لاگها را بر اساس نیاز تنظیم کنید تا از پر شدن فضای ذخیرهسازی جلوگیری شود.
- Alerting: در Splunk میتوانید هشدارهایی تنظیم کنید که در صورت وقوع رویدادهای خاص (مانند تغییر در فایلهای حساس)، ایمیل یا پیام هشدار ارسال شود.
- Dashboard: داشبوردهای اختصاصی برای نمایش فعالیتهای مهم و بررسی رویدادهای مشکوک ایجاد کنید.
در این راهنما، مراحل ارسال لاگهای Auditd به Splunk توضیح داده شد. ابتدا Splunk Universal Forwarder را روی سرور لینوکس نصب کردیم، سپس مسیر لاگهای Auditd را در inputs.conf
تنظیم کردیم و آدرس سرور Splunk را در outputs.conf
مشخص نمودیم. در نهایت، نحوه جستجو و تحلیل لاگهای Auditd در Splunk بررسی شد. با این روش، میتوان بهراحتی تمامی فعالیتهای حساس لینوکس را در Splunk مانیتور کرده و در صورت وقوع تهدیدات امنیتی، اقدامات مناسب را انجام داد.
جمعبندی و خلاصه مقاله
Auditd یک ابزار قدرتمند برای نظارت و ثبت فعالیتهای امنیتی در سیستمهای لینوکس است که به مدیران سیستم کمک میکند تا دسترسیهای غیرمجاز، تغییرات در فایلهای حساس، و فعالیتهای کاربران را بررسی کنند. این مقاله به بررسی کامل نصب، پیکربندی و مدیریت Auditd پرداخت و نحوه ارسال لاگهای آن به Splunk برای تحلیل پیشرفته دادهها را توضیح داد.
خلاصه مراحل اصلی:
-
نصب و راهاندازی Auditd
- در سیستمهای Debian/Ubuntu با دستور
sudo apt install auditd
- در RHEL/CentOS با
sudo yum install audit
- فعالسازی و بررسی وضعیت سرویس با
systemctl start auditd
وauditctl -s
- در سیستمهای Debian/Ubuntu با دستور
-
پیکربندی Auditd
- ویرایش فایل
/etc/audit/auditd.conf
برای تنظیم مسیر لاگها، اندازه فایلها، و رفتار در شرایط خاص - افزودن قوانین نظارتی در
/etc/audit/rules.d/audit.rules
برای ثبت تغییرات در فایلهای حساس - بررسی لاگها با
ausearch
وauditctl -l
- ویرایش فایل
-
ارسال لاگهای Auditd به Splunk
- نصب و راهاندازی Splunk Universal Forwarder
- تنظیم
inputs.conf
برای مانیتور کردن مسیر/var/log/audit/audit.log
- تعریف
outputs.conf
برای ارسال دادهها به سرور Splunk - راهاندازی مجدد Forwarder و بررسی ارتباط با
splunk list forward-server
- جستجوی لاگها در Splunk با
index=linux_auditd sourcetype=linux_audit
نتیجهگیری
استفاده از Auditd در لینوکس به مدیران امنیتی این امکان را میدهد که بهصورت دقیق تمامی فعالیتهای مشکوک را رصد کرده و از نفوذها و تهدیدات جلوگیری کنند. همچنین، ارسال لاگهای Auditd به Splunk باعث میشود تا تحلیل دادهها بهصورت متمرکز و پیشرفته انجام شده و از قابلیتهایی مانند هشدارهای امنیتی و گزارشهای سفارشی بهرهبرداری شود. ترکیب Auditd و Splunk یکی از بهترین راهکارهای نظارت امنیتی برای سیستمهای لینوکسی محسوب میشود.
مطالب زیر را حتما بخوانید
-
شبیهسازی حرفهای محیط SOC: راهاندازی، ابزارها و تحلیل تهدیدات با Splunk
547 بازدید
-
10 قابلیت ضروری یک مرکز عملیات امنیت (SOC) مدرن
120 بازدید
-
دوره SOC-200 شرکت OffSec: مقدمهای بر عملیات مرکز امنیت (SOC)
185 بازدید
-
مقایسه جامع Zeek و Splunk Stream: یک راهنمای کامل برای انتخاب ابزار مناسب
234 بازدید
-
Splunk Stream چیست و چه کاربردی دارد؟
258 بازدید
-
راهنمای جامع Event IDهای ویندوز برای متخصصان SOC: شناسایی، تحلیل و پاسخگویی به رخدادهای امنیتی
818 بازدید
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.