جعفر قنبری شوهانی
مهندس و مدرس زیرساخت و امنیت و مدیر ارشد وب سایت توسینسو

Port Security چیست و چگونه جلوی حملات را می گیرد؟

در این مطلب با مفهوم 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
SW# show port-security interface fa0/1
Port Security در سوئیچ چیست و چگونه می تواند جلوی حملات را بگیرد ؟


Port Security چیست و چگونه در سویچ سیسکو فعال می شود؟

در طراحی یک شبکه ، در نظر گرفتن مباحث امنیتی آن دارای اهمیت ویژه است چون در زمان حمله ، شبکه دچار مشکلاتی مختلفی مانند از کار افتادن بخشی یا کل شبکه ، افشاء اطلاعات محرمانه سازمان ، دستکاری در اطلاعات و ... می شود. برای جلوگیری از بروز این حملات ما باید طرح و برنامه درستی برای شبکه خود در نظر بگیریم.

بر اساس طراحی سه لایه ای سیسکو دسترسی ها از طریق لایه Access ایجاد می شود که عمده مشکلات امنیتی به دلیل عدم کنترل این دسترسی ها صورت می پذیرد. در این آموزش ما سعی می کنیم مبحث Port Security را بازگو کنیم که به وسیله این قابلیت تا سطح بسیار زیادی ما می توانیم امنیت شبکه خود را برقرار کنیم. Port Security امنیت شبکه ما را در لایه دوم بهبود می بخشد. Port Security شبکه ما را در برابر حملات زیر محافظت می کند :

همچنین از دسترسی دستگاه های غیر مجاز به شبکه و ایجاد مشکلات ناشی مانند سرقت اطلاعات و آلوده کردن شبکه و ... جلوگیری می کند.

مکانیزم Port Security

به وسیله Port Security تعداد MAC آدرس هایی که اجازه دسترسی به شبکه دارند به ازای هر پورت را محدود می کنیم. به این صورت مشخص می کنیم از هر پورت چه دستگاه هایی اجازه دسترسی به شبکه دارند و به این صورت دستگاه های ناشناش اجازه دسترسی به شبکه را نخواهند داشت. زمانی که این قابلیت روی سوئیچ فعال شود در صورت اتصال یک دستگاه غیرمجاز به شبکه ، می توان وضعیت های زیر را نسبت به این دسترسی غیر مجاز تعیین کرد:

  • Protect
  • Restrict
  • Shutdown
  • نکته : حالت Shutdown پیش فرض می باشد.
  1. Protect : در این حالت ترافیک مربوط به دستگاه غیر مجاز Drop می شود.
  2. Restrict : همانند حالت قبل ترافیک مربوط به دستگاه غیر مجاز Drop می شود و علاوه بر این Log نیز تولید می کند.
  3. ShutDown : سخت گیرانه ترین حالت می باشد که با دریافت ترافیک غیرمجاز پورت مربوطه در حالت Err-Disable قرار می گیرد و پورت خاموش می شود و برای خارج کردن آن از این حالت باید وارد تنظیمات سوئیچ شد و پورت مورد نظر را خاموش و روشن کرد.
  • نکته : Port Security را روی پورتی که Access است می توان فعال کرد.

نحوی فعال کردن Port Security

اولین کار قرار دادن پورت در حالت 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
  • استفاده از ویژگی Sticky
Switch(config-if)#switchport port-security mac-address sticky
  • نکته : در حالت sticky نیاز به وارد کردن MAC ادرس نیست و سوئیچ MAC ادرس را از روی اولین بسته دریافتی برمیدارد.

تعیین یکی از سه حالت موجود :

Switch(config-if)#switchport port-security violation portect

تعیین تعداد دستگاه های مجاز جهت استفاده از پورت:

Switch(config-if)#switchport port-security maximum 2
  • نکته : پیش فرض مقدار یک است و تا 132 می توان انرا مقداردهی کرد.

جهت مشاهده و بررسی تنظیمات از دستورات زیر استفاده می کنیم:

