اوبونتوگنو/لینوکس

پیکربندی اولیه فایروال اوبونتو با firewalld

تمام توزیع‌های لینوکس با راهکارهای فایروال به شکلی ارائه می‌شوند. در مورد اوبونتو این به شکل فایروال کامپایل نشده است که در درس قبل توضیح داده شد. این درس راهکار فایروال پیشرفته‌تری را که برای اوبونتو در قالب firewalld در دسترس است معرفی می‌کند.

مقدمه‌ای بر firewalld

این سرویس firewalld که در اصل برای توزیع‌های لینوکس مبتنی بر Red Hat توسعه داده شد، از مجموعه‌ای از قوانین برای کنترل ترافیک شبکه ورودی استفاده می‌کند و تعریف می‌کند که کدام ترافیک باید مسدود شود و کدامیک باید اجازه عبور از سیستم را داشته باشد و در بالای یک سیستم ساخته شده است. ابزار پیچیده تر فایروال به نام iptables.

سیستم firewalld روشی انعطاف‌پذیر برای مدیریت ترافیک ورودی ارائه می‌کند. برای مثال، فایروال می‌تواند به گونه‌ای پیکربندی شود که ترافیک ورودی از یک آدرس IP خارجی خاص را مسدود کند، یا از ورود همه ترافیک به یک پورت TCP/IP خاص جلوگیری کند. همچنین ممکن است قوانینی برای ارسال ترافیک ورودی به سیستم‌های مختلف یا به عنوان دروازه اینترنتی برای محافظت از رایانه‌های دیگر در شبکه تعریف شوند.

مطابق با شیوه‌های امنیتی رایج، نصب firewalld پیش‌فرض به گونه‌ای پیکربندی شده است که تمام دسترسی‌ها را به استثنای ورود از راه دور SSH و سرویس DHCP که توسط سیستم برای به دست آوردن یک آدرس IP پویا استفاده می‌شود مسدود کند (که هر دوی این موارد ضروری هستند اگر مدیر سیستم بخواهد بتوانید پس از اتمام نصب به سیستم دسترسی پیدا کنید).

عناصر کلیدی پیکربندی فایروال در اوبونتو zones، interfaces، services و ports هستند.

Zones

به طور پیش‌فرض، firewalld با محدوده‌ای از zones از پیش پیکربندی شده نصب می‌شود. Zone مجموعه‌ای از قوانین از پیش تنظیم شده است که می‌تواند در هر زمان برای پیاده‌سازی سریع تنظیمات فایروال برای سناریوهای خاص در سیستم اعمال شود. به عنوان مثال، منطقه block، تمام ترافیک ورودی را مسدود می‌کند، در حالی که منطقه home با این فرض که سیستم در یک محیط امن‌تر اجرا می‌شود که سطح اعتماد بیشتری انتظار می‌رود، قوانین سخت‌گیرانه‌تری را اعمال می‌کند. مناطق جدید ممکن است به سیستم اضافه شوند و مناطق موجود برای افزودن یا حذف قوانین اصلاح شوند. همچنین ممکن است مناطق به طور کامل از سیستم حذف شوند. جدول زیر مجموعه‌ای از مناطق موجود به طور پیش‌فرض در یک سیستم اوبونتو را فهرست می‌کند:

مناطق - Zonesشرح
dropامن‌ترین منطقه فقط اتصالات خروجی مجاز هستند و همه اتصالات ورودی بدون هیچ اطلاع‌رسانی به مشتری در حال اتصال قطع می‌شوند.
blockمشابه منطقه drop با این استثنا که اتصالات ورودی با اعلان icmp-host-hibited یا icmp6-adm-hibited رد می‌شوند.
publicبرای استفاده در هنگام اتصال به شبکه‌های عمومی یا اینترنت که در آن رایانه های دیگر قابل اعتماد نیستند استفاده می‌شود. به انتخاب اتصالات ورودی اجازه می‌دهد.
externalهنگامی که یک سیستم به عنوان دروازه اینترنت برای شبکه‌ای از رایانه‌ها عمل می‌کند، منطقه خارجی به رابط متصل به اینترنت اعمال می‌شود. این منطقه به همراه منطقه internal هنگام اجرای ترجمه آدرس شبکه (NAT) که جلوتر در این درس توضیح داده شد، استفاده می‌شود. به انتخاب اتصالات ورودی اجازه می‌دهد
internalبا منطقه external استفاده می‌شود و برای رابطی که به شبکه داخلی متصل است اعمال می‌گردد. فرض بر این است که کامپیوترهای موجود در شبکه داخلی قابل اعتماد هستند. به انتخاب اتصالات ورودی اجازه می دهد.
dmzبرای استفاده زمانی که سیستم در منطقه demilitarized یا DMZ کار می‌کند. اینها معمولا رایانه‌هایی هستند که برای عموم قابل دسترسی هستند اما از سایر بخش‌های شبکه داخلی شما جدا هستند. به انتخاب اتصالات ورودی اجازه می‌دهد.
workبرای استفاده در هنگام اجرای یک سیستم در شبکه در محیط کاری که رایانه‌های دیگر مورد اعتماد هستند. به انتخاب اتصالات ورودی اجازه می‌دهد.
homeبرای استفاده هنگام اجرای یک سیستم در شبکه خانگی که در آن رایانه‌های دیگر مورد اعتماد هستند. به انتخاب اتصالات ورودی اجازه می‌دهد.
trustedکم‌امن‌ترین منطقه تمام اتصالات ورودی پذیرفته می‌شود.

