فصل سوم – Network Foundation Protection
NFP یا Network Foundation Protection چارچوبی امنیتی است که توسط سیسکو طراحی شده است تا به طور منطقی کارکردهایی که در شبکه اتفاق میافتد را گروهبندی کند، در این چارچوب تعدادی از تکنیکها و روشهای ایمنسازی روترها و سوئیچ را با هم ترکیب کرده تا از حملات جلوگیری کنید.
NFP شامل سه قسمت مجزا است که در زیر آنها را بررسی میکنیم:
Management plane
به پروتکلها و ترافیکهایی که مدیر شبکه برای متصل شدن به دستگاههای شبکه ایجاد میکند را Management Plane گفته میشود که این ترافیک میتواند SSH یا Telnet باشد که مدیر شبکه میخواهد از راه دور به دستگاههای شبکه متصل شود، البته یک خرابی در Management Plane باعث میشود دیگر نتوانیم از راه دور به دستگاهها دسترسیی داشته باشیم، به خاطر همین حفظ امنیت آن بسیار مهم است.
Control plane
در این قسمت پروتکلهای که بین دستگاههای شبکه ردو بدل میشود مورد بررسی قرار میگیرد مانند پیامهای ARP یا ارسال لیست همسایگی در روترها که برای بروزرسانی روترهای مسیریابی استفاده میشود اگر خطا یا اتفاقی در این گروه اتفاق بیفتد دستگاهها توانایی به اشتراک گذاشتن و یادگیری را از دست خواهند داد.
Data plane
به ترافیکی اشاره دارد که توسط کاربر نهایی ایجاد شده است، مثلاً ترافیکی کاربری که یک صفحه را در حال مشاهده است.
وابستگی متقابل
توجه داشته باشید که این سه قسمت با هم در ارتباط هستند، مثلاً اگر در قسمت Control plane خرابی ایجاد شود و ارتباط بین روترها قطع شود مطمئناً در قسمت Data plane ارتباط کاربر با سرور یا وب سایت مورد نظر قطع خواهد شد.
در جدول زیر اقدامات امنیتی را که میتوانیم در هر سه گروه انجام دهیم را مشاهده میکنید:
نام Plane | تمهیدات امنیتی | اهداف حفاظت |
Management plane | Authentication, authorization, accounting (AAA) | محافظت از پروتکل NTP با استفاده از Authentication، استفاده از پروتکلهای رمز نگاری شده SSH / TLS برای ارتباط از راه دور و … |
Authenticated Network Time Protocol (NTP) | ||
Secure Shell (SSH) | ||
Secure Sockets Layer/Transport Layer Security (SSL/TLS) | ||
Protected syslog | ||
Simple Network Management Protocol Version 3 (SNMPv3) | ||
Parser views | ||
Control Plane | Control Plane Policing (CoPP) | به روزرسانی پروتکلهای مسیریابی و استفاده از Authentication در آن، که این کار باعث میشود مهاجم نتواند جدول مسیریابی را دستیابی کند |
Control Plane Protection (CPPr) | ||
Authenticated routing protocol updates | ||
Data plane | Access control lists (ACL) | استفاده از Access List برای محدود کردن ترافیک به ترافیکهای خاص، استفاده از سیستمهای شناسایی IPS و به کارگیری zone-base Firewall و ایجاد امنیت در پروتکل STP |
IOS IPS, zone-based firewall | ||
Layer 2 controls, such as private VLANs, Spanning Tree Protocol (STP) guards |
در ادامه کار هر سه قسمت DATA plane، Management Plane و Control plane را به طور کامل با هم بررسی میکنیم تا دقیقاً اجزا و نحوه کانفیگ انها مشخص شود.
کار با Management plane
در این قسمت میخواهیم به تنظیمات اولیه دستگاههای شبکه از دید امنیت بپردازیم، هر دستگاه شبکهای که خریداری میشود تنظیمات آن به صورت خام و بدون دستکاری افراد دیگر در دسترس مدیر شبکه قرار میگیرد و باید بر روی آن راهکارهای امنیتی را برای امن نگه داشتن آن پیادهسازی کنیم.
طبق آموزشهای که در کتاب CCNA بنده مطالعه کردید زمانی که یک روتر یا یک سوئیچ سیسکو را تهیه میکنید همراه آن یک کابل آبی رنگ که به عنوان کابل کنسول شناخته میشود قرار دارد و از طریق آن میتوانید به دستگاه خود متصل شوید و تنظیمات اولیه آن را انجام دهید ولی اگر توجه کرده باشید هیچ گونه نام کاربری و رمز عبوری از شما درخواست نمیشود، اصولاً زمانی که به روتر متصل میشوید یک آدرس IP برای آن در نظر میگیرید و بعد از آن یکی از سرویسهای Telnet و SSH را برای راحتی کار بر روی آن فعال میکنید، فعال کردن این نوع سرویسها نیازمند این است که بستر امنیت را در روتر فراهم کنید.
روشهایی برای حفظ Managemant Plane
در این قسمت برای اینکه در بخش Managemant Plane بتوانید امنیت اطلاعات را افزایش دهید روشهایی را برای بالا بردن امنیت بررسی میکنیم:
- استفاده از رمز عبور قدرتمند
بدست آورن رمز عبور پیچیده و قدرتمند بسیار سخت است و حدس زدن ان هم آسان نخواهد بود، اصولاً مهاجمان با استفاده از دیکشنری از رمزهای عبور سعی در شکستن قفل دستگاه میکنند که اگر چنانچه رمز عبور را ساده قرار دهید مثلاً ۱۲۳۴۵۶ این نوع رمزها به راحتی هک خواهد شد و به خاطر همین همیشه سعی کنید از رمز عبور پیچیده استفاده کنید، روش دیگر حمله به رمز عبور را میتوان از brute-force هم نام برد که در ادامه کتاب درباره آن صحبت خواهیم کرد.
- تایید اعتبار کاربر و استفاده از AAA
برای اینکه امنیت افزایش پیدا کند باید به کاربران سازمان خود یک نام کاربری به همراه رمز عبور اختصاص دهید تا مهاجم برای وورد به دردسر بیفتد، توجه داشته باشید سیستم AAA یا authentication, authorization, and accounting که در ادامه در باره آن بحث خواهیم کرد بسیار میتواند در این مورد به شما کمک کند تا بتوانید تسلط کاملی بر روی کاربران و مجوزهایی که برای آنها صادر میکنید داشته باشید.
- تلاش برای وورد به سیستم
شما به عنوان مدیر شبکه باید سیساستهایی را در قبال کاربرانی که برای وورد به سیستم تلاش میکنند داشته باشید، مثلاً باید یک زمانی را در سیستم AAA مشخص کنید که وقتی کاربری با نام کاربری و رمز عبور خود وارد شد و بعد از یک مدت مشخص در پشت سیستم خود قرار نداشت بهتر است آن حساب Logout شود تا با این کار از دستکاری غیر مجاز با آن نام کاربری جلوگیری شود و ی اینکه اگر کسی برای ورود بیشتر از سه بار تلاش کرد ان حساب مسدود شود.
- کنترل مجوز دسترسی یا RBAC
همهی مدیران نیاز به دسترسی کامل به همه بخشهای شبکه را ندارند و باید از طریق سیستم AAA سطح دسترسی آنها را محدود کرد، مثلاً مدیر مالی نیاز به دسترسی به اطلاعات سایر واحدها ندارد پس نباید یک دسترسی کامل برای آن صادر کرد.
- استفاده از پروتکلهای مدیریتی رمزنگاری شده
برای ارتباط کاربران با دستگاههای شبکه بهتر است از پروتکلهای قدرتمند رمزنگاری شده مانند HTTPS و SSH استفاده کرد تا مهاجمان نتوانند با گوش دادن به پیامها به اطلاعات دست پیدا کنند، اگر شما برای دستگاههای خود از پروتکلهای plaintext مانند HTTP یا Telnet استفاده کنید مهاجمان به راحتی میتوانند به اطلاعات حساس شما دست پیدا کنند البته اگر بخواهید از این دو پروتکل اسفاده کنید سعی کنید یک ارتباط VPN قبل از آن راهاندازی کنید تا تمام بستهها رمزنگاری شوند، پس همیشه به این نکته توجه کنید که از بهترین پروتکلهای رمزنگاری استفاده کنید.
- ورود به سیستم و نظارت بر روی آن
در هر شبکهای اگر نظارت بر روی عملکرد دستگاهها و کاربران وجود نداشته باشد، میتواند بسیار خطرناک باشد، اگر مهاجمی در تلاش برای نفوذ به دستگاههای شبکه شما باشد و شما هم خبری از آن نداشته باشد کمی نگران کننده خواهد بود، بهترین راه برای حل این نوع مشکلات استفاده از سیستم مانیتوریگ بر روی همه دستگاهها و کاربران شبکه است که در این کتاب هم نحوه ایجاد گزارش و ارسال آن به سرورهای Syslog را با هم میآموزیم.
- استفاده از سرویس Network Time Protocol
در یک شبکه باید تمام دستگاههای شبکه دارای یک ساعت مشخص باشند تا زمانی که رویدادی در هر دستگاه ایجاد و به سرور مانیتوریگ ارسال میشود دارای زمان و تاریخ درست باشد، این مورد با استفاده از سرویس NTP انجام خواهد شد که باید در سرور مادر راهاندازی شود.
توصیههایی برای استفاده از کلمه عبور
- همیشه سعی کنید کلمه عبوری را که برای کاربران در نظر میگیرید حداقل دارای هشت کاراکتر باشد.
- کلمه عبور میتواند شامل حروف الفبا، ترکیبی از حروف بزرگ و کوچک، نمادها و فضاها باشد، اگر از چنین پسورد پیچیدهای در شبکه خود استفاده کنید کار مهاجم برای نفوذ بسیار سخت خواهد بود، استفاده از فضای خالی یا Space در کلمه عبور بسیار میتواند کمک کننده باشد.
نکته مهم در استفاده از کمه عبور این است که با اینکه رمز عبور را به صورت پیچیده در نظر میگیرید ولی باید در یک دورهی زمانی مشخص آن را تغییر دهید.
استفاده از AAA برای تأیید کاربران
برای اینکه دسترسی غیر مجاز به شبکه گرفته شود و کاربرانی که اجازهی دسترسی به شبکه را دارند مشخص شوند بهترین راه استفاده از سیستم AAA یا authentication, authorization, and accounting است که در فصل چهارم به طور کامل درباره آن توضیح خواهیم داد.
هدف اصلی AAA این است که چه کسی به چه جایی باید دسترسی داشته باشد و عملکرد آن به چه صورت بوده است یعنی اینکه چه کاربری در چه زمانی وارد شبکه شده است و چه کاری انجام داده است.
حسابهای کاربری که در AAA ثبت میشوند میتوانند به صورت محلی باشند و یا اینکه از طریق سرویس Active Directory انجام گیرد.
احراز هویت (Authentication)
احراز هویت فرایندی است که توسط آن مشخص میشود یک فرد همان کاربر مورد نظر است، برای احراز هویت روشهای مختلفی وجود دارد که میتوان به نام کاربری و رمز عبور، کارتهای هوشمند و… اشاره کرد، معمولاً استفاده از Authenticaion میتواند برای دسترسی به کنسول روتر، پورت VTY، Auxiliary و… اشاره کرد.
مجوز دسترسی (Authorization)
در این قسمت بعد از اینکه کاربر مورد نظر از نظر احراز هویت بررسی شد و توانست وارد دستگاه مورد نظر شود باید مجورهای لازم را برای دسترسی به منابع شبکه برای ان تایین کنید، مثلاً میتوانید مشخص کنید کاربر در یک ساعت مشخص بتواند وارد شبکه شود و یا اینکه برای مدیران مشخص کنید که چه چیزی را میتوانند ببینند و تغییر دهند.
حسابداری و حسابرسی (Accounting and auditing)
کاربر بعد از انجام دو مرحله بالا شروع به کار در شبکه میکند و به مسیرهای مختلفی وارد و عملیات خود را انجام میدهد، برای اینکه متوجه شویم کاربر به چه مسیری رفته و چه کاری در چه زمانی انجام داده باشد این سرویس را برای آن فعال کنیم، یکی از سیستمهای حسابرسی میتوان به عملیات بانکی اشاره کرد که در ان مقدار پول دریافتی و جزئیات آن به صورت دقیق مشخص شده است.
توجه داشته باشید برای اینکه با سرور AAA ارتباط برقرار کنیم باید از پروتکلهای خاصی استفاده کنیم که این پروتکلها شامل TACACS+ و RADIUS هستند، پروتکل TACACS+ مختص شرکت سیسکو و دیگری عمومی و در همه دستگاهها اجرا میشود، در ادامه برای انجام و پیادهسازی این نوع پروتکلها از نرمافزار ACS استفاده خواهیم کرد و نحوه کار با آن را میآموزیم.
در ادامه کار میخواهیم روشهایی را برای امن نگه داشتن دستگاههای سیسکو انجام دهیم تا از دسترسی افراد غیر مجاز به آنها جلوگیری کنیم.