ACCESS LOG چیست؟
- تاریخ و زمان دسترسی مشتری
- آدرس IP مشتری یا نام میزبان
- نام کاربری
- وضعیت یا بحرانی بودن رویداد
- موفقیت یا شکست عملیات
- هرگونه پیام مرتبط
در این مقاله، دلیل مهم بودن گزارشهای دسترسی، انواع مختلف گزارشهای دسترسی و مکانهای آنها، محتویات آنها و پارامترهای پیکربندی مختلف را بررسی خواهیم کرد.
Access Log Types
به طور کلی می توانیم گزارش های دسترسی را به سه دسته اصلی طبقه بندی کنیم:
- Activity logs
- Server access logs
- Error logs
Activity logs :
گزارش فعالیت تمام اقدامات انجام شده توسط کاربر در طول یک جلسه را ثبت می کند. چنین فعالیت هایی شامل اجرای دستورات، بازدید از URL ها و دسترسی به فایل ها است. برخی از نمونههای گزارش فعالیت عبارتند از:
Server access logs :
گزارشهای دسترسی به سرور حاوی اطلاعاتی در مورد اتصالات کاربر و درخواستهای منابع آنها هستند. برخلاف گزارشهای فعالیت، این گزارشها حاوی اطلاعات دقیقی درباره آنچه کاربر واقعاً انجام داده است، نیستند. نمونه هایی از گزارش های دسترسی به سرور عبارتند از:
- Linux lastlog
- Windows security log
- AWS S3 bucket server access log
- Oracle Directory Server access log
- SQL Server login audits
Error logs :
گزارش های خطا حاوی اطلاعات تشخیصی در مورد خطاهایی است که در جلسات مشتری با آن مواجه می شوند. این گزارش ها برای عیب یابی خطاهای برنامه و سیستم مفید هستند. برخی از نمونه ها عبارتند از:
برای ساده نگه داشتن کارها، در این مقاله بر روی گزارش های دسترسی به سرور وب تمرکز می کنیم. به طور معمول، گزارش های دسترسی به وب سرور شامل هر سه نوع اطلاعات (دسترسی کاربر، فعالیت کاربر، و خطاهای درخواست) است.
چرا شما نیاز به گرفتن گزارش های دسترسی دارید؟
گرفتن و تجزیه و تحلیل گزارش های دسترسی به سرور وب برای مدیران سیستم مفید است.
ابتدا، در دسترس بودن و سلامت برنامه وب را برای عیبیابی سریعتر خطا نشان میدهد. به عنوان مثال، اگر گزارش دسترسی تعداد بالایی از خطای HTTP 404 را نشان دهد، به این معنی است که کاربران در تلاش برای دسترسی به یک یا چند صفحه ناموجود هستند یا سایت از URL های اشتباه استفاده می کند.
گزارش دسترسی همچنین به عیب یابی خطاهای مهم کمک می کند. به عنوان مثال، تعداد بالای خطاهای 5xx نشان می دهد که سرور وب با خطاهای داخلی روبرو می شود – احتمالاً بخشی از سایت در حال خراب شدن است. نگاهی بیشتر به گزارش خطای سرور وب می تواند اطلاعات بیشتری را نشان دهد.
بازاریابی دیجیتال یکی دیگر از زمینه های ارزشمند برای گزارش های دسترسی به سرور وب است. با استفاده از ورودی های گزارش دسترسی، بازاریابان دیجیتال می توانند مناطقی را در سایت که کاربران از آن بازدید می کنند، درخواست داده، تکمیل فرم ها، دانلود فایل ها، یا کلیک روی لینک ها را شناسایی کنند. همه اینها می توانند به تنظیم دقیق پروفایل کاربر و بهینه سازی موتورهای جستجو کمک کنند.
مهندسان SecOps از گزارش های دسترسی به سرور وب برای یافتن رفتارها یا ناهنجاری های غیرعادی استفاده می کنند. افزایش غیرمنتظره درخواست های HTTP GET از محدوده خاصی از آدرس های IP یک مثال است. این ممکن است یک حمله احتمالی DDoS از مجموعه ای از رایانه های در معرض خطر را نشان دهد. اگر قرار باشد یک وب سرور فقط ترافیک HTTP/HTTPS را از فایروال برنامه وب بپذیرد، درخواست مستقیم HTTP از آدرس های IP دیگر می تواند نشان دهنده دسترسی غیرمجاز احتمالی باشد.
گزارش دسترسی شامل چه چیزی است؟
به طور معمول، گزارش دسترسی به سرور وب حاوی انواع اطلاعات زیر است:
Date and time | تاریخ و ساعت دسترسی به سایت/صفحه، که می تواند به UTC یا به وقت محلی وب سرور باشد. |
Source IP | آدرس IP ماشین مشتری. |
Destination IP | آدرس IP سرور وب |
Destination FQDN | نام دامنه کاملاً واجد شرایط وب سرور. |
Destination port | پورت درخواستی در وب سرور این معمولاً 80 (پیشفرض برای HTTP) یا 443 (پیشفرض برای HTTPS) است، اما بسته به پورتی که وبسایت در حال اجرا است، میتواند هر چیزی باشد. |
Protocol | پروتکل شبکه دسترسی مشتری یک مثال معمولی HTTP 1.1 است. |
Username | دسترسی کاربر به وب سایت (اگر ناشناس باشد، با خط فاصله مشخص می شود). |
Resource | صفحه یا عنصر درخواست شده |
HTTP method | این روش درخواست HTTP (مانند، GET، POST، و غیره). |
HTTP status code | کد وضعیت بازگردانده شده توسط وب سرور (مانند 200 OK، 404 Page Not Found و غیره). |
URI Query | درخواست برنامه به عنوان بخشی از درخواست HTTP به وب سایت ارسال می شود. |
HTTP referrer | آدرس IP یا URL که مشتری را به این وب سایت هدایت می کند. |
HTTP user agent | نوع و نسخه مرورگر مشتری. |
Bytes received | تعداد بایت های دریافت شده توسط وب سرور از مشتری. |
Bytes sent | تعداد بایت های ارسال شده توسط وب سرور به مشتری. |
برای اینکه ببینیم این فیلدها چه شکلی هستند، بیایید قطعه زیر را از گزارش دسترسی به سرور وب آپاچی در نظر بگیریم:
116.35.41.41 - - [21/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 در تاریخ 21 مه 2022 ساعت 11:22 صبح به وقت سرور محلی آمده است. مشتری به صفحه aboutus.html در زیر فهرست اصلی وب سایت دسترسی پیدا کرد. کد وضعیت HTTP 200 بود (مانند درخواست مشتری با موفقیت) و آدرس وب سایت ارجاع دهنده http://34.227.9.153/ است. مرورگر کاربر Apple’s Safari بود و وب سرور هنگام ارائه صفحه 6430 بایت برای مشتری ارسال می کرد.
با جمع آوری چنین اطلاعاتی از گزارش دسترسی، می توانید موارد زیر را پیدا کنید:
- تعداد بازدیدکنندگان منحصر به فرد در هر صفحه یا صفحات منحصر به فرد برای هر بازدید کننده
- موقعیت جغرافیایی بازدیدکنندگان سایت
- بیشترین دسترسی به بخش های یک سایت
- رایج ترین پرس و جوهای مشتری استفاده می شود
- تعداد کل کدهای وضعیت 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) برای باز کردن و خواندن گزارش دسترسی استفاده کنند.
نحوه پیکربندی گزارش های دسترسی
مانند بسیاری از تنظیمات دیگر، میتوانید ویژگیهای گزارش دسترسی به سرور وب را در فایل پیکربندی آن تنظیم کنید. مکان یابی فایل پیکربندی اصلی وب سرور به خود سرور وب و سیستم عامل بستگی دارد. در اینجا یک لیست است:
Webserver | OS | Main Configuration File |
---|---|---|
Apache | RHEL-based | /etc/httpd/conf/httpd.conf |
Apache | Debian-based | /etc/apache2/apache2.conf |
Nginx | RHEL-based | /etc/nginx/nginx.conf |
Nginx | Debian-based | /etc/nginx/nginx.conf |
IIS | Windows Server | %WinDir%\System32\Inetsrv\Config\ApplicationHost.config |
برخی از تنظیمات ثبت دسترسی رایج در هر وب سرور عبارتند از:
- Log location
- Log format
- Log level
- Log rotation
مکان ثبت دسترسی می تواند برای هر وب سایتی که روی سرور وب میزبانی می شود متفاوت باشد. به عنوان مثال، در آپاچی، دستور زیر مکان ثبت دسترسی در سطح سرور را تنظیم می کند:
CustomLog "/var/log/httpd2/access_log" common
اما این می تواند برای VirtualHost لغو شود:
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
پیکربندی فرمت گزارش دسترسی، فیلدهایی را که باید در ورودیهای گزارش گنجانده شوند، مشخص میکند. فرمت گزارش دسترسی می تواند رایج یا ترکیبی باشد. قطعه زیر یک پیکربندی نمونه را نشان می دهد:
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 تنظیم کنید.
امیدوارم براتون مفید بوده باشه 🙂
دیدگاهتان را بنویسید