خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


Syslog چیست و چگونه کار می کند

Syslog چیست و چگونه کار می کند
Syslog یک پروتکل استاندارد مبتنی بر شبکه logging است که بر روی طیف بسیار گسترده ای از انواع مختلف دستگاه ها و اپلیکیشن ها ها کار می کند و به آنها امکان می دهد تا پیام های log را برای Syslog server ارسال کنند. پیام های log با فرمت متنی هستند که به سرور ارسال می شوند.

سیستم یکپارچۀ سازمانی راهکار
اساساً هر دستگاهی در شبکه شما - اعم از ذخیره سازها، سرورها، سوئیچ یا فایروال - احتمالاً دارای یک syslog agent هستند که می توانید از آن برای ارسال پیام به یک سرور مرکزی استفاده کنید.



چه زمانی از syslog استفاده می شود؟

افرادی که با snmp آشنایی دارند شاید اکنون کمی سردرگم شوند. وقتی snmp trap داریم واقعا نیازی به syslog داریم؟ مطمئناً هر دو عملکرد مشابهی را ارائه می دهند.
هر دوی اینها برای ارسال پیام و هشدارها به سرور مرکزی که نرم افزار مانیتورینگ است، استفاده می شوند. SNMP trap به محض وقوع یک رویداد، بدون انتظار درخواست از سوی سرور، پیام را برای سرور ارسال می کند. بزرگترین تفاوت این است که SNMP Trap ها دارای فرمت از پیش تعریف شده خاصی هستند که در یک فایل MIB موجود است. مثلا اگر یکی از پورت های سوئیچ Down شود فایل MIB یک پیام trap از نوع ifDown اطلاعات خوبی در مورد مثلا اینترفیس خاص تعریف می کند.
دو مورد بسیار مهم وجود دارد که در آن داشتن یک فایل MIB با انواع پیام های از پیش تعریف شده غیرممکن است. اولین مورد که syslog در ابتدا برای آن ابداع شد application alerting می باشد.
مثلا فرض کنید که شما یک برنامه مالی را برنامه نویسی کرده اید چنین برنامه هایی عموماً دارای طیف وسیعی از log ها است و هر نسخه جدید نرم افزار می تواند مجموعه ای از پیام های جدید داشته باشد. ایجاد یک فایل MIB جدید برای هر یک از این پیام ها و بارگذاری آن در سرور برای هر نسخه نرم افزاری، ساده نیست. از این رو فایل MIB همیشه یکی دو نسخه عقب تر خواهد ماند و سرور مرکزی قادر به تجزیه انواع پیام های جدید نخواهد بود.
دومین مورد مهم پیام های LOG برای دستگاه های امنیتی مانند IDS یا همان intrusion detection systems می باشد. این سیستم ها دائماً با امضاهای جدید بروز می شوند. ممکن است تغییرات زیادی در اطلاعات شناسایی شده توسط این امضا وجود داشته باشد که استانداردسازی پیام ها رخدادها تقریباً غیرممکن است. پس SNMP Trap ها برای رویدادهای کاملاً مشخص مانند ریست کردن اینترفیس ها، ویژه در دستگاه های شبکه استفاده می شود ، در حالی که رویدادهای syslog برای موارد کلی تر و مواردی که پیش بینی کردن آنها دشوارتر است استفاده می شود.
تجزیه و تحلیل یک گزارش شامل رخدادهایی از ده ها سیستم مختلف از Vendor های مختلف و درک همزمان آنها بسیار دشوار است. کدام پیامها نشان دهنده چه عملکردهایی هستند؟ برای رسیدگی به این سوالات ، پروتکل syslog (که در RFC 5424 تعریف شده است) این پیام های را با فیلدهای خاصی به نام "facility" و "severity" ارائه می دهد(توجه داشته باشید که RFC 5424 استاندارد syslog است، اما همه پیاده سازی های syslog با RFC 5424 سازگار نیستند. پروتکل syslog مدت زیادی است که ارائه شده و برخی از پیاده سازی های استاندارد هنوز در حال استفاده هستند).

کد severity و facility چیست؟

مقدار severity به راحتی قابل درک است که شامل یک عدد بین 0 تا 7 است و میزان اهمیت پیام را نشان می دهد.

