آموزش مقدمات لینوکس – بخش چهاردهم

آموزش مقدمات لینوکس

در این بخش از دوره آموزشی مقدمات لینوکس شما با مفاهیم ثبت لاگ در لینوکس و دستورات مرتبط با آن آشنا خواهید شد.

THE LOGGING SYSTEM

یکی از موارد ضروری برای هر کاربر لینوکس که باید از آن اطلاع داشته باشد، نحوه کار با فایل های لاگ است.

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

فایل های لاگ می توانند حاوی ردپایی از فعالیت های نفوذگر باشند. بنابراین دانستن اطلاعات لازم در مورد ثبت لاگ در لینوکس بسیار حائز اهمیت خواهد بود.

THE RSYSLOG LOGGING DAEMON

از یک سرویسی که با نام syslogd شناخته می شود، برای ثبت لاگ در لینوکس استفاده می شود. چندین syslog مختلف مانند rsyslog و syslog-ng در لینوکس وجود دارد که در توزیع های مختلف لینوکس متفاوت می باشند.

اگرچه این سرویس ها اغلب مشابه یکدیگر عمل می کنند ولی در برخی موارد جزئی با هم تفاوت دارند.
با توجه به اینکه کالی لینوکس مبتنی بر Debian بوده و سیستم عامل Debian نیز به صورت پیش فرض با rsyslog کار می کند، ما در این بخش از دوره مقدمات لینوکس نیز به این syslog اشاره می کنیم.

در ابتدا کلیه فایل هایی که مرتبط با rsyslog هستند را در سیستم جست و جو می کنیم. برای این کار از دستور زیر استفاده می کنیم:

locate rsyslog

rsyslog

همانطور که در تصویر بالا مشاهده می کنید، فایل های بسیاری وجود دارند که حاوی عبارت syslog می باشند. در ادامه ما به توضیح فایل rsyslog.conf می پردازیم.

The rsyslog Configuration File

همانند اپلیکیشن های دیگر در لینوکس، rsyslog نیز دارای یک فایل برای تنظیم و مدیریت می باشد که در دایرکتوری etc قرار دارد که نام آن rsyslog.conf می باشد. تصویر زیر بخشی از محتویات این فایل را نمایش می دهد:

rsyslog

The rsyslog Logging Rules

rules در rsyslog، مشخص می کند که چه اطلاعاتی باید ثبت شود. در واقع برنامه ای که لاگ آن ثبت می شود و مسیر ذخیره سازی لاگ ها در این بخش مشخص می شود. تصویر زیر بخش rules در فایل پیکربندی rsyslog می باشد که حاوی اطلاعات مربوط به برنامه ها و مسیر ذخیره سازی لاگ آن ها می باشد:

rsyslog

در هر خط مشخص شده است که چه برنامه ای و در چه مسیری، لاگ های خود را ذخیره می نماید. فرمت اصلی این rule ها به صورت زیر می باشد:

facility.priority action

عبارت facility اشاره به برنامه ای دارد که در حال ثبت رخداد آن می باشیم. مواردی همچون mail، kernel یا موارد مشابه در این بخش قرار می گیرند.

عبارت priority نشان دهنده نوع پیامی است که ثبت می شود که عبارت info، warn یا err در این بخش قرار می گیرند که بیانگر اطلاعات، پیام هشدار و پیام خطا می باشند.

آشنایی با مدیریت فایل سیستم در لینوکس

عبارت action نیز که در سمت راست قرار می گیرد، اشاره به محل ذخیره سازی لاگ را مشخص می کند.
لیست زیر مربوط به عباراتی است که می تواند در بخش facility قرار داده شود:

همچنین شما می توانید از ستاره نیز برای ذخیره سازی کلیه موارد استفاده نمایید.
در ادامه همچنین لیستی از priority هایی که می توانید از آن استفاده نمایید قرار گرفته شده است:

debug
info
notice
warning
warn
error
err
crit
alert
emerg
panic

در این بخش نیز شما می توانید از عبارت ستاره استفاده نمایید تا کیه موارد ذخیره گردد.
توجه داشته باشید که کدهای warning، warn، error، err، emerg و panic منسوخ شده اند و نباید از آن ها استفاده شود.

