وبلاگ

ACCESS LOG چیست؟

access log یک فایل گزارش است که تمام رویدادهای مربوط به برنامه های کلاینت و دسترسی کاربر به یک منبع در رایانه را ثبت می کند. به عنوان مثال می‌توان گزارش‌های دسترسی (access log) به سرور وب، گزارش‌های دستورات FTP یا گزارش‌های جستجوی پایگاه داده باشد.
 
مدیریت گزارش های دسترسی ( access log ) یک وظیفه مهم برای مدیران سیستم است. توسعه‌دهندگان نرم‌افزار، مهندسان عملیات و تحلیلگران امنیتی از گزارش‌های دسترسی ( access log ) برای نظارت بر عملکرد برنامه‌شان، چه کسی به آن دسترسی دارند و چه اتفاقی در پشت صحنه می‌افتد، استفاده می‌کنند. گزارش‌های دسترسی ( access log )  می‌توانند به تیم‌های فناوری اطلاعات در کشف مشکلات، شناسایی تهدیدها و شناسایی مشکلات ظرفیت کمک کنند.
 
به طور معمول، گزارش های دسترسی ( access log ) حاوی برخی از اطلاعات رایج هستند. اطلاعات نمونه شامل:
 

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

Access Log Types

به طور کلی می توانیم گزارش های دسترسی را به سه دسته اصلی طبقه بندی کنیم:

  1. Activity logs
  2. Server access logs
  3. Error logs

Activity logs :

گزارش فعالیت تمام اقدامات انجام شده توسط کاربر در طول یک جلسه را ثبت می کند. چنین فعالیت هایی شامل اجرای دستورات، بازدید از URL ها و دسترسی به فایل ها است. برخی از نمونه‌های گزارش فعالیت عبارتند از:

Server access logs :

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

Error logs :

گزارش های خطا حاوی اطلاعات تشخیصی در مورد خطاهایی است که در جلسات مشتری با آن مواجه می شوند. این گزارش ها برای عیب یابی خطاهای برنامه و سیستم مفید هستند. برخی از نمونه ها عبارتند از:

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

چرا شما نیاز به گرفتن گزارش های دسترسی دارید؟

گرفتن و تجزیه و تحلیل گزارش های دسترسی به سرور وب برای مدیران سیستم مفید است.
ابتدا، در دسترس بودن و سلامت برنامه وب را برای عیب‌یابی سریع‌تر خطا نشان می‌دهد. به عنوان مثال، اگر گزارش دسترسی تعداد بالایی از خطای HTTP 404 را نشان دهد، به این معنی است که کاربران در تلاش برای دسترسی به یک یا چند صفحه ناموجود هستند یا سایت از URL های اشتباه استفاده می کند.
گزارش دسترسی همچنین به عیب یابی خطاهای مهم کمک می کند. به عنوان مثال، تعداد بالای خطاهای ۵xx نشان می دهد که سرور وب با خطاهای داخلی روبرو می شود – احتمالاً بخشی از سایت در حال خراب شدن است. نگاهی بیشتر به گزارش خطای سرور وب می تواند اطلاعات بیشتری را نشان دهد.
بازاریابی دیجیتال یکی دیگر از زمینه های ارزشمند برای گزارش های دسترسی به سرور وب است. با استفاده از ورودی های گزارش دسترسی، بازاریابان دیجیتال می توانند مناطقی را در سایت که کاربران از آن بازدید می کنند، درخواست داده، تکمیل فرم ها، دانلود فایل ها، یا کلیک روی لینک ها را شناسایی کنند. همه اینها می توانند به تنظیم دقیق پروفایل کاربر و بهینه سازی موتورهای جستجو کمک کنند. 

مهندسان SecOps از گزارش های دسترسی به سرور وب برای یافتن رفتارها یا ناهنجاری های غیرعادی استفاده می کنند. افزایش غیرمنتظره درخواست های HTTP GET از محدوده خاصی از آدرس های IP یک مثال است. این ممکن است یک حمله احتمالی DDoS از مجموعه ای از رایانه های در معرض خطر را نشان دهد. اگر قرار باشد یک وب سرور فقط ترافیک HTTP/HTTPS را از فایروال برنامه وب بپذیرد، درخواست مستقیم HTTP از آدرس های IP دیگر می تواند نشان دهنده دسترسی غیرمجاز احتمالی باشد.

