فرآیند Auditing چیست؟ حتی اگر مدت کوتاهی هست که پا به عرصه مدیریت شبکه گذاشته اید حتما به بررسی کنترل های امنیتی برخورده اید، یکی از راهکارهای امنیتی Auditing است ، بطور کلی Auditing پروسه ای است که بواسطه آن رایانه ها به گونه ای میگردند که در مقابل رخدادهای امنیتی واکنش نشان داده و فعالیتهای انجام شده را ثبت و ضبط نمایند .
شما در Group policy ویندوز خود میتوانید مشخص کنید که از چه رخدادهایی لاگ برداری شود و نتیجه آن را در کنسولEvent viewer در ویندوز قابل مشاهده است ، برای انجام تنظیمات ، در Group Policy کامپیوتر که میخواهید لاگهایش ذخیره شوند وارد شوید (اگر کامپیوتر شما عضو دامین نیست میتوانید با رفتن به Run و تایپ عبارت Gpedit.msc وارد این کنسول شوید) و بعد به مسیر زیر بروید :
Computer Configuration => Policies => Windows Settings => Security Settings => Local Policies => Audit Policy
در زیر انواع رویدادهایی را که در ویندوز ثبت میشوند را بطور کلی شرح می دهیم:
- Audit account logon events : زمانی که یک کاربر به یک سیستم عضو Domain بوسیله یک یوزر اکانتی که در سرور ساخته شده بخواهد Log on و یا Log off کند ، این سیاست فقط در شبکه های عضو دامین کاربرد دارد.
- Audit account management : زمانی که یک حساب کاربری جدید ایجاد ، تغییر یا حذف شده باشد ، یا یک حساب کاربری تغییر نام داده شده باشد ، یا اگر که یک حساب کاربری فعال یا غیر فعال یا کلمه رمز آن تغییر یافته باشد.
- Audit directory service access : دسترسی کاربران به اشیاء در اکتیو دایرکتوری را لاگ برداری میکند ، ممکن است شما به چند کاربر دسترسی مدیریت داده باشید این کاربران در صورتی که تغییراتی در Objectها در اکتیودایرکتوری بدهند از فعالیتشان لاگ برداری خواهد شد و تاریخ و ساعت آن واقعه ثبت میشود.
- Audit logon events : یک کاربر که یوزر اکانتش که در Local ساخته شده Log On یا Log Off کرده ، این سیاست در کامپیوترهای عضو Workgroup استفاده میشود.
- Audit object access : یک کاربر قصد دسترسی به منابع از جمله فایل ، پوشه و یا چاپگرها را داشته باشدکه میبایست شما همراه با فعال کردن این پالیسی ، تنظیمات Auditing را روی فایلها و پوشه هایتان تنظیم کنید. ( که در ادامه این مقاله روش این کار را توضیح میدهیم )
- Audit policy change : زمانی که تغییراتی در User Rights , Security Option یا Audit Policy موجود در Group Policy پیش آمده باشد.
- Audit privilege use : برای زمانی که یک کاربر قصد استفاده از یک User Right مثل تغییر ساعت کامپیوتر را داشته باشد.
- Audit process tracking : این مورد برای برنامه نویسان کاربرد دارد، زمانی که OS خط به خط برنامه را میخواند و خروجی و Error های برنامه را ثبت میکند.
- Audit system event : زمانی که کاربر کامپیوتر را خاموش یا روشن کرده باشد و یا سیستم هنگ و یا ریستارت شده باشد یا یک رویداد اتفاق افتاده باشد که امنیت ویندوز یا System Log را تحت تاثیر قرار دهد مثلا Audit Log پر شده باشد و ویندوز اقدام به پاک کردن رویدادهای قدیمی تر کرده باشد
شما با دابل کلیک بر روی هر کدام میتوانید مشخص کنید که رخدادهایی که با موفقیت و یا خطا مواجه شده اند ذخیره شوند ، پس از تنظیم Group policy ویندوز شما شروع به لاگ برداری از رخدادهایی که برایش تعیین کرده اید میکند ، برای دیدن این لاگها میتوانید به کنسول Event Viewer مراجعه کنید ، برای رفتن به این کنسول در Run عبارت Eventvwr را تایپ کنید ، ظاهر این کنسول به این شکل است
در این کنسول بطور کلی دو قسمت برای ثبت گزارشها وجود دارد Windows Logs و Applications and service Event که هرکدام چند قسمت را در زیر مجموعه خود برای ذخیره گزارشات در بر دارند که لاگها یا همون گزارشها بر اساس نوعشان در آنها قرار میگیرند.برای مثال ما Audit account logon events که مربوط به Log on و Log off کردن کاربران تحت شبکه دامین میباشند را فعال کرده و Failure را علامتدار میکنیم که تا تنها رویدادهایی که با خطا مواجه شده اند را ثبت کند
و پس از آن اگر یکی از کامپیوترهای عضو دامین ما خواست بوسیله یوزر اکانتی که در سرور ساخته شده لاگین کند و رمز عبورش را اشتباه وارد کند با توجه به اینکه این تلاش ناموفق بوده در Even viewer بصورت یک گزارش ذخیره میشود ، برای مشاهده آن در سرور وارد Event viewer شده و به مسیرWindows Logs و Security شده و گزارش آن را در لیست به همراه تاریخ و ساعت و دیگر جزئیات مشاهده میکنید به شکل زیر دقت کنید
در این گزارش مشاهده میکنید که کاربری به نام Saeed در تاریخ و ساعت مشخص شده در تصویر در زمان احراز هویت با خطا مواجه شده.انواع لاگهای بسیار زیادی در Event viewer وجود دارد و با یکبار لاگین کردن یک کاربر و یا هر عمل دیگری ممکن است چندین لاگ ثبت شود ، تفسیر تک تک آنها چندان کار ساده ای نیست و توضیح آنها ما را از بحث اصلی خارج میکند.
یکی دیگر از کاربردهای Auditing این است که بفهمیم چه کسانی ، چه زمانی و چگونه از دسترسی هایشان به منابع استفاده کرده اند و یا چه زمانی به مشکل برخورده اند و یا حتی چه زمانی قصد دسترسی بدون اجازه از منابع و فایل و پوشه ها شده را داشته اند و راه اندازی آن در دو مرحله انجام میشود ، یکی اینکه بر فایل یا فولدرها ، مشخص میکنیم که از چه چیزهایی لاگ برداری شود و دیگری را در Group Policy تعیین میکنیم که در بالا در سیاستی به نام Audit object access به آن اشاره شد ، برای انجام مرحله اول این کار روی یک فولدر یا فایل راست کلیک کرده وProperties میگیریم ، سپس در تب Security رفته و Advanced را میزنیم و در پنجره باز شده وارد تب Auditing میشویم که در آن میتوانید تنظیمات را مشاهده کنید:
و برای ویرایش تنظیمات روی Edit کلیک کنید تا پنجره ای به شکل زیر برای شما ظاهر شود:
در اینجا Add را بزنید و یوزری را که میخواهید در زمان استفاده از منابع ، فعالیتهایش لاگ برداری شود را انتخاب کرده و OK کنید و بعد از آن با پنجره زیر مواجه میشویم
در این پنجره لیستی از دسترسیها را مشاهده میکنید و میتوانید با علامتدار کردن Successful مشخص میکنید که چه نوع دسترسیهایی از کاربر لاگبرداری شود ، در صورتی که Failed را علامتدار کنید زمانی که کاربر قصد دسترسی به منابع را داشته باشد و به دلیل عدم دسترسی و یا هر دلیل دیگری نتواند این کار را انجام دهد لاگ او ثبت خواهد شد.سپس OK را زده و این کاربر در قسمت Auditing entries بشکل زیر قابل مشاهده است:
در صورتی که این تنظیمات را در فولدر اعمال کرده باشید با تیک دار کردن Replace all existing inheritable auditing…… میتوانید این تنظیمات را به فولدرهای زیر مجموعه اعمال کنید یا به اصطلاح به ارث بدهید ، همچنین اگر فولدر شما از فولدرهای بالاسر خود این تنظیمات را ابه ارث برد میتوانید با برداشتن تیک Include inheritable auditing entries from this object 's parent کاری میکنید که از بالا سر خود تنظیماتی را به ارث نبرد.
این قسمت تا حد زیادی مثل NTFS Permission هست و اگر با تنظیماتNTFS Permission کار کرده اید فکر نمیکنم درک مفهوم وراثت و تنظیمات این قسمت برایتان چندان مشکل باشد. اگر این پوشه را به اشتراک بگذارید میتوانید دسترسیهایی که کاربران از کامپیوترهایی دیگر به این منابع را داشته اند را مشاهده کنید.
- نکته: لاگهایی که در این قسمت تعیین میکنید را در Event viewer و در قسمت Windows Logs در Security میتوانید مشاهده کنید.
Auditing دارای دامنه ای گسترده است و در همین چند مورد منتهی نمیشود از جمله مواردی که در ویندوز سرور میتوان از آن استفاده است در اکتیو دایرکتری و لاگ برداری در اشیائی که در این پایگاه داده وجود دارد میتوان نام بردبرای درک بهتر وارد تنظیمات Auditing در اکتیو دایرکتوری را بررسی میکنیم در کنسول اکتیو دایرکتوری در منوی View رفته و Advanced Features را فعال کنید
سپس روی OU یا یوزر و یا هر شئ دیگری که میخواهید راست کلیک کرد و Properties بگیرید و بعد در پنجره باز شده وارد تب Security شده و Advanced را بزنید و در پنجره باز شده وارد تب Auditing شوید این پنجره مشابه همان پنجره ایست که در تنظیمات تب Auditing در فولدرها دیده شده و گفته شد
همچنین برای اینکه تنظیمات Auditing در Group Policy Management را در ویندوز سرور 2008 مشاهده و یا ویرایش کنید وارد GPMC شده (در Run عبارت Gpmc.msc را تایپ کنید) در این کنسول بر روی یکی از GPOها کلیک کرده و در سمت راست در تب Delegation رفته و روی Advanced کلیک کنید
با کلیک بر Advanced پنجره ای بسیار آشنا مشاهده میکنید که با خواندن مطالب چند خط بالا مطمئن هستم که میتوانید با آن کار کنید.
تمامی این گزارشها را میتوانید درEvent viewer سرور مشاهده کنید
کلام آخر :
استفاده از Auditing و کار با کنسول Event Viewer در امنیت شبکه بسیار حائز اهمیت بوده و استفاده از آن حتی در عیب یابی و پیگیری خطا در ویندوز بسیار موثر است چنین ابزاری در ویندوز بسیار کاربرد خواهد داشت و شما به عنوان یک مدیر در شبکه خود از این ابزار میتوانید استفاده های بسیاری ببرید ، گرچه تعداد رویدادهایی که در این حالت برداشت میشود تنوع بسیار زیادی دارند و تفسیر تک تک آنها کار چندان ساده ای نیست ولی شما با استفاده از ابزار Filter در این کنسول میتوانید لاگهای خود را بر اساس آنچه که میخواهید فیلتر کنید و هر چه زودتر به هدف خود برسید.
با سلام و احترام
با آموزش بالا آیا میشه تغییراتی که ادمین ها در گروپ پالیسی اکتیو دایرکتوری ایجاد میکنند رو مشاهده کرد.
اگر نمیشه آیا راهکاری هست برای لاگ کردن تغییرات گروپ پالیسی؟
با سلام
از این آموزش خیلی عالی بسیار ممنونم واقعا استفاده کردم لطف کردید واقعا عالی بود.
با سپاس
خواهش میکنم سعید جان
هدفم فقط کامل کردن بحث بود چون این سایت واقعا یه سایت فارسی عالی در زمینه شبکه هست من خودم خیلی چیزها ازش یاد گرفتم .
با سلام
ممنونم از شما سامان عزیز ، من هم برای نوشتن این مقاله از منابع ماکروسافت و تجربیات خودم استفاده کردم. ممنونم از توضیحات کامل و مفیدتون و اینکه به اشکالی که در مقاله وجود داشت اشاره کردید و اصلاح نمودید.
من هم خیلی استفاده بردم موفق باشید.
سلام و خسته نباشید خدمت جناب شمس بابت مقاله خوبشون
راستش ابهامی که درباره audit account logon و audit logon وجود داره حتی تو خود منابع مایکروسافت هم هست و به وضوح توضیح داده نشده حتی در توضیحات جناب شمس هم من این رو دیدم و لازم دونستم با اجازه بزرگترا (; مطالبی رو اضافه کنم که شاید در فهم درست این دو event کمکی کرده باشد البته اساتید و ادمین گرامی هر جور صلاح دانستن میتونن ویرایش و حذف کنن (راستش داریم درس پس میدیم)
- قبل از هر چیزی نمیتوان تفاوت دو event بالا را تنها در logon کردن به دامین و لوکال دانست در واقع اصلا ربطی به این مسئله هم ندارد. زیرا:
1- audit account logon : زمانی اتفاق می افتد که ما یک credential را جهت validation ارائه دهیم ( حال به سیستم لوکال باشد و یا دامین ) و با توجه به کانفیگ policy در حالت های success و یا failure و یا هر دو این event ثبت میشود. در واقع نام درستی برای این policy انتخاب نشده زیرا این policy ربطی به logon ندارد بلکه به ارائه credential مربوط میشود .
حال اگر ما به یک سیستم لوکال credential ارائه بدهیم مثلا بصورت PC\User (که در ان PC نام کامپیوتر لوکال و User نام یوزر لوکال باشد ) این event در روی همان سیستم لوکال ثبت میشود و اگر ما به دامین credential ارائه بدهیم بصورت saman@itpro.local (که در آن saman یک یوزر دامینی و itpro.local نام دامین ما باشد) در این حالت این event روی دامین ثبت میشود . (پس ربطی به نوع logon ندارد و در هر دو حالت لوکال و دامینی - ولی در جاهای متفاوت - ثبت میشود)
یعنی در واقع این event روی سیستمی ثبت میشود که کار validate کردن credential را انجام میدهد . و در زمانی اتفاق می افتد که یک credential جهت validation ارائه شود .
نکته : این event برای کاربر لوکال و دامینی و کامپیوتری که join به دامین شده ثبت میشود .زیرا کامپیوتر join شده هم جهت ورود به دامین credential ارائه میدهد .
2- audit logon : اما این event زمانی رخ میدهد که یک logon session ایجاد شود (logon صورت پذیرد) و یا از بین برود (logoff انجام شود ) و یا یک درخواست logon رد بشود .
حال اگر یوزری بخواهد به سیستمی بصورت لوکال دسترسی پیدا کند این event روی سیستم لوکال ثبت میشود و اگر بخواهد به منابعی share شده در دامین مثلا روی یک member server دسترسی پیدا کند این event روی member server ثبت میشود . و ضمنا در زمان دسترسی یک یوزر به دامین نیز این event روی دامین ثبت میشود زیرا در زمان دسترسی به دامین اسکریپتهای logon و policy ها از دامین دریافت میشود .
یعنی در واقع این event در جایی ثبت میشود که ما روی آن سیستم به منابعی دسترسی پیدا کنیم و زمانی اتفاق می افتد که به آن (در حالت لوکال) و یا منابعی در آن (در حالت دامینی) دسترسی پیدا میکنیم (logon میکنیم) و ضمنا در زمان logoff نیز این event رخ داده و ثبت میشود .
امیدوارم تونسته باشم تا حدودی مطلب رو برسونم.
خیر اینطور نیست . بستگی داره که این یوزر احراز هویت رو بر روی کدوم سرور انجام بده ، منظور من از توضیحات بالا این بود که وقتی کاربر میخاد لاگین کنه و عملیات احراز هویت رو بر روی سرور اکتیودایرکتوری انجام میده طبیعتا باید تنظیمات Auditing رو بر روی سرور اکتیودایرکتوری انجام بدید. اما اینکه شما چه نوع لاگهایی رو میخاین مشاهده کنید و اینکه کدوم لاگها مربوط به سرور اکتیو دایرکتوری و کدومها مربوط به سرور اپلیکیشن و یا سرورهای دیگه میشن خود جای بحث داره و اینجا در زیر مقاله جای اون نیست . لطفا اگر تمایل به پیگیری این سوال دارید اون رو در تالار گفتگو مطرح کنید تا روی اون بحث کنیم . مچکرم
موفق باشید
پس با توضیح شما من اگر نیاز دارم که مثلا login logoff و ورود کلمه رمز اشتباه و ... روی سرور اپلیکیشنمو لاگ بگیرم فقط کافیه تنظیمات مربوطه رو روی سرور اکتیو دایرکتوری اعمال کنم؟ احساس میکنم یه جای کارم ایراد داره! ممنون میشم اگر سناریو یا مطلبی دارید که مثال کاملی از مشکل من است رو به اشتراک بزارید.
با سلام خدمت شما ، اگر منظور شما این هست که میخواهید ببینید که کاربرها چه زمانی Login و Logoff میکنند باید بگم که این گزارشات مربوط به سرور اکتیودایرکتوری میشه و شما باید تنظیمات رو جهت دریافت گزارشات بر روی سرور اکتیودایرکتوری انجام بدید.
با سلام خدمت نویسنده عزیز مطلب و سایر دوستان
بنده در مباحث شبکه های دامین تازه کار هستم. در خصوص Auditing سوالی داشتم
یه سرور اکتیو دایرکتوری دارم که همه چی رو کنترل میکنه
و چند سرور دیگه هم (سرور اپلیکیشن ها، دیتابیس و ...) join هستن به سرور اکتیو دایرکتوری، کاربرا هم join هستن به همین سرور
حالا سوال بنده این هست که من تنظیمات Auditing جهت لاگ گرفتن از ورود خروج یوزرها به سرورهای شرکت رو روی سرور اکتیو باید انجام بدم یا روی خود سرورهای مورد نظر؟
با تشکر