بخش action نیز نام فایل و مسیری است که لاگ ها در آن ذخیره می گردند. توجه داشته باشید که عموماً این لاگ ها در مسیر /var/log قرار داشته و نام فایل آن نیز معمولاً هم نام با همان facility می باشد. مثال زیر نمونه ای از این مورد می باشد:

mail.* /var/log/mail

AUTOMATICALLY CLEANING UP LOGS WITH LOGROTATE

در صورتی که فایل های لاگ به شکل دوره ای حذف نشوند، فضای زیادی را اشغال می کنند. از طرفی نیز اگر شما فایل های لاگ را بیش از حد حذف کنید، در صورت بروز مشکل، دیگر امکان مراجعه به این فایل ها وجود ندارد. برای ایجاد تعادل در این مورد، شما می توانید از logrotate استفاده نمایید. logrotate یکی از مباحث مهم ثبت لاگ در لینوکس می باشد.

چرخش لاگ یا Log Rotation، فرآیندی است که در آن مرتباً فایل های لاگ آرشیو شده، به محل دیگری منتقل شده و یک فایل لاگ جدید ایجاد می گردد. همچین فایل انتقال داده شده نیز در یک بازه زمانی خاص از سیستم حذف خواهند شد.

شما می توانید تنظیمات مربوط به logrotate را از طریق دسترسی به فایل تنظیمات آن در مسیر etc/logrotate.conf/ انجام دهید.

logrotate

REMAINING STEALTHY

هنگامی که شما یه یک سیستم لینوکسی دسترسی پیدا می کنید، یکی از مواردی که باید به آن توجه نمایید، غیرفعال نمودن قابلیت ثبت لاگ و حذف شواهد است.

Removing Evidence

در ابتدا شما می خواهید تا لاگ های مربوط به فعالیت های خود را حذف نمایید. شما می توانید به راحتی فایل های لاگ را باز نموده و هر بخشی که مدنظر دارید را حذف نمایید. توجه داشته باشید که این کار می تواند یک شکاف زمانی را در فایل های لاگ باقی بگذارد که خود مشکوک خواهد بود. همچنین فایل های حذف شده توسط یک بازرس قانونی ماهر که باعلوم فارنزیک آشنایی کافی دارد، قابل بازیابی هستند.

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

خوشبختانه، لینوکس دارای یک دستور داخلی برای این منظور بوده که نام آن shred می باشد. این ابزار دارای Option های مختلفی می باشد ولی به صورت ساده می توان پس از این دستور، نام فایل مورد نظر را وارد نمود. بدین صورت ابزار shred، فایل مورد را حذف نموده و چندین بار آن را رونویسی می کند که به صورت پیش فرض، تعداد این باز نویسی چهار بار می باشد.

به طور کلی، هر چه تعداد رونویسی فایل، بیشیتر باشد، بازیابی آن سخت تر خواهد بود. اما به خاطر داشته باشید که هر رونویسی به زمان نیاز دارد، بنابراین برای فایل های با حجم زیاد، shred نمودن آن زمان بر خواهد بود.
از بین سوییچ های ابزار shred، دو سوییچ -f و -n مفیدتر می باشند.

از سوییچ -f به منظور تغییر سطح دسترسی فایل برای رونویسی آن در صورت نیاز و از سوییچ -n برای مشخص نمودن تعداد دفعات رونویسی فایل استفاده می شود. دستور زیر نمونه ای از استفاده ابزار shred با سوییچ های مذکور می باشد:

shred -f -n 10 /var/log/auth.log.*

هنگامی که یک فایل را shred می نمایید، محتویات آن غیرقابل توصیف خواهد شد. فایل زیر نمونه ای از یک فایل shred شده می باشد:

shred

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

Disabling Logging

روش دیگری که برای پاک کردن ردپا از آن استفاده می شود، غیرفعال نمودن ثبت رخداد است.

هنگامی که نفوذگر، کنترل یک سیستم در اختیار خود قرار می دهد، می تواند با غیرفعال نمودن قابلیت ثبت رخداد، از ثبت فعالیت های خود جلوگیری به عمل آورد. برای این کار شما نیاز به دسترسی root خواهید داشت.
به منظور غیرفعال نمودن ثبت رخداد، می بایست سرویس rsyslog را غیرفعال نمایید:

service rsyslog stop

با اجرای دستور بالا، لینوکس فرآیند تولید هر گونه لاگ را متوقف می نماید.

درباره نویسنده: احسان نیک آور

ممکن است دوست داشته باشید