وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش پیکربندی و مدیریت فایروال در CentOS 8

0 5
زمان لازم برای مطالعه: 8 دقیقه



فایروال روشی برای نظارت و فیلتر کردن ترافیک ورودی و خروجی شبکه است. این با تعریف مجموعه‌ای از قوانین امنیتی کار می‌کند که تعیین می‌کنند آیا ترافیک خاصی مجاز است یا مسدود می‌شود. یک فایروال با پیکربندی مناسب یکی از مهمترین جنبه های امنیت کلی سیستم است.

CentOS 8 کشتی با دیمون فایروال به نام فایروال
. این یک راه حل کامل با رابط D-Bus است که به شما امکان می دهد فایروال سیستم را به صورت پویا مدیریت کنید.

در این آموزش در مورد روش پیکربندی و مدیریت فایروال روی صحبت خواهیم کرد CentOS 8. همچنین مفاهیم اولیه FirewallD را توضیح خواهیم داد.

پیش نیازها

برای پیکربندی سرویس فایروال، باید به عنوان root یا کاربر با امتیازات sudo وارد شوید.

مفاهیم پایه فایروال

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

فایروال را می توان با استفاده از آن پیکربندی و مدیریت کرد firewall-cmd command-line سودمندی

که در CentOS 8، iptables با nftables به عنوان پشتیبان فایروال پیش فرض برای دیمون فایروال جایگزین شده است.

مناطق فایروال

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

در زیر مناطق ارائه شده توسط FirewallD با توجه به سطح اعتماد منطقه از نامعتبر به قابل اعتماد سفارش داده شده است:

  • رها کردن: تمام اتصالات ورودی بدون هیچ اطلاع رسانی قطع می شوند. فقط اتصالات خروجی مجاز است.
  • مسدود کردن: تمام اتصالات ورودی با یک رد می شوند icmp-host-prohibited پیام برای IPv4 و icmp6-adm-prohibited برای IPv6n فقط اتصالات خروجی مجاز است.
  • عمومی: برای استفاده در مکان های عمومی غیر قابل اعتماد. شما به رایانه های دیگر موجود در شبکه اعتماد ندارید، اما می توانید اتصالات ورودی انتخاب شده را مجاز کنید.
  • خارجی: برای استفاده در شبکه های خارجی با پوشش NAT فعال زمانی که سیستم شما به عنوان دروازه یا روتر عمل می کند. فقط اتصالات ورودی انتخاب شده مجاز است.
  • درونی؛ داخلی: برای استفاده در شبکه های داخلی زمانی که سیستم شما به عنوان دروازه یا روتر عمل می کند. سایر سیستم های موجود در شبکه به طور کلی قابل اعتماد هستند. فقط اتصالات ورودی انتخاب شده مجاز است.
  • dmz: برای رایانه های واقع در منطقه غیرنظامی شما که دسترسی محدودی به بقیه شبکه شما دارند استفاده می شود. فقط اتصالات ورودی انتخاب شده مجاز است.
  • کار کردن: برای ماشین های کار استفاده می شود. سایر رایانه های موجود در شبکه عموماً قابل اعتماد هستند. فقط اتصالات ورودی انتخاب شده مجاز است.
  • خانه: برای ماشین های خانگی استفاده می شود. سایر رایانه های موجود در شبکه عموماً قابل اعتماد هستند. فقط اتصالات ورودی انتخاب شده مجاز است.
  • قابل اعتماد: تمامی اتصالات شبکه پذیرفته می شود. به تمام رایانه های موجود در شبکه اعتماد کنید.

خدمات فایروال

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

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

فایروالد زمان اجرا و تنظیمات دائمی

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

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