برای بررسی تنظیمات خاص برای یک منطقه، به فایل پیکربندی XML مربوطه که بر روی سیستم در پوشه /usr/lib/firewalld/zones قرار دارد مراجعه کنید. برای مثال موارد زیر محتوای فایل پیکربندی ناحیه public.xml را فهرست می‌کند:

Interfaces

هر سیستم اوبونتو متصل به اینترنت یا شبکه (یا هر دو) حداقل دارای یک رابط در قالب یک دستگاه شبکه فیزیکی یا مجازی خواهد بود. هنگامی که فایروال فعال است، هر یک از این interface ها به منطقه‌ای اختصاص داده می‌شود که اجازه می‌دهد سطوح مختلفی از امنیت فایروال به رابط‌های مختلف اختصاص داده شود. سروری را در نظر بگیرید که شامل دو رابط است، یکی به صورت خارجی به اینترنت و دیگری به یک شبکه داخلی متصل است. در چنین سناریویی، اینترفیس روبروی خارجی به احتمال زیاد به منطقه external محدودتر اختصاص داده می شود در حالی که رابط داخلی ممکن است از منطقه internal استفاده کند.

Services

TCP/IP مجموعه ای از خدمات را تعریف می‌کند که بر روی پورت‌های استاندارد ارتباط برقرار می‌کنند. برای مثال، اتصالات وب HTTPS ایمن از پورت ۴۴۳ استفاده کنید، در حالی که سرویس ایمیل SMTP از پورت ۲۵ استفاده می‌کند. برای فعال کردن انتخابی ترافیک ورودی برای سرویس‌های خاص، قوانین فایروال را می‌توان به مناطق اضافه کرد. برای مثال، منطقه home، اتصالات HTTPS ورودی را به طور پیش‌فرض مجاز نمی‌داند. این ترافیک را می‌توان با افزودن قوانین به یک منطقه فعال کرد تا اتصالات HTTPS ورودی بدون نیاز به ارجاع به شماره پورت خاص امکان‌پذیر شود.

Ports

اگرچه هنگام افزودن قوانین فایروال می‌توان به سرویس‌های معمول TCP/IP اشاره کرد، اما شرایطی پیش می‌آید که اتصالات ورودی باید در پورت خاصی که به یک سرویس تخصیص داده نشده اجازه داده شود. این را می‌توان با افزودن قوانینی که به پورت‌های خاص به جای سرویس‌ها اشاره می‌کنند، به دست آورد.

بررسی وضعیت firewalld 

سرویس firewalld معمولا به‌طور پیش‌فرض در تمام نصب‌های اوبونتو نصب و فعال نمی‌شود. وضعیت سرویس را می‌توان از طریق فرمان زیر بررسی کرد:

در صورت لزوم، سرویس firewalld ممکن است به صورت زیر نصب شود:

سرویس firewalld به‌طور پیش‌فرض فعال است، بنابراین هم پس از اتمام نصب و هم هر بار که سیستم بوت می‌شود، به طور خودکار شروع به کار می‌کند.

پیکربندی قوانین فایروال با firewall-cmd

ابزار خط فرمان firewall-cmd اجازه می‌دهد تا اطلاعات مربوط به پیکربندی فایروال مشاهده شود و تغییراتی در مناطق و قوانین از داخل یک پنجره ترمینال ایجاد شود.