Switch#show port-security 
Switch#show port-security address
  • نکته : در صورتی که بخواهیم MAC آدرس هایی که از طریق Sticky آنها را پیدا کرده ایم را حذف کنیم از دستورات زیر استفاده می کنیم:
Switch#clear port-security all
Switch#clear port-security sticky interface fastEthernet 0/1


چرا از Port Security استفاده کنیم؟ به همراه روش راه اندازی 

چرا از پورت سکیوریتی استفاده کنیم؟ دلایل استفاده از Port Security چه هستند؟ چگونه Port Security را در سویچ سیسکو راه اندازی کنیم؟ در گذشته امنیت شبکه داخلی مشکل چندان مهمی نبود اما با گذر زمان، نیاز به برقراری امنیت در شبکه های داخلی بیش تر از پیش حس شد. ظهور پدیده هایی نظیر شبکه های بی سیم و فناوری VoIP باعث شد تا مهندسین شبکه به فکر برقراری هرچه بیشتر امنیت در شبکه داخلی باشند.از سوی دیگر، کاربران دیگر مانند گذشته آنچنان قابل اعتماد نیستند و با در دسترس بودن ابزار های Sniffing و افزایش یافتن دانش کاربران ، این امکان وجود دارد اطلاعات در حال انتقال ما به سرقت روند.

دلایل استفاده از Port Security

افزایش استفاده از دستگاه های موبایل مانند گوشی های تلفن همراه، تبلت و نوت بوک ها ، باعث شده، امروزه شاهد این باشیم که شبکه های بی سیم به جزیی جدایی ناپذیر از ساختار شبکه های محلی سازمان ها تبدیل شده است. این شبکه های در مقایسه با شبکه های معمولی از امنیت پایین تری برخوردار هستند. حتی روش های امنیتی جدید و قوی ای مانند 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 در سه حالت زیر کار می کند:

  1. Dynamic : حالت معمولی که تمام MAC Address ها یاد می گیرد و اجازه اتصال می دهد.
  2. Static : تنها به MAC Address هایی که ما تعیین می کنیم اجازه دسترسی می دهد.
  3. Sticky : به صورت اتوماتیک MAC Address ها را ثبت می کند با این تفاوت که این تعداد آدرس ها ثبت شده محدود هستند.

سوالی که این جا پیش می آید این است که اگر یک دستگاه با MAC Address غیر مجاز به شبکه متصل شود چه اتفاقی می افتد. جواب این سوال در تعریف Violation Mode ها هستند. Violation Mode ها در واقع عملی هستند که سویچ در مقابله با اتصال یک دستگاه با MAC Address غیر مجاز انجام می دهند که شامل سه حالت زیر هستند:

  1. Shutdown : پورت را خاموش می کند.
  2. Restrict : بسته ها را drop می کند و همچنین شمارنده Security Counter را اضافه می کند( به نوعی log ثبت می کند).
  3. Protect : تنها بسته ها را drop می کند اما هیچ log ای را ثبت نمی کند.

پر واضح است که بهترین روش ، 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 <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 <time>

مشاهده تنظیمات مربوط به errordisable:

Switch#show errordisable  recovery

پورت سکیوریتی چیست؟ و چه کاربردی دارد؟

Port Security همونجور که از اسمش هم پیداست یک مساله امنیتی می باشد و در مراکز خاص و امنیتی میتونه خیلی مفید و پر کاربرد باشه .با چند مثال ساده شروع میکنم .فرض کنید شما شبکه ی کوچکی دارید و 10-15 تا کامپیوتر به یک سوئیچ متصل شدند و دارن کار میکنند . از لحاظ امنیتی واستون مهم نیست چه دستگاهی به پورت هاتون متصل باشه فقط تنظیمات نرم افزاری درست باشه و IP در رنج مناسب داشته باشید ، دستگاه متصل شده و کار میکنید .

Port Security چیست و چگونه جلوی حملات را می گیرد؟

مثل یک کافی نت . حالا به فرض یکی از سیستم ها خراب میشه و شما یک سیستم جایگزین میارید و کابل و وصل میکنید و IP میدید و مشکلی پیش نمیاد .اینجا هیچ مشکلی واسمون پیش نمیاد و راحت به کار هامون میرسیم . حالا فرض کنید شما شبکه ی یک ارگان یا شرکت و یا سازمان مهمی رو باید مدیریت کنید ، مثلا یک بانک ، اینجا مساله خیلی فرق میکنه ، بحث امنیت حتما باید رعایت بشه چون با یک اشتباه ممکنه چندین میلیون تومان پول بی زبون جا به جا بشه و دزدی و اختلاص و .... .برای جلوگیری از همچین اتفاقاتی باید بحث امنیت شبکه رو جدی بگیریم .

Port Security چیست و چگونه جلوی حملات را می گیرد؟

یادتونم باشه امنیت همیشه از لایه اول OSI شروع میشه . یعنی اول امنیت سخت افزاری ، سرور های مهم دور از دسترس باشن ، سوئیچ ها توی رک باشن و قابل دسترسی نباشه ، کابل ها حدالامکان تو کار باشن و اگر هم رو کار بودن حتما داکت کشی درستی انجام بشه و ... . این میشه امنیت لایه اول . در لایه دوم که لایه Data Link هست باید مشخص کنیم چه مک آدرسی بتونه ارتباط برقرار کنه تا هر دستگاهی که متصل شد و تنظیمات نرم افزاریش درست بود ارتباط نداشته باشه با شبکمون . اینجاست که Port Security به کارمون میاد ، میایم روی سوئیچ هامون تعریف میکنیم که این مک خاص فقط بتونه به این پورت خاص از سوئیچ متصل بشه و ارتباط بر قرار کنه و اگر غیر از این شد ارتباط برقرار نشه و اقدامات امنیتی که از قبل تنظیم کردیم صورت بگیره .

Port Security چیست و چگونه جلوی حملات را می گیرد؟

دقت کنید که دستگاه مورد نظر فقط به پورتی که تعریف کردیم میتونه متصل بشه یعنی اگر حتی پورت دستگاه روی سوئیچ تغییر کنه ارتباط بر قرار نشه .حالا اگر سیستمی خراب بشه و ... نمیشه جایگزینی واسش انتخاب کرد مگر اینکه در تنیمات سوئیچ اون جایگزین معرفی بشه .در بانک ها دقیقا از همین مفهوم استفاده میشه و Port Security فعاله و در صورت خرابی سیستم جایگزین رو براش تعریف میکنن دوباره تا بتونه متصل بشه .حالا شاید بگید آقا ما شبکمون خیلی بزرگ نمیتونیم تک تک MAC Address بدیم به سوئیچ !!!! برای حل این مشکل از مفهوم Sticky استفاده میکنیم ، Sticky میگه اولین مک آدرسی که به هر پورت متصل شد من همون رو برای اون پورت رزرو میکنم و Port Security رو فعال میکنم ، دیگه لازم نیست دستی به سوئیچ مک بدیم .فکر میکنم توضیحات کافی باشه در مقاله زیر روش کانفیگ Port Security رو توضیح داده شده است .

امیدوارم مفید بوده باشه .


جعفر قنبری شوهانی
جعفر قنبری شوهانی

مهندس و مدرس زیرساخت و امنیت و مدیر ارشد وب سایت توسینسو

جعفر قنبری شوهانی ، مهندس و مدرس شبکه ، آشنایی من با شبکه برمی گرده به سال 1382 که دوره NT و Novel رو گذروندم و الان بیشتر از 10 ساله سابقه اجرایی در سطح Enterprise (بانک ها ، موسسه مالی ، ادارات دولتی ، سرویس پروایدر) را دارم و در حال حاضر به عنوان مهندس شبکه در شرکت توزیع برق مشهد و به عنوان مدیر ارشد و مدرس شبکه در سایت ToSinSo مشغول به کار هستم. در اکثرا حوزه های شبکه کار کردم و تجربه دارم اما تخصص اصلیم رو در حوزه زیرساخت و امنیت اون میدونم

نظرات