۱۳۹۶-۱۱-۱۵، ۱۰:۲۲ ق.ظ
استفاده از authentication ، authorization و accounting (به اختصار AAA) به منظور بررسی هویت کاربر و اینکه کاربر خدمات شبکه می تواند چه کاری انجام دهد یک راه بسیار عالی برای امن کردن management plane در
تجهیزات محسوب می شود. در بسیاری از سازمان تعداد بسیاری زیادی دستگاه وجود دارد. اگر برای این دستگاه ها از دیتابیس لوکال دستگاه ها استفاده شود مدیریت کاربران برای این دستگاه ها سخت خواهد بود.
به طور مثال اگر بخواهید به یک کاربر دسترسی به 10 دستگاه را بدهید باید برای این کاربر روی هر 10 دستگاه یوزر و پسورد تعریف کنید یا اگر بخواهید پسورد این کاربر را در این 10 دستگاه تغییر بدهید باید اینکار رو روی
تمام این دستگاه ها انجام دهید. این روش در شبکه های بزرگ با دستگاه های زیاد و همچنین تعداد زیادی کاربر روش درستی نیست.
راه حل مناسب برای اینکار استفاده از یک دیتابیس مرکزی است که برای همه یوزر و پسورد ها برای تایید هویت و مجازی سازی همچنین اینکه هر کاربر اجازه دارد چه کاری انجام دهد استفاده شود. این در درجه اول کاری است که (Access Control Server (ACS می تواند
برای ما انجام دهد. اولین قسمت کانفیگ مربوط به سرور ACS می شود که در آن باید یوزر و پسورد ها و همچنین کاری که آنها اجازه دارند انجام دهند مشخص می شود. قسمت دوم کانفیگ این است که برای دستگاه مشخص کنیم
که هنگامی که درخواست authentication یا authorization داشت از سرور ACS استفاده کند و با آن ارتباط برقرار کند.
از سرور ACS می توان برای مدیریت کاربران که می خواد از طریق دستگاه مثل روتر یا فایروال به شبکه دسترسی پیدا کنند استفاده کرد به طور مثال برخی از کاربران می خواهند از طریق VPN به شبکه متصل شوند در نتیجه نیاز به
تایید هویت و کنترل دسترسی وجود دارد که اینکار توسط ACS به صورت متمرکز امکان پذیر است. همچنین از سرور ACS می توان برای ضبط اتفاقات (Accounting) استفاده کرد که در اینجا مشخص می شود که کاربر چه زمانی به تجهیزات متصل شده است و چه کاری انجام داده است.
Image
چرا از Cisco ACS استفاده می کنیم؟
بسیاری از سازمان های از تجهیزات سیسکو استفاده می کنند همچنین قصد استفاده از سرور ACS دارند بنابراین آنها می توانند کاربران خود را به صورت متمرکز مدیریت و کنترل کنند.
با تعریف کاربران در سرور ACS ، تمام این دستگاه های سازمان به عنوان کلاینت برای سرور ACS عمل می کنند در نتیجه می توانید از سرور ACS به عنوان نقطه مرکزی برای تایید هویت استفاده کنید.
به این صورت یکبار یک یوزر در سرور ACS ساخته می شود و دستگاه ها برای تایید هویت توسط ACS تنظیم می شوند نصب شبکه در نتیجه از این به بعد تایید هویت به وسیله سرور ACS انجام می گیرد و به راحتی
امکان اضافه کردن و تغییر کاربر وجود دارد و دیگر نیاز به مراجعه به تک تک دستگاه های برای تعریف و تغییر کاربران نیست و خیلی راحت و ساده می توانیم آنها را از طریق سرور ACS به صورت متمرکز مدیریت کنیم.
در بسیاری از سازمان ها کاربران زیادی برای تعریف در سرور ACS وجود دارد که این کاربران می تواند جهت دسترسی به شبکه یا تجهیزات باشند اما تعریف تعداد زیادی کاربر در دیتابیس لوکال ACS می تواند زمان بر باشد
یک ویژگی که در ACS در نظر گرفته شده است استفاده از یک دیتابیس خارجی است که حاوی این کاربران و پسورد آنها می باشد یک نمونه از این دیتابیس خارجی Microsoft Active Directory است که حاوی اطلاعات
کاربران و پسورد آنها است و می تواند به عنوان دیتابیس خارجی برای ACS عمل کند.
زنجیره ای از این رخدادها و اتفاقات می تواند شبیه این مثال باشد : یک کاربر به یک روتر متصل می شود خدمات شبکه و روتر به او پیغام تایید هویت می دهد در این مثال فرض بر این می شود که یک کاربر admin است که می خواد
دسترسی CLI به روتر پیدا کند. روتر برای استفاده از ACS تنظیم شده است بعد از اینکه روتر یوزر و پسورد را از کاربر دریافت کرد این اطلاعات را برای سرور AAA خود یعنی سرور ACS ارسال می کند و منتظر پاسخ می ماند.
در سرور ACS اگر از دیتابیس خارجی مانند Microsoft Active Directory استفاده شده باشد سرور ACS یک درخواست به Active Directory برای تایید اعتبار یوزر و پسورد ارسال می کند. اگر اطلاعات ارسالی توسط Active Directory تایید شد
ACS صحت تایید هویت را به روتر اطلاع می دهد و روتر اجازه دسترسی به کاربر را می دهد اما اگر اطلاعات در Active Directory وجود نداشت براساس تنظیمات صورت گرفته برای ACS می توان دیتابیس لوکال خود را بررسی کند.
در کل می توان این نکته را برداشت کرد که ACS می تواند از چند دیتابیس که شامل چند دیتابیس خارجی و دیتابیس لوکال برای بررسی صحت یوزر و پسورد استفاده کند
این حقیقت دارد : عملکرد NAT با دروغ گفتن است. به تصویر بالا نگاه کنید دو کاربر از رنج شبکه private با آدرس 10.0.0.0 استفاده می کنند و روتر از طریق اینترفیس G01 به این شبکه متصل است. همچنین روتر از طریق
اینترفیس G20 خود از طریق ISP به اینترنت متصل است. از دیدگاه امنیتی ، اینترفیس G01 به شبکه مورد اطمینان یعنی شبکه داخلی متصل است و اینترفیس G20 به شبکه غیرمطمئن یعنی شبکه خارجی متصل است.
براساس این تصویر روتر با توجه به IP که از طریق آن مجازی سازی به اینترنت متصل است (در این مثال IP 34.0.0.3) مشکلی برای ارتباط با اینترنت ندارد و این IP از طریق اینترنت قابل دسترس است اما دو کاربر در این مثال همانند روتر
نمی توانند به اینترنت متصل شوند چون از رنج شبکه private استفاده می کنند این رنج آدرس به صورت مستقیم در اینترنت قابل استفاده نیست. بنابراین اگر کاربران بخواهد به منابع موجود در اینترنت دسترسی پیدا کنند آنها
بسته های خود را به default gateway خود ارسال می کنند که در تصویر بالا R1 به عنوان default gateway محصوب می شود. اگر تنظیمات مورد نیاز برای R1 انجام شده باشد ، R1 آدرس IP بسته ها تغییر می دهد به این صورت
که آدرس IP اصلی مبدا بسته را با آدرس IP خود که از ISP دریافت کرده (IP 34.0.0.3) جایگزین می کند و این IP از طریق اینترنت قابل دسترس است.
به طور معمول دستگاه های اصلی که از NAT استفاده می کنند روتر ها و فایروال ها هستند. NAT تنها برای مخفی کردن کاربران خدمات شبکه پیشت یک IP آدرس کاربرد ندارد و جهت محافظت از این کاربران نیز کاربرد دارد این محافظت به این
خاطر است که از طریق دنیای خارجی یا همان شبکه اینترنت نمیدانند که دستگاه ها داخلی شبکه دقیقا از چه IP آدرسی استفاده می کنند بنابراین ایجاد یک ارتباط از شبکه خارجی به شبکه داخلی بسیار سخت است.
درک این موضوع که NAT یا PAT به تنهایی به عنوان یه مکانیزم امنیتی در نظر گرفته نمی شود بسیار مهم است و اجازه عبور یا عدم اجازه عبور به ترافیک با استفاده از ACL انجام می شود.
واژه های هستند که در NAT کاربرد دارند و اغلب باعث گیج شدن می شوند کلماتی مانند inside ، outside ، local و global. قبلا از اینکه بخواهیم به صورت خاص به این کلمات بپردازیم
گزینه هایی وجود دارد که می توان با NAT انجام داد که این گزینه برای درک این کلمات به ما کمک می کنند.
Inside ، Outside ، Local، Global
شما می توانید IP آدرس user 1 را ترجمه کنید تا بسته های آنرا به سمت اینترنت ارسال کنید. این یک مثال از inside NAT است که ترجمه آدرس برای بسته های یک host داخلی انجام می شود.
در اینجا برخی واژه هایی کاربردی در NAT را توضیح می دهیم :
Inside local : آدرس IP واقعی که برای host های داخلی مشخص شده است مانند user 1
Inside global : آدرس جهانی که روتر در عمل NAT از آنها استفاده می کند. از طریق شبکه خارجی user 1 را با این آدرس می بینند.
Outside local : آدرسی هایی که دستگاه های داخل شبکه ، دستگاه های نصب شبکه خارج از شبکه را با آن می بینیم و می تواند آدرس Private باشد. نکته ای که وجود دارد این آدرس از طریق شبکه داخلی قابل مسیریابی است.
Outside global : آدرس IP واقعی که برای host های شبکه خارجی مشخص شده است مانند IP سرور A
واژه هایی که ما استفاده می کنیم به خاطر ایجاد یک نقطه مرجع است. Inside و outside نشان دهنده این است که آدرس های IP در کجا قرار دارند و مشخص می شود که در شبکه ما و در کنترل ما هستند یا خیر.
Local و global نشان دهنده آدرس هایی هستند که قبل یا بعد ، توسط NAT دستکاری می شوند. inside local address که در جدول بالا نشان داده شد خدمات شبکه در شبکه داخلی ما و تحت کنترل ما است و به عنوان آدرس های
محلی شبکه ما شناخته می شود و آدرس های قبل از NAT می باشند. اما آدرس های بعد از NAT را inside global تشکیل می دهند. که مربوط به شبکه ما است اما دیدگاه جهانی دارد.
مثال زیر خروجی مقادیر برای دو static NAT را نشان می دهد که یکی برای user 1 و دیگری برای سرور A است. در این مثال ، سرور A با آدرس 10.0.0.3 برای کاربر داخلی map شده است. User1 خودش را به کاربران شبکه خارجی با آدرس 34.0.0.11 نشان می دهد.
NAT علاوه بر امنیتی که فراهم می کند اجازه برقراری ارتباط بین دو شبکه که دارای IP آدرس های ناسازگار(مانند overlapping) هستند را فراهم می کند. همچنین با استفاده از PAT امکان افزایش طول عمر IPv4 را حداقل برای یک دهه دیگر فراهم می کند.
تجهیزات محسوب می شود. در بسیاری از سازمان تعداد بسیاری زیادی دستگاه وجود دارد. اگر برای این دستگاه ها از دیتابیس لوکال دستگاه ها استفاده شود مدیریت کاربران برای این دستگاه ها سخت خواهد بود.
به طور مثال اگر بخواهید به یک کاربر دسترسی به 10 دستگاه را بدهید باید برای این کاربر روی هر 10 دستگاه یوزر و پسورد تعریف کنید یا اگر بخواهید پسورد این کاربر را در این 10 دستگاه تغییر بدهید باید اینکار رو روی
تمام این دستگاه ها انجام دهید. این روش در شبکه های بزرگ با دستگاه های زیاد و همچنین تعداد زیادی کاربر روش درستی نیست.
راه حل مناسب برای اینکار استفاده از یک دیتابیس مرکزی است که برای همه یوزر و پسورد ها برای تایید هویت و مجازی سازی همچنین اینکه هر کاربر اجازه دارد چه کاری انجام دهد استفاده شود. این در درجه اول کاری است که (Access Control Server (ACS می تواند
برای ما انجام دهد. اولین قسمت کانفیگ مربوط به سرور ACS می شود که در آن باید یوزر و پسورد ها و همچنین کاری که آنها اجازه دارند انجام دهند مشخص می شود. قسمت دوم کانفیگ این است که برای دستگاه مشخص کنیم
که هنگامی که درخواست authentication یا authorization داشت از سرور ACS استفاده کند و با آن ارتباط برقرار کند.
از سرور ACS می توان برای مدیریت کاربران که می خواد از طریق دستگاه مثل روتر یا فایروال به شبکه دسترسی پیدا کنند استفاده کرد به طور مثال برخی از کاربران می خواهند از طریق VPN به شبکه متصل شوند در نتیجه نیاز به
تایید هویت و کنترل دسترسی وجود دارد که اینکار توسط ACS به صورت متمرکز امکان پذیر است. همچنین از سرور ACS می توان برای ضبط اتفاقات (Accounting) استفاده کرد که در اینجا مشخص می شود که کاربر چه زمانی به تجهیزات متصل شده است و چه کاری انجام داده است.
Image
چرا از Cisco ACS استفاده می کنیم؟
بسیاری از سازمان های از تجهیزات سیسکو استفاده می کنند همچنین قصد استفاده از سرور ACS دارند بنابراین آنها می توانند کاربران خود را به صورت متمرکز مدیریت و کنترل کنند.
با تعریف کاربران در سرور ACS ، تمام این دستگاه های سازمان به عنوان کلاینت برای سرور ACS عمل می کنند در نتیجه می توانید از سرور ACS به عنوان نقطه مرکزی برای تایید هویت استفاده کنید.
به این صورت یکبار یک یوزر در سرور ACS ساخته می شود و دستگاه ها برای تایید هویت توسط ACS تنظیم می شوند نصب شبکه در نتیجه از این به بعد تایید هویت به وسیله سرور ACS انجام می گیرد و به راحتی
امکان اضافه کردن و تغییر کاربر وجود دارد و دیگر نیاز به مراجعه به تک تک دستگاه های برای تعریف و تغییر کاربران نیست و خیلی راحت و ساده می توانیم آنها را از طریق سرور ACS به صورت متمرکز مدیریت کنیم.
در بسیاری از سازمان ها کاربران زیادی برای تعریف در سرور ACS وجود دارد که این کاربران می تواند جهت دسترسی به شبکه یا تجهیزات باشند اما تعریف تعداد زیادی کاربر در دیتابیس لوکال ACS می تواند زمان بر باشد
یک ویژگی که در ACS در نظر گرفته شده است استفاده از یک دیتابیس خارجی است که حاوی این کاربران و پسورد آنها می باشد یک نمونه از این دیتابیس خارجی Microsoft Active Directory است که حاوی اطلاعات
کاربران و پسورد آنها است و می تواند به عنوان دیتابیس خارجی برای ACS عمل کند.
زنجیره ای از این رخدادها و اتفاقات می تواند شبیه این مثال باشد : یک کاربر به یک روتر متصل می شود خدمات شبکه و روتر به او پیغام تایید هویت می دهد در این مثال فرض بر این می شود که یک کاربر admin است که می خواد
دسترسی CLI به روتر پیدا کند. روتر برای استفاده از ACS تنظیم شده است بعد از اینکه روتر یوزر و پسورد را از کاربر دریافت کرد این اطلاعات را برای سرور AAA خود یعنی سرور ACS ارسال می کند و منتظر پاسخ می ماند.
در سرور ACS اگر از دیتابیس خارجی مانند Microsoft Active Directory استفاده شده باشد سرور ACS یک درخواست به Active Directory برای تایید اعتبار یوزر و پسورد ارسال می کند. اگر اطلاعات ارسالی توسط Active Directory تایید شد
ACS صحت تایید هویت را به روتر اطلاع می دهد و روتر اجازه دسترسی به کاربر را می دهد اما اگر اطلاعات در Active Directory وجود نداشت براساس تنظیمات صورت گرفته برای ACS می توان دیتابیس لوکال خود را بررسی کند.
در کل می توان این نکته را برداشت کرد که ACS می تواند از چند دیتابیس که شامل چند دیتابیس خارجی و دیتابیس لوکال برای بررسی صحت یوزر و پسورد استفاده کند
این حقیقت دارد : عملکرد NAT با دروغ گفتن است. به تصویر بالا نگاه کنید دو کاربر از رنج شبکه private با آدرس 10.0.0.0 استفاده می کنند و روتر از طریق اینترفیس G01 به این شبکه متصل است. همچنین روتر از طریق
اینترفیس G20 خود از طریق ISP به اینترنت متصل است. از دیدگاه امنیتی ، اینترفیس G01 به شبکه مورد اطمینان یعنی شبکه داخلی متصل است و اینترفیس G20 به شبکه غیرمطمئن یعنی شبکه خارجی متصل است.
براساس این تصویر روتر با توجه به IP که از طریق آن مجازی سازی به اینترنت متصل است (در این مثال IP 34.0.0.3) مشکلی برای ارتباط با اینترنت ندارد و این IP از طریق اینترنت قابل دسترس است اما دو کاربر در این مثال همانند روتر
نمی توانند به اینترنت متصل شوند چون از رنج شبکه private استفاده می کنند این رنج آدرس به صورت مستقیم در اینترنت قابل استفاده نیست. بنابراین اگر کاربران بخواهد به منابع موجود در اینترنت دسترسی پیدا کنند آنها
بسته های خود را به default gateway خود ارسال می کنند که در تصویر بالا R1 به عنوان default gateway محصوب می شود. اگر تنظیمات مورد نیاز برای R1 انجام شده باشد ، R1 آدرس IP بسته ها تغییر می دهد به این صورت
که آدرس IP اصلی مبدا بسته را با آدرس IP خود که از ISP دریافت کرده (IP 34.0.0.3) جایگزین می کند و این IP از طریق اینترنت قابل دسترس است.
به طور معمول دستگاه های اصلی که از NAT استفاده می کنند روتر ها و فایروال ها هستند. NAT تنها برای مخفی کردن کاربران خدمات شبکه پیشت یک IP آدرس کاربرد ندارد و جهت محافظت از این کاربران نیز کاربرد دارد این محافظت به این
خاطر است که از طریق دنیای خارجی یا همان شبکه اینترنت نمیدانند که دستگاه ها داخلی شبکه دقیقا از چه IP آدرسی استفاده می کنند بنابراین ایجاد یک ارتباط از شبکه خارجی به شبکه داخلی بسیار سخت است.
درک این موضوع که NAT یا PAT به تنهایی به عنوان یه مکانیزم امنیتی در نظر گرفته نمی شود بسیار مهم است و اجازه عبور یا عدم اجازه عبور به ترافیک با استفاده از ACL انجام می شود.
واژه های هستند که در NAT کاربرد دارند و اغلب باعث گیج شدن می شوند کلماتی مانند inside ، outside ، local و global. قبلا از اینکه بخواهیم به صورت خاص به این کلمات بپردازیم
گزینه هایی وجود دارد که می توان با NAT انجام داد که این گزینه برای درک این کلمات به ما کمک می کنند.
Inside ، Outside ، Local، Global
شما می توانید IP آدرس user 1 را ترجمه کنید تا بسته های آنرا به سمت اینترنت ارسال کنید. این یک مثال از inside NAT است که ترجمه آدرس برای بسته های یک host داخلی انجام می شود.
در اینجا برخی واژه هایی کاربردی در NAT را توضیح می دهیم :
Inside local : آدرس IP واقعی که برای host های داخلی مشخص شده است مانند user 1
Inside global : آدرس جهانی که روتر در عمل NAT از آنها استفاده می کند. از طریق شبکه خارجی user 1 را با این آدرس می بینند.
Outside local : آدرسی هایی که دستگاه های داخل شبکه ، دستگاه های نصب شبکه خارج از شبکه را با آن می بینیم و می تواند آدرس Private باشد. نکته ای که وجود دارد این آدرس از طریق شبکه داخلی قابل مسیریابی است.
Outside global : آدرس IP واقعی که برای host های شبکه خارجی مشخص شده است مانند IP سرور A
واژه هایی که ما استفاده می کنیم به خاطر ایجاد یک نقطه مرجع است. Inside و outside نشان دهنده این است که آدرس های IP در کجا قرار دارند و مشخص می شود که در شبکه ما و در کنترل ما هستند یا خیر.
Local و global نشان دهنده آدرس هایی هستند که قبل یا بعد ، توسط NAT دستکاری می شوند. inside local address که در جدول بالا نشان داده شد خدمات شبکه در شبکه داخلی ما و تحت کنترل ما است و به عنوان آدرس های
محلی شبکه ما شناخته می شود و آدرس های قبل از NAT می باشند. اما آدرس های بعد از NAT را inside global تشکیل می دهند. که مربوط به شبکه ما است اما دیدگاه جهانی دارد.
مثال زیر خروجی مقادیر برای دو static NAT را نشان می دهد که یکی برای user 1 و دیگری برای سرور A است. در این مثال ، سرور A با آدرس 10.0.0.3 برای کاربر داخلی map شده است. User1 خودش را به کاربران شبکه خارجی با آدرس 34.0.0.11 نشان می دهد.
NAT علاوه بر امنیتی که فراهم می کند اجازه برقراری ارتباط بین دو شبکه که دارای IP آدرس های ناسازگار(مانند overlapping) هستند را فراهم می کند. همچنین با استفاده از PAT امکان افزایش طول عمر IPv4 را حداقل برای یک دهه دیگر فراهم می کند.