هنگام ایجاد تغییرات در تنظیمات firewalld، مهم است که از مفاهیم زمان اجرا و تنظیمات دائمی آگاه باشید. به طور پیش‌فرض، هر تغییر قانون به عنوان تغییرات پیکربندی زمان اجرا در نظر گرفته می‌شود. این بدان معنی است که در حالی که تغییرات بلافاصله اعمال می‌شوند، دفعه بعد که سیستم مجددا راه اندازی می‌شود یا سرویس firewalld مجددا بارگیری می‌شود، از بین می‌روند، به عنوان مثال با صدور فرمان زیر:

برای دائمی کردن یک تغییر، باید از گزینه –permanent command-line استفاده شود. تغییرات دائمی تا زمانی که سرویس firewalld مجددا بارگیری شود اعمال نمی‌شود، اما تا زمانی که به صورت دستی تغییر نکند، در جای خود باقی خواهند ماند.

Identifying and Changing the Default Zone

برای شناسایی منطقه پیش‌فرض (به عبارت دیگر منطقه‌ای که تمام اینترفیس‌ها به آن اختصاص داده می‌شوند مگر اینکه منطقه دیگری به طور خاص انتخاب شده باشد) از ابزار firewall-cmd به صورت زیر استفاده کنید:

برای تغییر پیش‌فرض به یک منطقه دیگر:

نمایش اطلاعات منطقه

برای فهرست کردن تمام مناطق موجود در سیستم:

لیستی از مناطق فعالی که در حال حاضر همراه با رابط هایی که به آن‌ها اختصاص داده شده‌اند، به شرح زیر بدست می‌آید:

تمام قوانینی که در حال حاضر برای یک منطقه خاص پیکربندی شده‌اند ممکن است به صورت زیر فهرست شوند:

تمام قوانینی که در حال حاضر برای یک منطقه خاص پیکربندی شده‌اند، ممکن است به صورت زیر فهرست شوند:

از فرمان زیر برای فهرست کردن خدماتی که در حال حاضر برای گنجاندن در یک قانون فایروال در دسترس هستند استفاده کنید:

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

لیستی از قوانین پورت را می‌توان به صورت زیر بدست آورد:

افزودن و حذف سرویس‌های منطقه

برای افزودن یک سرویس به یک منطقه، در این مورد با افزودن HTTPS به منطقه public، از فرمان زیر استفاده می‌شود:

به طور پیش‌فرض این یک تغییر در زمان اجرا است، بنابراین قانون اضافه شده پس از راه‌اندازی مجدد سیستم از بین می‌رود. برای افزودن یک سرویس به طور دائم به طوری که دفعه بعد که سیستم مجددا راه اندازی می‌شود فعال بماند، از –permanent flag استفاده کنید:

برای تایید اینکه یک سرویس به طور دائم اضافه شده است، هنگام درخواست لیست خدمات، حتما –permanent flag را اضافه کنید:

توجه داشته باشید که به عنوان یک تغییر دائمی، این قانون جدید تا زمانی که سیستم راه‌اندازی مجدد نشود یا فایروال مجددا بارگیری شود، اعمال نخواهد شد:

با استفاده از گزینه –remove-service یک سرویس را از یک منطقه حذف کنید. از آنجایی که این یک تغییر در زمان اجرا است، دفعه بعد که سیستم مجددا راه‌اندازی می‌شود، این قانون دوباره برقرار می‌شود:

برای حذف دائمی یک سرویس، از –permanent flag استفاده کنید، به یاد داشته باشید که اگر تغییر برای اعمال فوری لازم است، فایروال را مجددا بارگیری کنید:

کار با قوانین مبتنی بر پورت

برای فعال کردن یک پورت خاص، از گزینه –add-port استفاده کنید. توجه داشته باشید که هنگام تعریف دستی پورت، هم شماره پورت و هم پروتکل (TCP یا UDP) باید ارائه شود:

همچنین هنگام اضافه کردن یک قانون به یک منطقه، می‌توان محدوده‌ای از پورت‌ها را مشخص کرد:

ایجاد یک منطقه جدید

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

پس از افزودن یک منطقه جدید، فایروال قبل از در دسترس شدن منطقه باید مجددا راه‌اندازی شود:

تغییر وظایف Zone/Interface

همانطور که قبلاً بحث شد، هر رابط در سیستم باید به یک منطقه اختصاص داده شود. منطقه‌ای که یک رابط به آن اختصاص داده می‌شود نیز می‌تواند با استفاده از ابزار firewall-cmd تغییر یابد. در مثال زیر، رابط eth0 به منطقه عمومی اختصاص داده شده است:

Masquerading