به طور پیش فرض، هنگام ایجاد تغییرات در پیکربندی فایروالد با استفاده از firewall-cmd ابزار، تغییرات در پیکربندی زمان اجرا اعمال می شود. برای دائمی کردن تغییرات، ضمیمه کنید --permanent گزینه ای برای فرمان

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

  1. پیکربندی زمان اجرا را تغییر دهید و آن را دائمی کنید:

    sudo firewall-cmd <options>sudo firewall-cmd --runtime-to-permanent
  2. پیکربندی دائمی را تغییر دهید و دیمون فایروالد را مجدداً بارگذاری کنید:

    sudo firewall-cmd --permanent <options>sudo firewall-cmd --reload

فعال کردن FirewallD

بر CentOS 8، فایروال به طور پیش فرض نصب و فعال است. اگر به دلایلی روی سیستم شما نصب نیست، می توانید با تایپ کردن دیمون، آن را نصب و راه اندازی کنید:

sudo dnf install firewalldsudo systemctl enable firewalld --now

می توانید وضعیت سرویس فایروال را با موارد زیر بررسی کنید:

sudo firewall-cmd --state

اگر فایروال فعال باشد، دستور باید چاپ شود running. در غیر این صورت خواهید دید not running.

مناطق فایروال

اگر آن را تغییر نداده اید، منطقه پیش فرض روی تنظیم شده است public، و تمام رابط های شبکه به این منطقه اختصاص داده شده است.

پیشنهاد می‌کنیم بخوانید:  روش ایجاد کاربر در لینوکس (فرمان useradd)

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

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

sudo firewall-cmd --get-default-zone
public

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

sudo firewall-cmd --get-zones
block dmz drop external home internal public trusted work

برای مشاهده مناطق فعال و رابط های شبکه اختصاص داده شده به آنها:

sudo firewall-cmd --get-active-zones

خروجی زیر نشان می دهد که اینترفیس ها eth0 و eth1 به public منطقه:

public
  interfaces: eth0 eth1

می‌توانید تنظیمات پیکربندی منطقه را با موارد زیر چاپ کنید:

sudo firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

از خروجی بالا می بینیم که منطقه عمومی فعال است و از هدف پیش فرض استفاده می کند REJECT. خروجی همچنین نشان می دهد که منطقه توسط the استفاده می شود eth0 و eth1 اینترفیس است و به مشتری DHCP و ترافیک SSH اجازه می دهد.

اگر می‌خواهید تنظیمات تمام مناطق موجود را بررسی کنید، تایپ کنید:

sudo firewall-cmd --list-all-zones

دستور یک لیست بزرگ با تنظیمات تمام مناطق موجود چاپ می کند.

تغییر هدف منطقه

هدف، رفتار پیش‌فرض منطقه را برای ترافیک ورودی که مشخص نشده است، تعریف می‌کند. می توان آن را روی یکی از گزینه های زیر تنظیم کرد: default، ACCEPT، REJECT، و DROP.

برای تنظیم هدف منطقه، منطقه را با علامت مشخص کنید --zone گزینه و هدف با --set-target گزینه.

به عنوان مثال، برای تغییر public هدف منطقه به DROP شما می دوید:

sudo firewall-cmd --zone=public --set-target=DROP

اختصاص یک رابط به یک منطقه دیگر

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

برای اختصاص یک رابط به یک منطقه دیگر، منطقه را با علامت مشخص کنید --zone گزینه و رابط با --change-interface گزینه.

به عنوان مثال، دستور زیر را اختصاص می دهد eth1 رابط به work منطقه:

sudo firewall-cmd --zone=work --change-interface=eth1

تغییرات را با تایپ کردن تأیید کنید:

sudo firewall-cmd --get-active-zones
work
  interfaces: eth1
public
  interfaces: eth0

تغییر منطقه پیش فرض

برای تغییر منطقه پیش فرض، از --set-default-zone گزینه ای که به دنبال آن نام منطقه ای که می خواهید پیش فرض کنید.

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

sudo firewall-cmd --set-default-zone=home

بررسی تغییرات با:

sudo firewall-cmd --get-default-zone
home

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

فایروال همچنین به شما این امکان را می دهد که مناطق خود را ایجاد کنید. وقتی می خواهید قوانین هر برنامه را ایجاد کنید، این کار مفید است.

