در این مطلب با مفهوم Port Security آشنا می شویم و یاد میگیریم که چگونه بوسیله Port Security می توان جلوی حملات را گرفت. در بحث امنیت همیشه حملات و ترافیک مخرب از طریق شبکه خارجی و اینترنت صورت نمی گیرد بلکه بسیاری از حملات و مشکلات امنیتی منشاء آنها شبکه داخلی خود سازمان است و از طریق دستگاه های سازمان صورت می گیرد. Port Security یک قابلیت و امکان امنیتی است که به ما کمک می کند کنترل بسیار مناسبی در لایه دو داشته باشیم و بتوانیم جلوی بسیاری از حملات را بگیریم . Port Security کنترل می کند که چند MAC address روی یک پورت اجازه استفاده دارند.
سرفصل های این مطلب
این ویژگی به صورت پورت به پورت اجرا می شود. معمولا هر کاربر از یک MAC address استفاده می کند مگر اینکه از ماشین مجازی استفاده کند یا یک IP phone داشته باشد در این صورت نیاز به بیشتر از یک MAC address خواهد داشت. در هر صورت ، برای جلوگیری از اینکه کاربر دستگاه های مختلف را به سوئیچ وصل کند می توان از port security استفاده کرد و براساس MAC address این محدودیت برای هر پورت اعمال کرد.همچنین port security می تواند شبکه را در برابر نرم افزارهای مخرب که می توانند هزاران فریم را در شبکه با MAC Address های متفاوت ارسال کنند محافظت کند. با اینکار مهاجم با استفاده از این نرم افزار مخرب جدول MAC سوئیچ را تحت تاثیر خود قرار می دهد ، جدول MAC سوئیچ دارای ظرفیت محدودی است و این ظرفیت با MAC address های جعلی پر می شود.
در نتیجه MAC address های درست سایر تجهیزات نمی تواند در این جدول قرار بگیرد و زمانی که یک فریم به دست سوئیچ می رسد نمی تواند پورت خروجی برای مقصد فریم را پیدا کند و مجبور می شود این فریم را روی تمام پورت های خود ارسال کند و در اینجا مهاجم می تواند با Sniff کردن بسته ها به اطلاعات تمام دستگاه ها دسترسی پیدا کند. این حمله به عنوان CAM table overflow یا MAC Flooding Attack شناخته می شود.همچنین Port security می تواند از DHCP server حافظت کند. یک مهاجم با ارسال هزاران درخواست DHCP با MAC address متفاوت می تواند DHCP pool را خالی کند و سرویس دهی DHCP server را مختل کند و DHCP server دیگر نتواند به سایر دستگاه ها IP اختصاص دهد. به این حمله DHCP starvation گفته می شود.
با فعال کردن Port Security روی یک پورت به صورت پیش فرض یک MAC address می تواند از آن استفاده کند که می توان این MAC address را به صورت دستی یا sticky برای پورت مشخص کرد البته می توان با استفاده از دستور maximum تعداد را افزایش داد. اگر تعداد MAC address های مورد استفاده از پورت ، بیشتر از مقدار مشخص شده بیشتر شود یا MAC address غیر از MAC address مجاز از پورت استفاده کند اقدامی که برای مقابله آن درنظر گرفته شده است به صورت پیش فرض shutdown است که باعث خاموش شدن و در حالت err-disable قرار گرفتن پورت می شود. البته می توان بجای shutdown از حالت های دیگر مثل Protect یا restrict استفاده کرد. در حالت protect پورت را خاموش نمی کند و اجازه عبور را به فریم های مربوط به MAC address های غیر مجاز را نمی دهد. Restrict عملکرد مشابه protect دارد با این تفاوت که log نیز تولید می کند. نحوی اجرای port security در مثال زیر نمایش داده شده است :
SW(config)#interface fastethernet 0/1 SW(config-if)#switchport port-security SW(config-if)#switchport port-security maximum 3 SW(config-if)#switchport port-security violation restrict Switch(config-if)#switchport port-security mac-address sticky
همچنین از دستورات زیر برای بررسی وضعیت port security می توان استفاده کرد :
SW#show port-security SW#show port-security address
در طراحی یک شبکه ، در نظر گرفتن مباحث امنیتی آن دارای اهمیت ویژه است چون در زمان حمله ، شبکه دچار مشکلاتی مختلفی مانند از کار افتادن بخشی یا کل شبکه ، افشاء اطلاعات محرمانه سازمان ، دستکاری در اطلاعات و ... می شود. برای جلوگیری از بروز این حملات ما باید طرح و برنامه درستی برای شبکه خود در نظر بگیریم.
بر اساس طراحی سه لایه ای سیسکو دسترسی ها از طریق لایه Access ایجاد می شود که عمده مشکلات امنیتی به دلیل عدم کنترل این دسترسی ها صورت می پذیرد. در این آموزش ما سعی می کنیم مبحث Port Security را بازگو کنیم که به وسیله این قابلیت تا سطح بسیار زیادی ما می توانیم امنیت شبکه خود را برقرار کنیم. Port Security امنیت شبکه ما را در لایه دوم بهبود می بخشد. Port Security شبکه ما را در برابر حملات زیر محافظت می کند :
همچنین از دسترسی دستگاه های غیر مجاز به شبکه و ایجاد مشکلات ناشی مانند سرقت اطلاعات و آلوده کردن شبکه و ... جلوگیری می کند.
به وسیله Port Security تعداد MAC آدرس هایی که اجازه دسترسی به شبکه دارند به ازای هر پورت را محدود می کنیم. به این صورت مشخص می کنیم از هر پورت چه دستگاه هایی اجازه دسترسی به شبکه دارند و به این صورت دستگاه های ناشناش اجازه دسترسی به شبکه را نخواهند داشت. زمانی که این قابلیت روی سوئیچ فعال شود در صورت اتصال یک دستگاه غیرمجاز به شبکه ، می توان وضعیت های زیر را نسبت به این دسترسی غیر مجاز تعیین کرد:
اولین کار قرار دادن پورت در حالت Access است:
Switch(config)#interface fastethernet 0/1 Switch(config-if)#switchport mode access
بعد باید این قابلیت را فعال کنیم:
Switch(config-if)#switchport port-security
سپس MAC آدرس های مجاز را تعیین می کنیم که به دو صورت امکان پذیر است :
Switch(config-if)#switchport port-security mac-address AD49.FB36.3596
Switch(config-if)#switchport port-security mac-address sticky
تعیین یکی از سه حالت موجود :
Switch(config-if)#switchport port-security violation portect
تعیین تعداد دستگاه های مجاز جهت استفاده از پورت:
Switch(config-if)#switchport port-security maximum 2
جهت مشاهده و بررسی تنظیمات از دستورات زیر استفاده می کنیم:
Switch#show port-security Switch#show port-security address
Switch#clear port-security all Switch#clear port-security sticky interface fastEthernet 0/1
چرا از پورت سکیوریتی استفاده کنیم؟ دلایل استفاده از Port Security چه هستند؟ چگونه Port Security را در سویچ سیسکو راه اندازی کنیم؟ در گذشته امنیت شبکه داخلی مشکل چندان مهمی نبود اما با گذر زمان، نیاز به برقراری امنیت در شبکه های داخلی بیش تر از پیش حس شد. ظهور پدیده هایی نظیر شبکه های بی سیم و فناوری VoIP باعث شد تا مهندسین شبکه به فکر برقراری هرچه بیشتر امنیت در شبکه داخلی باشند.از سوی دیگر، کاربران دیگر مانند گذشته آنچنان قابل اعتماد نیستند و با در دسترس بودن ابزار های Sniffing و افزایش یافتن دانش کاربران ، این امکان وجود دارد اطلاعات در حال انتقال ما به سرقت روند.
افزایش استفاده از دستگاه های موبایل مانند گوشی های تلفن همراه، تبلت و نوت بوک ها ، باعث شده، امروزه شاهد این باشیم که شبکه های بی سیم به جزیی جدایی ناپذیر از ساختار شبکه های محلی سازمان ها تبدیل شده است. این شبکه های در مقایسه با شبکه های معمولی از امنیت پایین تری برخوردار هستند. حتی روش های امنیتی جدید و قوی ای مانند WPA2 ، در مقابل حملات Brute Force و Dictionary آسیب پذیر هستند و مهاجمتن می توانند با استفاده از ابزار های خاص ،از طریق شبکه های بی سیم به شبکه داخلی ما نفوذ کرده و اطلاعات و سرویس های ما را در معرض خطر قرار دهند.
از طرف دیگر ما شاهد رواج یافتن یکی دیگر از پدیده های دنیای IT به نام VoIP هستیم. اگر کمی در این زمینه اطلاع داشته باشید ، حتما می دانید که همانند شکل زیر ما IPphone ها و کامپیوتر ها را به سویچ متصل می کنیم. سابقا برای این کار بین سویچ و IPphone یک Trunk برقرار می کردیم تا دیگر نیازی به دو اتصال جداگانه برای IPphone و رایانه نیازی نباشد. اما فرد متهاجم می تواند از این Trunk Link استفاده کرده و اطلاعات کاربر را می توانست سرقت کند.
همچنین فرد مهاجم می تواند با اتصال به شبکه داخلی و فرستادن هزاران MAC Address به سویچ ، اقدام به پر کردن CAM Table آن کرده ( به این حمله CAM Table Flood می گوییم) و در نتیجه آن سویچبه یک هاب تبدیل شده و هکر می تواند تمامی اطلاعات در حال انتقال را Sniff کند.یکی از بهترین روش ها برای امن کردن شبکه های داخلی و جلوگیری از این حملات،استفاده از Port Security است. پروسه ای که شاید راه اندازی آن کمی دشوار باشد اما تا حدود بسیار زیادی امنیت شبکه داخلی ما را افزایش می دهد. در ادامه با این روش بیشتر آشنا می شویم.
با استفاده از Port Security در واقع ما به سویچ می گوییم که فقط و فقط اتصلات را از MAC Address هایی که ما تعیین می کنیم بپذیر. در نتیجه این کار، در صورتی که فرد مهاجم بتواند به تجهیزات شبکه داخلی ما دسترسی داشته باشد باز هم نمی تواند وارد شبکه داخلی ما شود.در حالت کلی Port Security در سه حالت زیر کار می کند:
سوالی که این جا پیش می آید این است که اگر یک دستگاه با MAC Address غیر مجاز به شبکه متصل شود چه اتفاقی می افتد. جواب این سوال در تعریف Violation Mode ها هستند. Violation Mode ها در واقع عملی هستند که سویچ در مقابله با اتصال یک دستگاه با MAC Address غیر مجاز انجام می دهند که شامل سه حالت زیر هستند:
پر واضح است که بهترین روش ، Shutdown است.برای پیاده سازی Port Security ابتدا وارد Global Configuration می شویم. سپس وارد اینترفیس ای می شویم که می خواهیم این قابلیت را برای آن پیاده سازی کنیم:
Switch#Configure Terminal Switch(config)#Interface Fastethernet 0/1
این اینترفیس را بر روی حالت Access قرار می دهیم.
Switch(config-if)#Switchport mode access
با دستور زیر قابلیت Port Security را فعال می کنیم:
Switch(config-if)#switchport port-security
با دستور زیر حالت Port Securty را بر روی Sticky قرار می دهیم.
Switch(config-if)#switchport port-security mac-address sticky
همچنین با دستور زیر می توانیم به صورت Static مک ادرس را ثبت کنیم:
Switch(config-if)#switchport port-security mac-address
دستور زیر تعداد مک ادرس هایی که سویچ می تواند از این اینترفیس یاد بگیرد را تعیین می کند:
Switch(config-if)#switchport port-security maximum 2
با دستور زیر Violation Mode را تعیین می کنیم:
Switch(config-if)#switchport port-security violation shutdown
دستورات مشاهده تنظیمات :
Switch#show port-security interface fastEthernet 0/1 Switch#show port-security address Switch#show interfaces status
نکته: در صورت Shut Down شدن یک اینترفیس به دلیل نقض Port Security شما باید وارد آن اینترفیس بروید و یک بار آن را خاموش و روشن کنید.
نکته: با دستور زیر می توانید این کار را به صورت خودکار انجام دهید:
Switch(config)#errordisable recovery cause psecure-violation Switch(config)#errordisable recovery interval
مشاهده تنظیمات مربوط به errordisable:
Switch#show errordisable recovery
Port Security همونجور که از اسمش هم پیداست یک مساله امنیتی می باشد و در مراکز خاص و امنیتی میتونه خیلی مفید و پر کاربرد باشه .با چند مثال ساده شروع میکنم .فرض کنید شما شبکه ی کوچکی دارید و 10-15 تا کامپیوتر به یک سوئیچ متصل شدند و دارن کار میکنند . از لحاظ امنیتی واستون مهم نیست چه دستگاهی به پورت هاتون متصل باشه فقط تنظیمات نرم افزاری درست باشه و IP در رنج مناسب داشته باشید ، دستگاه متصل شده و کار میکنید .
مثل یک کافی نت . حالا به فرض یکی از سیستم ها خراب میشه و شما یک سیستم جایگزین میارید و کابل و وصل میکنید و IP میدید و مشکلی پیش نمیاد .اینجا هیچ مشکلی واسمون پیش نمیاد و راحت به کار هامون میرسیم . حالا فرض کنید شما شبکه ی یک ارگان یا شرکت و یا سازمان مهمی رو باید مدیریت کنید ، مثلا یک بانک ، اینجا مساله خیلی فرق میکنه ، بحث امنیت حتما باید رعایت بشه چون با یک اشتباه ممکنه چندین میلیون تومان پول بی زبون جا به جا بشه و دزدی و اختلاص و .... .برای جلوگیری از همچین اتفاقاتی باید بحث امنیت شبکه رو جدی بگیریم .
یادتونم باشه امنیت همیشه از لایه اول OSI شروع میشه . یعنی اول امنیت سخت افزاری ، سرور های مهم دور از دسترس باشن ، سوئیچ ها توی رک باشن و قابل دسترسی نباشه ، کابل ها حدالامکان تو کار باشن و اگر هم رو کار بودن حتما داکت کشی درستی انجام بشه و ... . این میشه امنیت لایه اول . در لایه دوم که لایه Data Link هست باید مشخص کنیم چه مک آدرسی بتونه ارتباط برقرار کنه تا هر دستگاهی که متصل شد و تنظیمات نرم افزاریش درست بود ارتباط نداشته باشه با شبکمون . اینجاست که Port Security به کارمون میاد ، میایم روی سوئیچ هامون تعریف میکنیم که این مک خاص فقط بتونه به این پورت خاص از سوئیچ متصل بشه و ارتباط بر قرار کنه و اگر غیر از این شد ارتباط برقرار نشه و اقدامات امنیتی که از قبل تنظیم کردیم صورت بگیره .
دقت کنید که دستگاه مورد نظر فقط به پورتی که تعریف کردیم میتونه متصل بشه یعنی اگر حتی پورت دستگاه روی سوئیچ تغییر کنه ارتباط بر قرار نشه .حالا اگر سیستمی خراب بشه و ... نمیشه جایگزینی واسش انتخاب کرد مگر اینکه در تنیمات سوئیچ اون جایگزین معرفی بشه .در بانک ها دقیقا از همین مفهوم استفاده میشه و Port Security فعاله و در صورت خرابی سیستم جایگزین رو براش تعریف میکنن دوباره تا بتونه متصل بشه .حالا شاید بگید آقا ما شبکمون خیلی بزرگ نمیتونیم تک تک MAC Address بدیم به سوئیچ !!!! برای حل این مشکل از مفهوم Sticky استفاده میکنیم ، Sticky میگه اولین مک آدرسی که به هر پورت متصل شد من همون رو برای اون پورت رزرو میکنم و Port Security رو فعال میکنم ، دیگه لازم نیست دستی به سوئیچ مک بدیم .فکر میکنم توضیحات کافی باشه در مقاله زیر روش کانفیگ Port Security رو توضیح داده شده است .