Masquerading در محافل مدیریت شبکه بیشتر به عنوان ترجمه آدرس شبکه (NAT) شناخته می شود. هنگام استفاده از یک سیستم اوبونتو به عنوان دروازه‌ای به اینترنت برای شبکه‌ای از رایانه‌ها، مخفی کردن به همه سیستم‌های داخلی اجازه می‌دهد تا از آدرس IP آن سیستم اوبونتو هنگام برقراری ارتباط از طریق اینترنت استفاده کنند. این مزیت این است که آدرس‌های IP داخلی هر سیستمی را از نهادهای مخرب خارجی پنهان می‌کند و همچنین از لزوم تخصیص یک آدرس IP عمومی به هر رایانه در شبکه جلوگیری می‌کند.

از فرمان زیر برای بررسی اینکه آیا Masquerading از قبل در فایروال فعال است یا خیر استفاده کنید:

از فرمان زیر برای فعال کردن maskareding استفاده کنید (به یاد داشته باشید که اگر تغییر دائمی باشد، از –permanent flag استفاده کنید):

اضافه کردن قوانین ICMP

پروتکل ICMP توسط سیستم‌های کلاینت در شبکه‌ها برای ارسال اطلاعاتی مانند پیام‌های خطا به یکدیگر استفاده می‌شود. همچنین پایه و اساس دستور ping است که توسط مدیران شبکه و کاربران به طور یکسان برای تشخیص زنده بودن یک کلاینت خاص در شبکه استفاده می‌شود. دسته ICMP امکان مسدود کردن انواع خاص پیام ICMP را فراهم می‌کند. به عنوان مثال، یک مدیر ممکن است برای جلوگیری از احتمال حمله DoS مبتنی بر پینگ (که در آن سرور به طور مخرب با پیام‌های پینگ زیادی بمباران می‌شود که قادر به پاسخگویی نیست) پیام‌های ICMP ورودی (درخواست Echo) را مسدود کند).

برای مشاهده انواع ICMP موجود برای گنجاندن در قوانین firewalld، دستور زیر را اجرا کنید:

برای مثال، دستور زیر به طور دائم یک قانون برای مسدود کردن پیام‌های پاسخ Echo (درخواست پینگ) برای منطقه Public اضافه می‌کند:

پیاده‌سازی Port Forwarding

هنگامی که سیستم اوبونتو به عنوان دروازه‌ای به اینترنت برای یک شبکه داخلی از سیستم‌های کامپیوتری عمل می‌کند، از انتقال پورت در ارتباط با ماسکه کردن (masquerading) استفاده می‌شود. حمل و نقل پورت اجازه می‌دهد تا ترافیک وارد شده به فایروال از طریق اینترنت در یک پورت خاص به یک سیستم خاص در شبکه داخلی هدایت شود. این شاید به بهترین شکل از طریق یک مثال توصیف شود.

فرض کنید که یک سیستم اوبونتو به عنوان فایروال برای یک شبکه داخلی از رایانه‌ها عمل می‌کند و یکی از سیستم‌های موجود در شبکه به عنوان یک وب‌سرور پیکربندی شده است. فرض کنید سیستم وب سرور دارای آدرس آی‌پی ۱۹۲٫۱۶۸٫۲٫۲۰ است. رکورد دامنه برای وب‌سایت میزبانی شده در این سیستم با آدرس IP عمومی که سیستم فایروال اوبونتو پشت آن قرار دارد پیکربندی شده است. هنگامی که یک درخواست صفحه وب HTTP به پورت ۸۰ می‌رسد، سیستم اوبونتو که به عنوان فایروال عمل می‌کند باید بداند که با آن چه کاری انجام دهد. با پیکربندی ارسال پورت، می‌توان تمام ترافیک وب را به سیستم داخلی میزبان وب سرور هدایت کرد (در این مورد، آدرس آی‌پی ۱۹۲٫۱۶۸٫۲٫۲۰)، یا با ادامه استفاده از پورت ۸۰ یا هدایت ترافیک به پورت دیگری در سرور مقصد. در واقع، حمل و نقل پورت حتی می‌تواند به گونه‌ای پیکربندی شود که ترافیک را به یک پورت دیگر در همان سیستم فایروال هدایت کند (مفهومی به نام حمل و نقل محلی یا local forwarding شناخته می‌شود).

برای استفاده از port forwarding، با فعال کردن maskareding به صورت زیر شروع کنید (در این مورد فرض بر این است که رابط متصل به اینترنت به منطقه External اختصاص داده شده است):

برای ارسال از یک پورت به یک پورت محلی دیگر، از فرمانی شبیه به زیر استفاده می شود:

