کار با Management plane
در این قسمت میخواهیم به تنظیمات اولیه دستگاههای شبکه از دید امنیت بپردازیم، هر دستگاه شبکهای که خریداری میشود تنظیمات آن به صورت خام و بدون دستکاری افراد دیگر در دسترس مدیر شبکه قرار میگیرد و باید بر روی آن راهکارهای امنیتی را برای امن نگه داشتن آن پیادهسازی کنیم.
طبق آموزشهای که در کتاب CCNA بنده مطالعه کردید زمانی که یک روتر یا یک سوئیچ سیسکو را تهیه میکنید همراه آن یک کابل آبی رنگ که به عنوان کابل کنسول شناخته میشود قرار دارد و از طریق آن میتوانید به دستگاه خود متصل شوید و تنظیمات اولیه آن را انجام دهید ولی اگر توجه کرده باشید هیچ گونه نام کاربری و رمز عبوری از شما درخواست نمیشود، اصولاً زمانی که به روتر متصل میشوید یک آدرس IP برای آن در نظر میگیرید و بعد از آن یکی از سرویسهای Telnet و SSH را برای راحتی کار بر روی آن فعال میکنید، فعال کردن این نوع سرویسها نیازمند این است که بستر امنیت را در روتر فراهم کنید.
روشهایی برای حفظ Managemant Plane
در این قسمت برای اینکه در بخش Managemant Plane بتوانید امنیت اطلاعات را افزایش دهید روشهایی را برای بالا بردن امنیت بررسی میکنیم:
- استفاده از رمز عبور قدرتمند
بدست آورن رمز عبور پیچیده و قدرتمند بسیار سخت است و حدس زدن ان هم آسان نخواهد بود، اصولاً مهاجمان با استفاده از دیکشنری از رمزهای عبور سعی در شکستن قفل دستگاه میکنند که اگر چنانچه رمز عبور را ساده قرار دهید مثلاً 123456 این نوع رمزها به راحتی هک خواهد شد و به خاطر همین همیشه سعی کنید از رمز عبور پیچیده استفاده کنید، روش دیگر حمله به رمز عبور را میتوان از 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 استفاده خواهیم کرد و نحوه کار با آن را میآموزیم.
در ادامه کار میخواهیم روشهایی را برای امن نگه داشتن دستگاههای سیسکو انجام دهیم تا از دسترسی افراد غیر مجاز به آنها جلوگیری کنیم.
پیادهسازی رمز عبور قوی و پیچیده
قبل از اقدام به هر کاری توجه داشته باشید که در این کتاب از نرمافزار مجازیسازی GNS3 استفاده شده که در فصل چهارم آن را به صورت کامل نصب و راهاندازی کردیم و از آن در کل کتاب استفاده خواهیم کرد.
روشهای دسترسی و رمزگذاری:
برای دسترسی به روتر چندین روش وجود دارد که هرکدام را مورد بررسی قرار میدهیم:
پورت Console
این همان پورتی است که از طریق کابلConsole (آبی رنگ) به روتر متصل میشویم و برای متصل شدن به یک روتر خام به کار میرود که هیچگونه تنظیماتی روی آن انجام نشده است، برای رمزنگاری این پورت، باید کارهای زیر را انجام دهیم.
وارد مدglobal شوید و با دستور Line console 0، وارد پورت کنسول شوید. مانند زیر عمل کنید:
R1(config)#line console ?
<0-0> First Line number
اصولاً روی روترها، یک پورت کنسول وجود دارد که شمارهی آن صفر است و میخواهیم روی این پورت رمز عبور قوی قرار دهیم، باید به صورت زیر عمل کنیم.
R1(config-line)#password AB_@@_@@ba
برای این کار، از دستور Password و بعدازآن، از یک کلمهی عبور پیچیده، مانند AB_@@_@@BA استفاده میکنیم، همانطور که مشاهده میکنید رمز عبوری که برای این منظور در نظر گرفتیم دارای حروف بزرگ و کوچک و علامت اختصاری است.
بعدازاین که رمز را وارد و enter کردیم باید از دستور login استفاده کنیم تا زمانی که میخواهیم وارد تنظیمات روتر شویم از ما رمز عبور پرسیده شود، پس به این صورت این دستور را وارد میکنیم:
R1(config-line)#login
تذکر: اگر شما دستور Login را وارد نکنید، هر رمزی را هم روی روتر فعال کنید، باز برای ورود از شما رمز عبور درخواست نمیشود، پس به این نکته توجه کنید.
در حال حاضر با واردکردن این دستورات، روی روتر رمز قرار دادیم و زمانیکه میخواهیم از طریق کابل Console وارد User Mode شویم، از شما رمز درخواست میشود.
دستور :exec-timeout
زمانیکه وارد یک مد میشوید، اگر مدتزمانی با روتر کار نکنید، در هر مدی که هستید، خارج شده و به مد اول، یعنی UserMode برگشت میکند، برای جلوگیری از این کار، باید از دستور زیر در پورت consol استفاده کنید، البته پیشنهاد میشود برای حفظ امنیت یک زمان مناسب برای آن در نظر بگیرید.
Router(config-line)#exec-timeout 0 0
همانطور که مشاهده میکنید، در این دستور از دو صفر استفاده شده است که اولی برای دقیقه و دومی برای ثانیه است، با صفر کردن هر دو اگر در هر مدی باشید در همان مد ثابت خواهد ماند و خارج نمیشود، البته میتوانید هر زمان که خودتان دوست دارید وارد کنید.
Enable Password
این رمز برای Privileged Mode است. اگر کاربری بخواهد وارد این مد شود از وی پسورد درخواست میشود. برای فعال کردن آن، وارد مد Global میشویم و دستور زیر را تایپ و بعد enter میکنیم.
Router(config)#enable password Babajani#$%*1000
رمزهای عبوری که با دستورEnable Password فعال میشوند، زیاد نمیتوانند امن باشند، چون این رمزها به صورت Text Base بوده و با یک فرمان میتوانید رمز عبور را به دست آورید. برای دیدن رمز عبور از دستور Show Runing-config استفاده کنید، میخواهیم با این دستور به شما نشان دهیم که دستور Enable Password زیاد هم امن نیست، این دستور را در مد Privileged وارد کنید.
همانطور که مشاهده میکنید با واردکردن دستور Show Running-config، رمز عبور واردشده، نمایش داده شد، پس باید کاری کرد که این رمز به صورت Hashing یا کد شده در این قسمت نمایش داده شود تا کسی نتواند این رمز را مشاهده کند.
اول از همه، رمز قبلی را که وارد کردیم، حذف میکنیم. برای حذف هر دستوری که وارد کردیم، باید قبل از آن دستور، از کلمهی No استفاده کنیم تا دستور مورد نظر حذف شود، برای این کار از دستور No enable password استفاده میکنیم، بعد از این کار، از دستور enable Secret AB_@@_@@ba استفاده میکنیم که رمز عبور را به صورت کد شده درمیآورد و برای شما نمایش میدهد، بعد از این کار در مد Privileged دستور show Running-config را اجرا کنید، متوجه میشوید که رمز عبور password AB_@@_@@ba به صورت کد شده درآمده، مانند رمز زیر:
enable secret 5 $1$mERr$3HhIgMGBA/9qNmgzccuxv0
تذکر: زمانیکهEnable Secret فعال است، Enabel Password روی روتر کاربردی ندارد و اگر هر دو دستور را در یکزمان فعال کنید، فقط رمز عبوری که با دستور Enable Secret فعال کردیم، جواب میدهد.
اگر بخواهید از Password استفاده کنید و رمز آن هم به صورت Hash شده تغییر کند باید از دستور زیر در روتر استفاده کنید:
R1(config)# service password-encryption
پورت AUX
این پورت برای ارتباط از راه دور از طریق خط تلفن با روتر استفاده میشود که میتوانیم به روش زیر فعال کنیم و یک رمز عبور پیچیده برای آن در نظر بگیرید.
R1(config)#Line aux 0
R1 (config-line)#password 123
R1 (config-line)#login
این رمز عبور قبل از وارد شدن به User Mode پرسیده میشود.
Telnet
برای فعال کردن Telnet باید پورتهای مجازی Vty را فعال کنیم. Vty مخفف Virtual terminal که از چندین پورت مجازی برای ورود به روتر استفاده میکند، مثلاً در روتر 2911 از 15 پورت تشکیل شده است. برای مشاهده این پورتها در مد Global دستور زیر را وارد کنید:
R1(config)#line vty ?
<0-15> First Line number
با واردکردن دستور Line Vty و بعدازآن، علامت سؤال به ما تعداد پورتهای مجازی برای این روتر را نشان میدهد که 15 عدد استکه البته در روترهای جدید بسیار بالا است. شما میتوانید تمام این 15 پورت را فعال کنید که با این کار 15 نفر در یکزمان میتوانند وارد روتر یا سوئیچ شوند.
در اینجا تمام این 15 پورت را انتخاب و همهی آنها را فعال میکنیم، و روی همه آنها رمز قرار میدهیم:
R1(config)#line vty 0 15
R1(config-line)#pass ###$$$2741652ABCDfVGjjj
R1(config-line)#login local
در قسمت سوم از دستور Login استفاده کردیم که با این دستور به روتر اعلام میکنیم که در زمانTelnet رمز عبور را درخواست کن. اگر به جای Login از دستور No Login استفاده کنید، روتر هیچگونه رمزی درخواست نخواهد کرد، پس مواظب این دستور باشید. شما میتوانید به چند پورت اجازه دسترسی بدهید و به بقیهی پورتها اجازه دسترسی ندهید.
برای تعریف نام کاربری و رمز عبور باید از دستور زیر استفاده کرد، همانطور که مشاهده میکنید رمز عبور هم به صورت پیچیده وارد شده و هم نوع آن را Secret در نظر گرفتیم که Secret به این معنا است که رمز عبور شما به صورت Hash شده در Config قابل مشاهده است و کسی نمیتواند این رمز عبور را تشخیص دهد.
R1(config)#username babajani secret AB_@@_@@BA
برای اینکه رمز عبور را در Config مشاهده کنیم باید از دستور زیر استفاده کنیم که نتیجه آن هم مشخص است.
R1(config)#do show run | include username
username babajani secret 5 $1$.08t$t9W8awy7EEzk.Zk89.DDn/
با دستور زی میتوانیم تنظیماتی که برای پورتهای مورد نظر انجام دادیم را مشاهده کنید.
R1(config-line)#do show run | begin line
line con 0
exec-timeout 0 0
privilege level 15
password 7 08006E7129393A3732292D
logging synchronous
login
stopbits 1
line aux 0
exec-timeout 0 0
privilege level 15
password 7 107D08140419110F2C567A7A71
logging synchronous
login
stopbits 1
line vty 0 4
password 7 03247B2B454C620F0D4A5A4653564F48
login
line vty 5 15
password 7 03247B2B454C620F0D4A5A4653564F48
login
ایجاد سطح امتیاز سفارشی برای کاربران
شما میتوانید به صورت دستی و نه به کمک AAA برای کاربرن خود دسترسی سفارشی ایجاد کنید، به صورت پیش فرض اگر کاربری در User Mode باشد سطح آن یک است و اگر در privileged mode سطح آن پانزده است و شما میتوانید از یک تا پانزده برای کاربران دسترسی تعریف کنید.
برای تست این موضوع میخواهیم دوکاربر ایجاد کنیم که سطح دسترسی آنها متفاوت باشد و مشخص کنیم که آن سطح مورد نظر به چه دستوری دسترسی داشته باشد.
برای تست این موضوع در روتر یا سوئیچ دستورات زیر را وارد کنید، در این دستور دو کاربر با سطح دسترسی 9 و 8 ایجاد شده است.
R1(config)#username user1 privilege 8 secret Test@12345
R1(config)#username user2 privilege 9 secret Test@12345
بعد از انجام این کار باید مشخص کنیم که در سطح مورد نظر چه دستوری اجازه اجرا را دارد، در دستور زیر مشخص شده است که دستور PING از از سطح 8 به بعد توانایی اجرا را دارد و دستور Show که خیلی دستور مهمی است از سطح 9 به بعد، یعنی اگر User1 وارد روتر شود نباید دستور Show را اجرا کند چون در سطح 9 قرار ندارد.
R1(config)#privilege exec level 8 ping
R1(config)#privilege exec level 9 show
نکته: توجه داشته باشید برای تست این موضوع باید سرویس Telnet را فعال کنید.
همانطور که مشاهده میکنید با کاربر User1 به روتر R1 متصل شدیم، اگر دستور Ping را اجرا کنید بدون مشکل اجرا خواهد شد ولی اما اگر دستور Show که مربوط به سطح 9 بود را در سطح 8 اجرا کنید نتیجهای در بر ندارد، از این روش میتوانید یک سری محدودیت برای سطحهای مختلف ایجاد کنید.
روش دیگری هم برای فعالسازی سطح مورد نظر وجود دارد و آن هم این است که برای آن سطح یک رمز عبور قرار دهیم که دستور آن به صورت زیر است:
R1(config)#enable secret level 8 Test@12345
R1(config)#enable secret level 9 Test@123456
بعد از تعریف دستور بالا در مد User دستور زیر را وارد کنید، در این دستور به جای 9 باید سطح مورد نظر خود را وارد کنید و رمز عبوری را که در مرحله قبل ایجاد کردید را وارد کنید.
R1#enable 9
Password:
R1#
برای اینکه سطح دسترسی کاربر مورد نظر را به صورت آنلاین مشاهده کنید باید از این دستور استفاده کنید:
R1#show privilege
Current privilege level is 9