Syslog مخفف system log است. پروتکل و فرآیند SYSLog روشی برای ارسال پیام های ایجاد شده هر دستگاه یا سیستم به log server یا همان syslog server است. پروتکل syslog توسط رنج وسیعی از دستگاه ها، سرویسها فایروالها و حتی تا پرینترهای بروزتر پشتیبانی میشود و قادر به ایجاد log تعیین شده مربوط به رخداد، تغییرات و … هستند.
خانواده سرورهای مایکروسافت به صورت پیش فرض log های خود را به صورت local بروی event viewer ذخیره میکند. اما ابزارهایی وجود دارند که میتوان از طریق نصب آنها بروی سرور امکان انتقال log های ایجاد شده را فراهم کرد.
بسته به تنظیمات و قابلیت دستگاه و سرورها و …، موارد متنوعی قابلیت به log شدن دارند. این موارد شامل روال ورود و خروج کاربری به دستگاه، ایجاد تغییرات و تنظیمات بروی دستگاه، جلوگیری از یک دسترسی به سرور یا دستگاه، تلاش ناموفق برای ورود، میزان مصرف CPU و RAM و … میباشد.
پس از راهاندازی این سرور syslog و انجام تنظیمات برای ارسال log های ایجاد شده به سرور مربوطه، دیگر نیازی به چک کردن تمام دستگاهها نمیباشد و کافی است سرور مورد نظر را راهاندازی نمود.
از مهمترین log هایی که باید ثبت شوند، log چگونگی مصرف اینترنت است. یکی از مهمترین این وقایع مشخص بودن مقصدهای اینترنتی کاربران است. به دلیل اینکه تعداد زیادی از کارمندان از طریق اینترنت سازمان، در طول ساعت اداری به سایتها و شاید برنامههای مختلف اینترنتی متصل شوند، تمام این ارتباطات به نام آدرس اینترنت سازمان ثبت خواهد شد. به همین علت واحد فنآوری اطلاعات بایستی امکان مشخص کردن اینکه کدام کاربر در ساعت و تاریخ مشخص به چه سایتی و یا آدرس در اینترنت متصل شده را باید داشته باشد.
سطح log یا severity level اهمیت پیغام ارسال را مشخص میکند. سطوح این اهمیت متفاوت است. در مجموع 8 severity level وجود دارد.
لول 7 گزارشهای کلی و گزارش های معمول مانند ایجاد همسایگی، Ping ایی انجام شد و … یا به صورت کلی به نام اطلاعات debugging معروف است.
اگر port security به مشکلی بخورد در قسمت informational گزارش داده میشود.
اگر etherchannel به مشکل بخورد notification است.
اگر DHCP snooping اتفاق بیافتد Warning است
پورتی قطع و وصل شود error است
اگر مشکل سخت افزاری در دستگاهی که همجنان در حال کارکردن است، مانند fail شدن یک از فنها یا هاردهای سرور critical است.
اگر مشکلی برای پلتفرم در حال اجرا پیش بیاید Alert
و اگر دستگاهی از مدار خارج شود، Emergency رخ داده است.
نکته: از اولین مراحل حل مشکل بایستی بررسی syslog ها باشد.
راهاندازی syslog server
برای راهاندازی syslog server نرم افزارهای متنوعی مانند Kiwi یا 3C Deamon وجود دارد.
پس از نصب نرمافزار، برای فعال سازی به قسمت تنظیمات همانند تصویر زیر میرویم
مسیر ذخیره سازی مورد نظرمان را مشخص کرده و سپس سرویس را یکبار stop و سپس start میکنیم. به صورت پیش فرض اطلاعات بروی پورت UDP 514 میباشد که قابل تعویض شدن است.
پس از راهاندازی سرور، بایستی تنظیمات مروبط در سمت کلاینت را نیز انجام دهیم. هر سطحی از log را بروی دستگاه فعال کرده باشیم، از آن سطح به بعد (به لحاظ اهمیت) به سرور ارسال خواهد شد. در ارسال log ها باید دو مورد حجم log ها و پردازشی که ارسال log بروی دستگاه می گذارد را در نظر گرفت. مهم بودن سطح log کاملا بستگی به اهمیت دستگاه در شبکه دارد.
نرم افزارهایی که مثال زده شده، فقط مخصوص نگهداری log هستند و آنالیزی بروی آن انجام نمیدهند. به سیستم هایی که log ها را آنالیز میکنند سپس از روی log های event می سازند، سپس event را تحلیل و بررسی نموده و خروجی می دهند نرم افزارهای SIEM (Security Information and Event Management) گفته میشود. از جمله این نرم افزار ها میتوان به HP Arcsight، IBM QRader و Splunk اشاره نمود.
تفاوت log و event (رخداد)
شخصی 100 بار یک دستگاه را ping کرده است. این اتفاق معادل 100 log است. این 100 log، یک event است: شخص دستگاه مورد نظر را 100 بار ping کرده است.
بروی دستگاههای سیسکو در محیط global از دستور logging on و logging host IP که بایستی آدرس syslog server نظر را وارد نمود استفاده میشود.
سپس باید محدوده log را مشخص کنیم، به همین خاطر از دستور logging trap استفاده میکنیم.
هر سطحی (مثلا سطح 3) را مشخص کنیم معادل تا سطح 0 میشود.
از دستور service timestamps نیز برای مشخص کردن اینکه زمانها log بر اساس زمان دستگاه ارسال شود استفاده میکنیم
موارد داخل کروشه مواردی است که میخواهیم در log نمایش داده شود.
و عین همین log بروی log server انداخته میشود.
در مثالی دیگر یکی از interface های دستگاه را shut میکنیم
و نیتجه log بروی دستگاه
از دستور show logging نیز برای نمایش log های گرفته شده استفاده میشود
در log server مهم است که زمان log دقیق باشد. برای نمایش تاریخ و ساعت دستگاه از دستور show clock استفاده میشود.
برای تنظیم ساعت بروی دستگاه یا به صورت دستی، از دستور clock set (که البته دقیق نیست) استفاده میشود.
روش بهتر دریافت ساعت از روی یک ntp server داخلی یا اینترنتی است. یکی از معروفترین ntp های اینترنتی ntp.nist.gov است.
پس از بررسی مجدد ساعت دستگاه مشخص میشود که ساعت دقیق است
اگر از دستور show ntp associations وارد شود sync بودن زمان دستگاه با ntp server را مشخص میکند.
با توجه به اینکه time zone براساس UTC است بایستی local time zone بروی دستگاه تنظیم شود
با توجه به اینکه هر 6 ماه ساعت در ایران تغییر میکند میتوان مشخص نمود تا ساعت دستگاه به صورت اتوماتیک جابجا شود
با تعریف بالا میشود اولین هفته ماه march روز یکشنبه در ساعت 12 نیمه شب شروع و تا آخرین هفته ماه September ساعت 12 نیمه شب به مدت 60 دقیقه (offset) ساعت را جلوتر ببر. (علت این تعریف هم این است که در بسیاری از کشور اولین دوشنبه تابستان مشخص شده برای جابجایی ساعت نه در تاریخ مشخص)