در مثال بالا، هر ترافیک TCP وارد شده به پورت ۲۲ به پورت ۲۷۵۰ در سیستم لوکال ارسال می‌شود. از طرف دیگر، فرمان زیر پورت ۲۰ را در سیستم لوکال به پورت ۲۲ سیستم با آدرس آی‌پی ۱۹۲٫۱۶۸٫۰٫۱۹ ارسال می‌کند:

به طور مشابه، فرمان زیر پورت محلی ۲۰ را به پورت ۲۷۵۰ سیستم با آدرس آی‌پی ۹۲٫۱۶۸٫۰٫۱۸ ارسال می‌کند:

مدیریت فایروال با استفاده از firewall-config

اگر به محیط گرافیکی دسکتاپ دسترسی دارید، فایروال نیز ممکن است با استفاده از ابزار firewall-config پیکربندی شود. اگرچه به طور پیش‌فرض نصب نشده است، پیکربندی فایروال ممکن است به صورت زیر نصب شود:

هنگامی که راه‌اندازی می‌شود، صفحه اصلی پیکربندی فایروال همانطور که در تصویر زیر نشان داده شده است ظاهر می‌شود:

  • A – تمام رابط‌های فعال فعلی و مناطقی که به آن‌ها اختصاص داده شده‌اند را نمایش می‌دهد. برای اختصاص دادن یک رابط به یک منطقه دیگر، آن را از این پانل انتخاب کنید، بر روی دکمه Change Zone کلیک کنید و منطقه مورد نیاز را از پنجره حاصل انتخاب کنید.
  • B – کنترل می‌کند که آیا اطلاعات نمایش داده شده و تغییرات ایجاد شده در ابزار برای زمان اجرا یا قوانین دائمی اعمال می‌شود یا خیر.
  • C – لیست مناطق، سرویس‌ها یا مجموعه‌های IPS پیکربندی شده روی سیستم. اطلاعات فهرست شده در این پانل به انتخاب انجام شده از نوار ابزار F بستگی دارد. انتخاب یک مورد از لیست موجود در این پانل، پانل اصلی با علامت D را به روز می‌کند.
  • D – پانل اصلی حاوی اطلاعات مربوط به انتخاب دسته فعلی در نوار ابزار E. در این مثال، پانل خدمات منطقه عمومی را نمایش می‌دهد. چک‌باکس‌های کنار هر سرویس کنترل می‌کنند که آیا سرویس در فایروال فعال است یا نه. در این پانل‌های دسته‌بندی است که می‌توان قوانین جدید اضافه کرد یا قوانین موجود را پیکربندی یا حذف کرد.
  • E – محتوای نمایش داده شده در پانل D را کنترل می‌کند. با انتخاب موارد از این نوار، قانون فعلی برای دسته انتخابی نمایش داده می‌شود.
  • F – لیست نمایش داده شده در پانل C را کنترل می‌کند.

ابزار firewall-config ساده و بصری برای استفاده است و اجازه می‌دهد تا بسیاری از کارهای موجود با firewall-cmd در یک محیط بصری انجام شود.

خلاصه

یک فایروال با دقت برنامه‌ریزی و پیاده‌سازی شده جزء حیاتی هر سیستم ایمن است. در مورد اوبونتو، سرویس فایروال یک سیستم فایروال را ارائه می‌دهد که هم انعطاف‌پذیر است و هم مدیریت آن آسان است.

سرویس firewalld از مفهوم مناطق برای گروه‌بندی مجموعه‌ای از قوانین فایروال استفاده می‌کند و شامل مجموعه‌ای از مناطق از پیش تعریف شده است که برای برآورده کردن طیف وسیعی از الزامات حفاظت از فایروال طراحی شده‌اند. این مناطق ممکن است برای افزودن یا حذف قوانین، یا ایجاد و پیکربندی مناطق کاملا جدید اصلاح شوند. دستگاه‌های شبکه موجود در سیستم که به شبکه‌ها یا اینترنت متصل می‌شوند، interface یا رابط نامیده می‌شوند. هر رابط به نوبه خود به یک منطقه اختصاص داده می‌شود. ابزارهای اولیه برای کار با firewalld، ابزار خط فرمان firewall-cmd و ابزار گرافیکی Firewall-config می‌باشند.

منبع: answertopia.com

فرشید نوتاش حقیقت

همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرم‌افزارهای آزاد/ متن‌باز و سیستم‌عامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.

نوشته های مشابه

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

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

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

دکمه بازگشت به بالا