گزارش دسترسی شامل چه چیزی است؟

به طور معمول، گزارش دسترسی به سرور وب حاوی انواع اطلاعات زیر است:

Date and timeتاریخ و ساعت دسترسی به سایت/صفحه، که می تواند به UTC یا به وقت محلی وب سرور باشد.
Source IPآدرس IP ماشین مشتری.
Destination IPآدرس IP سرور وب
Destination FQDNنام دامنه کاملاً واجد شرایط وب سرور.
Destination portپورت درخواستی در وب سرور این معمولاً ۸۰ (پیش‌فرض برای HTTP) یا ۴۴۳ (پیش‌فرض برای HTTPS) است، اما بسته به پورتی که وب‌سایت در حال اجرا است، می‌تواند هر چیزی باشد.
Protocolپروتکل شبکه دسترسی مشتری یک مثال معمولی HTTP 1.1 است.
Usernameدسترسی کاربر به وب سایت (اگر ناشناس باشد، با خط فاصله مشخص می شود).
Resourceصفحه یا عنصر درخواست شده
HTTP methodاین روش درخواست HTTP (مانند، GET، POST، و غیره).
HTTP status codeکد وضعیت بازگردانده شده توسط وب سرور (مانند ۲۰۰ OK، ۴۰۴ Page Not Found و غیره).
URI Queryدرخواست برنامه به عنوان بخشی از درخواست HTTP به وب سایت ارسال می شود.
HTTP referrerآدرس IP یا URL که مشتری را به این وب سایت هدایت می کند.
HTTP user agentنوع و نسخه مرورگر مشتری.
Bytes receivedتعداد بایت های دریافت شده توسط وب سرور از مشتری.
Bytes sentتعداد بایت های ارسال شده توسط وب سرور به مشتری.

برای اینکه ببینیم این فیلدها چه شکلی هستند، بیایید قطعه زیر را از گزارش دسترسی به سرور وب آپاچی در نظر بگیریم:

				
					۱۱۶٫۳۵٫۴۱٫۴۱ - - [۲۱/May/2022:11:22:41 +0000] "GET /aboutus.html HTTP/1.1" 200 6430 "http://34.227.9.153/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15"
				
			

در اینجا، گزارش دسترسی، درخواست مشتری را نشان می‌دهد که از آدرس IP 116.35.41.41 در تاریخ ۲۱ مه ۲۰۲۲ ساعت ۱۱:۲۲ صبح به وقت سرور محلی آمده است. مشتری به صفحه aboutus.html در زیر فهرست اصلی وب سایت دسترسی پیدا کرد. کد وضعیت HTTP 200 بود (مانند درخواست مشتری با موفقیت) و آدرس وب سایت ارجاع دهنده http://34.227.9.153/ است. مرورگر کاربر Apple’s Safari بود و وب سرور هنگام ارائه صفحه ۶۴۳۰ بایت برای مشتری ارسال می کرد.

با جمع آوری چنین اطلاعاتی از گزارش دسترسی، می توانید موارد زیر را پیدا کنید:

  • تعداد بازدیدکنندگان منحصر به فرد در هر صفحه یا صفحات منحصر به فرد برای هر بازدید کننده
  • موقعیت جغرافیایی بازدیدکنندگان سایت
  • بیشترین دسترسی به بخش های یک سایت
  • رایج ترین پرس و جوهای مشتری استفاده می شود
  • تعداد کل کدهای وضعیت HTTP مختلف

نحوه یافتن گزارش های دسترسی

مکان ثبت دسترسی یک وب سرور به سیستم عامل و خود وب سرور بستگی دارد.

به عنوان مثال، مکان پیش‌فرض ورود به سیستم دسترسی وب سرور آپاچی در سیستم‌های مبتنی بر RHEL در آدرس var/log/httpd/ است. در سیستم های مبتنی بر دبیان مانند اوبونتو، مکان var/log/apache2/ است.

برای Nginx، به طور پیش‌فرض، گزارش دسترسی در فهرست var/log/nginx/ در هر دو سیستم RHEL و Debian قرار دارد.