در مثال زیر یک منطقه جدید به نام ایجاد می کنیم memcached، پورت را باز کنید 11211 و اجازه دسترسی فقط از 192.168.100.30 آدرس آی پی:

  1. ایجاد منطقه:

    sudo firewall-cmd --new-zone=memcached --permanent
  2. قوانین را به منطقه اضافه کنید:

    sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanentsudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanentsudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent
  3. برای فعال کردن تغییرات، دیمون فایروالد را دوباره بارگیری کنید:

    sudo firewall-cmd --reload

خدمات فایروالد

با فایروالد می توانید ترافیک پورت ها و/یا منابع خاصی را بر اساس قوانین از پیش تعریف شده به نام سرویس ها مجاز کنید.

برای دریافت لیستی از تمام خدمات پیش فرض موجود، نوع:

sudo firewall-cmd --get-services

با باز کردن فایل xml مرتبط در داخل می توانید اطلاعات بیشتری در مورد هر سرویس بیابید /usr/lib/firewalld/services فهرست راهنما. به عنوان مثال، سرویس HTTP به صورت زیر تعریف شده است:

/usr/lib/firewalld/services/http.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>WWW (HTTP)</short>
  <description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description>
  <port protocol="tcp" port="80"/>
</service>

برای مجاز کردن ترافیک HTTP ورودی (پورت 80) برای رابط‌های موجود در منطقه عمومی، فقط برای جلسه فعلی (پیکربندی زمان اجرا) نوع:

sudo firewall-cmd --zone=public --add-service=http
اگر منطقه پیش‌فرض را تغییر می‌دهید، می‌توانید آن را کنار بگذارید --zone گزینه.

برای تأیید اینکه سرویس با موفقیت اضافه شده است از --list-services گزینه:

sudo firewall-cmd --zone=public --list-services
ssh dhcpv6-client http

برای باز نگه داشتن پورت 80 پس از راه‌اندازی مجدد، همان دستور را یک بار دیگر با --permanent گزینه یا اجرا کنید:

sudo firewall-cmd --runtime-to-permanent

استفاده کنید --list-services همراه با --permanent گزینه ای برای تأیید تغییرات شما:

sudo firewall-cmd --permanent --zone=public --list-services
ssh dhcpv6-client http

نحو حذف سرویس مانند هنگام اضافه کردن یک سرویس است. فقط استفاده کن --remove-service به جای --add-service پرچم:

sudo firewall-cmd --zone=public --remove-service=http --permanent

دستور بالا حذف می کند http سرویس از پیکربندی دائمی منطقه عمومی.

پیشنهاد می‌کنیم بخوانید:  مقایسه Ubuntu با Debian؛ برای استفاده دسکتاپ یا سرور

ایجاد یک سرویس FirewallD جدید

همانطور که قبلاً ذکر کردیم، سرویس های پیش فرض در قسمت ذخیره می شوند /usr/lib/firewalld/services فهرست راهنما. ساده ترین راه برای ایجاد یک سرویس جدید کپی کردن یک فایل سرویس موجود در آن است /etc/firewalld/services دایرکتوری، که محل سرویس های ایجاد شده توسط کاربر و تغییر تنظیمات فایل است.

به عنوان مثال، برای ایجاد یک تعریف سرویس برای Plex Media Server، می توانید از فایل سرویس SSH استفاده کنید:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

جدید ایجاد شده را باز کنید plexmediaserver.xml را فایل کنید و نام کوتاه و توضیحات سرویس را در داخل تغییر دهید <short> و <description> برچسب ها مهمترین برچسبی که باید تغییر دهید این است port تگ، که شماره پورت و پروتکلی را که می خواهید باز کنید را مشخص می کند.

در مثال زیر در حال باز کردن پورت ها هستیم 1900 UDP و 32400 TCP.