Syslog چیست و چگونه کار می کند
در عمل، شما معمولاً پیام های سطح emergency را نمی بینید زیرا اگر سیستم به شدت خراب شده باشد، احتمالاً نمی تواند پیامی ارسال کند و احتمالاً شما نمی خواهید پیام های debugging را در گزارش خود مشاهده کنید زیرا تعداد آنها بسیار زیاد است و به ندرت برای اهداف عملیاتی مهم هستند. در محیط های واقعی سیستم های معمولی در سطح logging 5 یا 6 تنظیم می شوند.
facility code نیاز به توضیحات بیشتری دارد. پیاده سازی های اولیه نرم افزار syslog سرور به طور کلی پیامهای دریافتی را در یک یا چند log فایل قرار می دهد. سرور از facility code برای مرتب سازی پیام های مرتبط در یک فایل استفاده می کند. پیاده سازی های مدرن syslog فقط همه پیام ها را در یک پایگاه داده مشترک ریخته و از facility code به عنوان یکی از کلیدهای جستجوی احتمالی استفاده می کند.
Facility code ها مقادیر عددی هستند که در جدول شکل زیر فهرست شده اند. توجه داشته باشید که بسیاری از آنها مخصوص سیستم هایی هستند که در بسیاری از موارد دیگر معمولاً مورد استفاده قرار نمی گیرند. اینها facility code هایی هستند که در RFC 5424 تعریف شده اند و تا حدی با کدهای BSD Unix متفاوت هستند. تفاوتها عمدتا یک کنجکاوی تاریخی هستند و در واقع برای بیشتر اهداف آنقدرها مهم نیستند.

Syslog چیست و چگونه کار می کند Syslog چیست و چگونه کار می کند
توجه داشته باشید که بسیاری از این facility code ها مخصوص سیستم های یونیکس قدیمی هستند. به عنوان مثال، دیگر کسی از UUCP استفاده نمی کند. این یک روش asynchronous برای کپی فایل ها در سرور به طور خودکار بود که فقط می توانستند داده ها را با استفاده از آنالوگ dial-up مبادله کنند.
Facility و severity code ها در ابتدای هر پیام قرار می گیرد و در داخل براکت قرار می گیرند. مثلا 166 را نظر بگیرید که 16 برای local0 مطابق با تصاویر فوق و 6 همان severity است.
این روزها اکثر دستگاه های شبکه از یکی از کدهای localبرای پیام های syslog خود استفاده می کنند. به طور پیشفرض، فایروال های Cisco ASA از کد 20 (local4) استفاده می کنند ، در حالی که اکثر سوئیچ ها و روترهای سیسکو از کد 23 (local7) استفاده می کنند. این کدها صرفاً برای مرتب سازی syslog سرور وجود دارد تا پیامهای دریافتی را در دسته های مناسب طبقه بندی کند. اکثر مردم نیازی به تغییر آنها ندارند زیرا همانطور که قبلاً ذکر شد، در پیاده سازی های مدرن syslog، کد Facility تنها یکی از بسیاری از مقادیر کلیدی احتمالی است که برای جستجوی پایگاه داده پیامها استفاده می شود.

چگونه syslog منتقل می شود؟

دو راه متداول برای ارسال پیام syslog وجود دارد. گرچه RFC 5424 مستلزم این است که تمام پیاده سازی های syslog باید از یک شبکه TLS رمزگذاری شده بر روی TCP پشتیبانی کنند، اما اکثر پیام های syslog هنوز با استفاده از روش قدیمی UDP ارائه می شوند. در نسخه UDP، پیامها به سادگی در بخش Data ی یک بسته UDP قرار داده می شوند و از طریق پورت UDP 514 به سرور ارسال می شوند. هر پیام به طور کلی در یک بسته واحد قرار می گیرد. برای آشنایی بیشتر با UDP به لینک زیر می توانید مراجعه کنید.


نکته مهم دیگری که باید در مورد انتقال UDP syslog به خاطر داشته باشید این است که این انتقال رمزگذاری شده نیست. پس خواندن و جعل کردنش ساده است. بنابراین ارسال بسته های syslog UDP از طریق اینترنت هرگز توصیه نمی شود مگر اینکه در بستر VPN که تونل رمزگذاری شده است، انجام شود. خوشبختانه نسخه رمزگذاری شده ای از syslog نیز وجود دارد که از TLS برای امنیت استفاده می کند و از پورت TCP 6514 و همان نوع certificate ها که برای احراز هویت HTTPS استفاده می کند. از آنجا که TCP مبتنی بر Session یا Session Base است دستگاه های ریموت یک Session در TCP را با سرور باز می کنند و به طور کلی آن را در حین ارائه همه پیام های صف فعال نگه می دارند. در مورد دستگاه هایی مانند فایروال، که تعداد زیادی پیام syslog ارسال می کنند، ممکن است به معنای اتصال مداوم برای مدت طولانی باشد. این روش چندین مزیت کلیدی دارد. نخست اینکه، چون Session رمزگذاری شده است، خواندن آنها پس از ارسال امکان پذیر نیست. دوم اینکه از آنجا که هر دستگاه دارای یک certificate منحصر به فرد است جعل پیام تقریبا غیر ممکن است. نکته سوم اینکه از آنجا بستر TCP است تحویل هر پیام تضمین شده است(چون تاییدیه از سوی دریافت کننده به ارسال کننده فرستاده می شود).

Syslog چیست و چگونه کار می کند
اما معایبی هم وجود دارد. اگر سرور مرکزی پیامهای تعداد زیادی از دستگاه ها را دریافت می کند، ممکن است به دلیل تعداد اتصالات TCP همزمان، به مشکل کمبود منابع هم مواجه شود و ضمن اینکه پیکربندی پیچیده تری دارد.

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.