محل ثبت دسترسی پیش‌فرض برای Internet Information Service  (IIS) که روی سرور ویندوز اجرا می‌شود SystemDrive%\inetpub\logs\LogFiles\W3SVC% است. %SystemDrive% معمولاً C:\ است و site_id شناسه وب‌سایت میزبان IIS است.

راه‌های مختلفی وجود دارد که مدیران می‌توانند گزارش‌های دسترسی سرور وب را بخوانند. یک مدیر سایت می تواند به کنسول وب سرور واقعی برای سیستم های مبتنی بر لینوکس SSH کند و از دستوراتی مانند cat، tail و grep برای خواندن فایل استفاده کند. گاهی اوقات، مدیران وب ممکن است مجبور شوند از کنترل پنل ارائه دهنده هاست (مانند cpanel) برای باز کردن و خواندن گزارش دسترسی استفاده کنند.

نحوه پیکربندی گزارش های دسترسی

مانند بسیاری از تنظیمات دیگر، می‌توانید ویژگی‌های گزارش دسترسی به سرور وب را در فایل پیکربندی آن تنظیم کنید. مکان یابی فایل پیکربندی اصلی وب سرور به خود سرور وب و سیستم عامل بستگی دارد. در اینجا یک لیست است:

WebserverOSMain Configuration File
ApacheRHEL-based/etc/httpd/conf/httpd.conf
ApacheDebian-based/etc/apache2/apache2.conf
NginxRHEL-based/etc/nginx/nginx.conf
NginxDebian-based/etc/nginx/nginx.conf
IISWindows Server%WinDir%\System32\Inetsrv\Config\ApplicationHost.config

برخی از تنظیمات ثبت دسترسی رایج در هر وب سرور عبارتند از:

  • Log location
  • Log format
  • Log level
  • Log rotation

مکان ثبت دسترسی می تواند برای هر وب سایتی که روی سرور وب میزبانی می شود متفاوت باشد. به عنوان مثال، در آپاچی، دستور زیر مکان ثبت دسترسی در سطح سرور را تنظیم می کند:

				
					CustomLog "/var/log/httpd2/access_log" common
				
			

اما این می تواند برای VirtualHost لغو شود:

				
					<VirtualHost *:80>
    ServerName www.mysite.com
    ServerAlias test.com
    DocumentRoot /var/www/html/test.com
    ErrorLog /var/log/httpd/mysite.com/error_log
    CustomLog /var/log/httpd/mysite.com/access_log combined
</VirtualHost>
				
			

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

				
					LogFormat "%h %l %u %t \"%r\" %>s %b" common
				
			

اینجا:

  • %h نام میزبان راه دور است
  • %l نام ورود از راه دور از identd است (در صورت ارائه)
  • %u شناسه کاربری مشتری است (در صورت وجود)
  • %t مهر زمانی است که درخواست دریافت شده است
  • %r اولین خط درخواست HTTP است
  • %>s کد وضعیت HTTP است که توسط وب سرور بازگردانده شده است
  • %b اندازه منبع برگردانده شده در بایت است

 

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

سایر تنظیمات پیکربندی گزارش دسترسی آپاچی می تواند شامل سطح گزارش و چرخش گزارش باشد. سطح گزارش به شما امکان می دهد فقط رویدادهای خاصی را که دارای سطح بحرانی خاص و بالاتر هستند را شامل کنید. این سطوح بحرانی می تواند اشکال زدایی، اطلاعات، اطلاعیه، هشدار، خطا، کریت، هشدار، ظهور و هر چیزی بین trace1 تا trace8 باشد. هرچه سطح گزارش پایین‌تر باشد، ورودی‌های گزارش پرمخاطب‌تر خواهند بود. در قطعه زیر، ما گزارش دسترسی را برای ضبط فقط پیام‌های سطح هشدار و بالاتر پیکربندی می‌کنیم:

				
					LogLevel warn
				
			

این می تواند برای Apache VirtualHosts لغو شود.

می توانید چرخش لاگ آپاچی را با استفاده از ابزار logrotate لینوکس یا برنامه rotatelog Apache تنظیم کنید.

 

امیدوارم براتون مفید بوده باشه 🙂

اشتراک گذاری:

مطالب زیر را حتما مطالعه کنید

دیدگاهتان را بنویسید