/etc/firewalld/services/plexmediaserver.xml
<?xml version="1.0" encoding="utf-8"?>
<service version="1.0">
<short>plexmediaserver</short>
<description>Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.</description>
<port protocol="udp" port="1900"/>
<port protocol="tcp" port="32400"/>
</service>

فایل را ذخیره کرده و سرویس FirewallD را مجدداً بارگیری کنید:

sudo firewall-cmd --reload

اکنون می توانید از plexmediaserver خدمات در مناطق شما مانند هر سرویس دیگری.

باز کردن پورت ها و آی پی های منبع

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

باز کردن IP منبع

برای اجازه دادن به تمام ترافیک ورودی از یک آدرس IP خاص (یا محدوده)، منطقه را با علامت مشخص کنید --zone گزینه و آی پی منبع با --add-source گزینه.

به عنوان مثال، برای اجازه دادن به تمام ترافیک ورودی از 192.168.1.10 در public منطقه، اجرا:

sudo firewall-cmd --zone=public --add-source=192.168.1.10

قانون جدید را پایدار کنید:

sudo firewall-cmd --runtime-to-permanent

با استفاده از دستور زیر تغییرات را تایید کنید:

sudo firewall-cmd --zone=public --list-sources
192.168.1.10

سینتکس حذف یک IP منبع مانند هنگام اضافه کردن یک IP است. فقط استفاده کن --remove-source به جای --add-source گزینه:

sudo firewall-cmd --zone=public --remove-source=192.168.1.10

باز کردن پورت منبع

برای اجازه دادن به تمام ترافیک ورودی در یک پورت معین، منطقه را با علامت مشخص کنید --zone گزینه و پورت و پروتکل با --add-port گزینه.

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

sudo firewall-cmd --zone=public --add-port=8080/tcp

پروتکل می تواند هر دو باشد tcp، udp، sctp، یا dccp.

بررسی تغییرات:

sudo firewall-cmd --zone=public --list-ports
8080

برای باز نگه داشتن پورت پس از راه اندازی مجدد، با اجرای همان دستور با استفاده از دستور، قانون را به تنظیمات دائمی اضافه کنید --permanent پرچم گذاری یا با اجرای:

sudo firewall-cmd --runtime-to-permanent

سینتکس حذف پورت مانند هنگام افزودن پورت است. فقط استفاده کن --remove-port به جای --add-port گزینه.

sudo firewall-cmd --zone=public --remove-port=8080/tcp

پورت های حمل و نقل

برای هدایت ترافیک از یک درگاه به پورت دیگر، ابتدا با استفاده از گزینه، تغییر ظاهر را برای منطقه مورد نظر فعال کنید --add-masquerade گزینه. به عنوان مثال، برای فعال کردن maskarading برای external منطقه، نوع:

sudo firewall-cmd --zone=external --add-masquerade

ترافیک را از یک پورت به پورت دیگر در آدرس IP هدایت کنید

در مثال زیر ما ترافیک را از پورت فوروارد می کنیم 80 به بندر 8080 در همان سرور:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

ترافیک را به آدرس IP دیگری هدایت کنید

در مثال زیر ما ترافیک را از پورت فوروارد می کنیم 80 به بندر 80 روی سرور با IP 10.10.10.2:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

ترافیک را به سرور دیگری در پورت دیگری هدایت کنید

در مثال زیر ما ترافیک را از پورت فوروارد می کنیم 80 به بندر 8080 روی سرور با IP 10.10.10.2:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

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

sudo firewall-cmd --runtime-to-permanent

نتیجه

شما یاد گرفته اید که چگونه سرویس فایروال را روی خود پیکربندی و مدیریت کنید CentOS 8 سیستم.

اطمینان حاصل کنید که به تمام اتصالات ورودی که برای عملکرد صحیح سیستم شما ضروری هستند اجازه دهید، در حالی که تمام اتصالات غیر ضروری را محدود کنید.

اگر سوالی دارید، در زیر نظر دهید.

فایروالد فایروال امنیت centos
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-27 13:02:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید