پرش به محتوا
آخرین اخبار
به‌روزرسانی Windows ۱۱ تنظیمات ماوس را در سیستم‌های غیرانگلیسی بازنشانی می‌کند اختلال گسترده چندین مدل هوش مصنوعی Claude حملات گسترده علیه آسیب‌پذیری بحرانی Elementor Pro آسیب‌پذیری بحرانی سوئیچ‌های Cisco Nexus امکان اجرای کد با دسترسی root را می‌دهد تروجان بانکی StreamRat کنترل گسترده دستگاه‌های اندرویدی را فراهم می‌کند اختلال Teams و Outlook در برخی دستگاه‌های ویندوزی ARM حملات فعال با دو آسیب‌پذیری روز صفر SonicWall SMA۱۰۰۰ مهاجمان از Faronics Deploy برای کنترل از راه دور سیستم‌ها سوءاستفاده می‌کنند به‌روزرسانی Windows ۱۱ تنظیمات ماوس را در سیستم‌های غیرانگلیسی بازنشانی می‌کند اختلال گسترده چندین مدل هوش مصنوعی Claude حملات گسترده علیه آسیب‌پذیری بحرانی Elementor Pro آسیب‌پذیری بحرانی سوئیچ‌های Cisco Nexus امکان اجرای کد با دسترسی root را می‌دهد تروجان بانکی StreamRat کنترل گسترده دستگاه‌های اندرویدی را فراهم می‌کند اختلال Teams و Outlook در برخی دستگاه‌های ویندوزی ARM حملات فعال با دو آسیب‌پذیری روز صفر SonicWall SMA۱۰۰۰ مهاجمان از Faronics Deploy برای کنترل از راه دور سیستم‌ها سوءاستفاده می‌کنند
اخبار

بررسی انواع فایروال : رابط گرافیکی فایروال UFW در اوبونتو

آذر ۲۷, ۱۳۹۵ نوشتهٔ editor بدون نظر

۱کمیته رکن چهارم – در این سری از آموزش ها قصد داریم تا یک بررسی جامعی از فایروال ها در سمت سرور و کلاینت داشته باشیم لذا انواع فایروال ها را با رابط های مختلف ( گرافیکی و متنی ) و با پالیسی های مختلف بررسی می کنیم . ابتدا از سمت کلاینت و با رابط های گرافیکی شروع می کنیم و کم کم به سمت سرور و کار با فایروال های قوی تری همچون iptables خواهیم پرداخت . هم چنین ابتدا از روتر بودن کلاینت و سرور خود صرف نظر می کنیم اما در قسمت های بعدی به توضیح رول های مربوط به Routing نیز خواهیم پرداخت .

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

در ابتدا روشی مشترک برای مشاهده ی سرویس ها و پورت های فعال در تمامی توزیع ها گفته می شود سپس فایروال UFW در اوبونتو را به صورت گرافیکی بررسی می کنیم . هم چنین در قسمت های بعدی دیگر فایروال ها در دیگر توزیع ها را بررسی می کنیم .

ابتدا برای چک کردن این که چه سرویس هایی و یا چه برنامه ای روی چه پورتی روی حالت listen قرار دارد , به صورت زیر عمل می کنیم :

نکته : از سویچ t برای مشخص کردن Socket های tcp استفاده کردیم .

نکته : از سویچ u برای مشخص کردن Socket های udp استفاده کردیم .

نکته : از سویچ l برای مشخص کردن Socket هایی که روی حالت listen قرار دارند استفاده کردیم .

نکته : از سویچ p برای مشخص کردن pid سرویس و یا برنامه ای که روی یک پورت سرویس می دهد استفاده کردیم .

نکته : از عدد ۴ به منظور معیین کردن آی پی ورژن ۴ استفاده کردیم . ( سرویس هایی که بر روی ای پی ورژن ۴ سرویس دهی می کنند )

نکته : از سویچ n برای نشان دادن خروجی به صورت numerical addresses استفاده کردیم . ( با استفاده از این سویچ , پورت ها و … همراه با وظیفه آن ها نمایش داده می شوند . مثلا به چای درج پورت ۸۰ از کلمه ی http استفاده می شود و … )

توجه : فقط زمانی می توانیم به صورت کامل و صحیح از سویچ p استفاده کنیم که سطح دسترسی روت داشته باشیم . به عنوان مثال :

001

همان طور که ملاحظه می کنید ( به عنوان مثال ) سرویس ssh با pid 743 روی پورت ۲۲ در حال سرویس دهی است و یا برنامه ی Viber با pid 3127 بر روی آی پی ۱۲۷.۰.۰.۱ و پورت ۳۰۶۶۶ در حالت listen است .

اما برای مشاهده ی ارتباط سیستم با آی پی ها و پورت های خارج از سیستم به صورت زیر عمل می کنیم :

در واقع از همان دستور قبلی استفاده می کنیم , با این تفاوت که دیگر از سویچ l یعنی حالت listen استفاده نمی کنیم .

نکته : می توان از سویچ c- جهت مانیتور کردن این دستور استفاده کرد . یعنی به صورت خودکار این برنامه بروز می شود و هر لحظه می توان چک کرد که سیستم روی چه پورتی و با چه آی پی در تماس است .

نکته : در خروجی دستور بالا باید به دنبال ارتباط های ESTABLISHED باشیم . یعنی ارتباط هایی که فعال هستند و اطلاعات رد و بدل می کنند . پس می توان یک grep به آخر دستور بالا اضافه کرد . یعنی :

نکته : در دو دستور قبل از سویچ p با سطج دسترسی روت استفاده کردیم . پس می توانیم pid هر سرویس و یا برنامه ای را مشاهده کنیم و اگر به آن مشکوک بودیم آن را kill کنیم . به عنوان مثال برای kill کردن برنامه ی وایبر به شکل زیر عمل می کنیم :

نکته : عدد ۹ نوع سیگنالی است که جهت kill کردن پروسه فرستاده می شود . برای مشاهده انواع نوع سیگنال man پیچ دستور kill را مطالعه کنید .

توجه : دو دستور بالا و kill کردن یک پروسه در تمامی توزیع های گنو لینوکسی یکسان می باشد .

اما بعد از این که مشاهده کردیم چه سرویس هایی روی حالت listen هستند و سیستم با چه آی پی هایی در تماس است , لازم است که با استفاده از یک فایروال جلوی برقرار ارتباط هر کدام را بگیریم . شاید بتوان یکی از قوی ترین فایروال های را iptables نام برد که تقریبا در تمامی توزیع های گنو لینوکسی از آن استفاده می شود .

تقریبا با iptables تمامی نیاز های یک سیستم را می توان بر طرف کرد همین جامع بودن باعث انعطاف بالای این فایروال شده است و این انعطاف بالا کار را برای تازه واردان کمی سخت می کند . برای همین ابتدا کار با فایروال های گرافیکی در دو توزیع ubuntu و centos را بررسی می کنیم سپس به بررسی دیگر فایروال ها از جمله iptables خواهیم پرداخت .

رابط گرافیکی فایروال UFW در اوبونتو :

لازم به ذکر است که این فایروال به صورت پیش فرض بر روی اوبونتو نصب می باشد پس جهت تست می توان به صورت زیر عمل کرد :

001

به صورت پیش فرض فقط رابط CLI این فایروال نصب می باشد لذا باید رابط GUI این فایروال را نصب کرد . به صورت زیر :

برای استفاده از محیط گرافیکی فایروال UFW کافیست دستور زیر را در ترمینال وارد کنیم :

نکته : حرف g در ابتدای کلمه ی gufw به معنای gui می باشد .

نکته : برای کار با این فایروال باید سطح دسترسی روت داشت . پس لازم است که دستور بالا را با استفاده از یوزر روت اجرا کنیم و یا این که برنامه را در محیط معمولی اجرا کرده سپس بر روی گزینه ی unlock کلیک کنیم .

002

حال برای فعال کردن فایروال کافیست از قسمت status اقدام به فعال کردن فایروال کنیم . پس از فعال شدن فایروال خواهید دید که آیتم incoming به صورت پیش فرض روی حالت deny قرار گرفته و آیتم outgoing به صورت پیش فرض روی حالت allow قرار دارد .

( فعلا )‌ یک سیستم کلاینت را برای ارتباط با دیگر سیستم ها می توان در همین دو حالت خلاصه کرد . یعنی :

۱. پکت هایی که از طرف دیگر سیستم ها وارد سیستم ما می شوند .

۲. پکت هایی که از سیستم ما خارج شده و وارد دیگر سیستم ها می شوند .

حالت اول را incoming گویند چرا که همان طور که مشخص است , ابتدا پکت ها قصد وارد شدن به سیستم را دارند . یعنی دیگران قصد برقراری یک ارتباط با سیستم ما را دارند . مثلا روی پورت ۲۲

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

حالا که درک نسبی ای از دو حال incoming و outgoing بدست آوردیم , لازم است که فایروال را متناسب با نیاز های سیستم خودمون کانفیگ کنیم . به عنوان مثال پالیسی های فرضی من در سیستم به شرح زیر است :

۱. سیستم من فقط بتواند روی پورت ۸۰ و ۴۴۳ با بیرون ارتباط برقرار کند ( یعنی بتوانیم صفحات اینترنتی را باز کنیم )

۲. دیگران از بیرون فقط و فقط بتوانند روی پورت ۲۲ با سیستم من در ارتباط باشند .

 

یک بار دیگر حالت اول را بخوانید . قرار است که سیستم با بیرون ارتباط برقرار کند پس نتیجه می گیریم که باید با حالت outgoing کار کنیم . پس در درجه ی اول ابتدا دو پورت ۸۰ و ۴۴۳ را برای حالت outgoing باز می کنیم . سپس تمامی پورت های دیگر را می بندیم .

برای این منظور در فایروال قسمت Outgoing را انتخاب کرده و بر روی Reject کلیک کنید . حال برای باز کردن دو پورت خواسته شده در بالا از قسمت Rules بر روی + کلیک کنیم تا پنجره ی firewall: add role باز شود .

003 حال به سربرگ simple می رویم . قرار بود که دو پورت ۸۰ و ۴۴۳ را برای حالت outgoing باز بزاریم . پس به ترتیب موارد زیر را انتخاب می کنیم :

نکته : اگر فقط این دو رول را ست کنید , خواهید توانست آی پی آدرس ها را روی پورت ۸۰ و ۴۴۳ باز کنید یعنی نمی توانید با دامنه ی سایتی کار کنید , چرا که ارتباط با dns server را قطع کرده اید ! یعنی نمی توانید دامنه ی گوگل را با مرورگر خودتون باز کنید . اما می توانید آی پی سرور گوگل را روی پورت ۸۰ ویا ۴۴۳ باز کنید .

برای حل این مشکل کافیست پورت ۵۳ را هم باز کنید . فقط توجه داشته باشید که ارتباط با dns server از نوع udp می باشد . لذا به صورت زیر عمل می کنیم :

004

نکته : v6 به معنای IPv6 می باشد که می توان ۳ رول آخر را انتخاب کرد و سپس روی گزینه ی – کلیک کرد تا پاک شوند . حال برای تست نتایج یک ترمینال باز کنید و به عنوان مثال به صورت زیر عمل کنید :

اگر مراحل بالا را درست طی کرده باشید باید بتوانید دو پورت ۸۰ و ۴۴۳ را باز و پورت ۸۰۸۰ را بسته ببینید .

005

توجه : پورت ۸۰۸۰ بر روی سایت بالا باز می باشد اما توجه کنید که ما فقط دو پورت ۸۰ و ۴۴۳ را برای outgoing انتخاب کرده ایم و ارتباط روی تمامی پورت های دیگر را بسته ایم .

 

اما پالیسی شماره ی دوم . یعنی : دیگران از بیرون فقط و فقط بتوانند روی پورت ۲۲ با سیستم من در ارتباط باشند

همان طور که در بالا گفته شد , به صورت پیش فرض تمامی ارتباطات روی حالت incoming بسته می باشد یعنی نمی توان روی هیچ پورتی از خارج با سیستم در تماس بود . حال برای اعمال پالسی بالا ابتدا از پنجره ی اصلی فایروال از قسمت incoming گزینه ی Reject را انتخاب کنید سپس برای باز کردن یک پورت خاص کافیست از قسمت roles بر روی + کلیک کنیم تا پنجره ی Firewall: add Role باز شود . سپس به سربرگ simple می رویم . حال کافیست پالیسی مورد نظر را به صورت زیر وارد کنیم :

006_1حالا برای مشاهده نتیجه کافیست از سیستمی دیگر آی پی اوبونتوی خود را روی پورت ۲۲ اسکن کنیم . به عنوان مثال :

007

در قسمت بعدی به توضیح رابط متنی این فایروال در اوبونتو خواهیم پرداخت

 

 

منبع : او اس لرن

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


Type The Blue Captcha Characters Below.