firewalld یک نرم افزار مدیریت فایروال است که برای بسیاری از توزیع های لینوکس موجود است ، که به عنوان یک پیش زمینه برای سیستم های فیلترینگ بسته های داخل هسته ای nftables یا iptables لینوکس عمل می کند.
در این راهنما به شما نشان خواهیم داد که چگونه می توانید فایروال firewalld را برای سرور مجازی CentOS 8 خود تنظیم کنید و اصول مدیریت فایروال را با ابزار اجرایی firewall-cmd پوشش دهید.
پیش نیازها
برای تکمیل این آموزش ، به سرور مجازی ی که دارای CentOS 8 باشد ، نیاز خواهید داشت. ما فرض خواهیم کرد که شما به عنوان یک کاربر غیر ریشه و فعال در این سرور مجازی وارد شده اید. برای انجام این کار، به راهنمای اولیه راه اندازی سرور مجازی ما برای CentOS 8 مراجعه کنید.
مفاهیم اساسی در firewalld
قبل از شروع صحبت در مورد چگونگی استفاده از ابزار Firewall-cmd برای مدیریت پیکربندی فایروال، باید با چند مفهومی که این ابزار معرفی می کند ، آشنا شویم.
Zones یا نواحی
firewalld  گروههایی از قوانین را با استفاده از ماهیتی به نام zones مدیریت می کند. Zone ها یا نواحی مجموعه قوانینی هستند که بسته به میزان اعتماد شما به شبکه ، ترافیک مجاز را اعلام می کنند. رابط های شبکه به ناحیه ای اختصاص داده میشوند تا رفتارهایی را که فایروال باید اجازه دهد ، را دیکته کنند.
برای رایانه هایی که ممکن است به طور مکرر بین شبکه ها در حرکت باشند (مانند لپ تاپ) ، این نوع انعطاف پذیری روش خوبی برای تغییر قوانین شما بسته به محیط فراهم می کند. ممکن است برای ممنوعیت بیشتر ترافیک هنگام کار بر روی یک شبکه WiFi عمومی قوانین سختگیرانه ای را داشته باشید ، در حالی که هنگام اتصال به شبکه خانگی خود محدودیت های خفیف تری را اعمال میکنید. برای سرور مجازی ، این نواحی اغلب به این اندازه مهم نیستند زیرا محیط شبکه به ندرت ، در هر صورت ، تغییر می کند.
صرف نظر از اینکه محیط شبکه شما چقدر ممکن است پویا باشد ، همچنان مفید است با ایده کلی پشت هر یک از نواحی از پیش تعریف شده برای firewalld آشنا شوید. نواحی از پیش تعریف شده در firewalld  ، به ترتیب حداقل اعتماد به بیشترین اعتماد عبارتند از:
•drop: پایین ترین سطح اعتماد است. تمام اتصالات ورودی بدون پاسخ افت کرده و فقط اتصالات خروجی امکان پذیر است.
•block: مشابه مورد فوق میباشد، اما به جای اینکه ارتباطات به راحتی قطع شوند ، درخواستهای دریافتی با پیغام icmp-host-prohibited  یا  icmp6-adm-prohibited رد می شوند.
•public: شبکه های عمومی و غیر قابل اعتماد را نشان می دهد. شما به رایانه های دیگر اعتماد ندارید اما ممکن است اتصالات ورودی انتخاب شده را به صورت موردی اجازه دهید.
•external: شبکه های خارجی هستند در صورتی که از فایروال به عنوان دروازه خود استفاده می کنید. این مورد برای نقاب گذاری NAT تنظیم شده است تا شبکه داخلی شما خصوصی بماند اما قابل دسترسی باشد.
•internal: طرف دیگر ناحیه خارجی است، که برای قسمت داخلی یک دروازه استفاده می شود. رایانه ها نسبتا قابل اعتماد هستند و برخی خدمات اضافی نیز در دسترس میباشند.
•dmz: برای رایانه های واقع در DMZ (رایانه های جدا شده ای که به بقیه شبکه شما دسترسی ندارند) استفاده می شود. فقط اتصالات ورودی خاص مجاز است.
•work: برای ماشینهای کاری استفاده می شود. به اکثر رایانه های موجود در شبکه اعتماد میکند. چند سرویس دیگر ممکن است مجاز باشند.
•home: یک محیط هوم میباشد. به طور کلی نشان می دهد که شما به اکثر رایانه های دیگر اعتماد دارید و چند سرویس دیگر نیز پذیرفته می شوند.
•trusted: به تمام دستگاههای موجود در شبکه اعتماد میکند. بازترین گزینه موجود است و باید با احتیاط استفاده شود.
برای استفاده از فایروال می توانیم قوانینی ایجاد کرده و خصوصیات نواحی خود را تغییر داده و سپس رابط های شبکه خود را به هر کدام از نواحی مناسب تر اختصاص دهیم.
پایداری قانون (Rule Permanence)
در Firewalld می توان قوانینی را برای مجموعه قوانین زمان اجرای فعلی اعمال کرد یا دائمی استفاده نمود. وقتی یک قانون اضافه میشود یا تغییر می یابد ، به طور پیش فرض ، فقط فایروال در حال اجرا اصلاح می شود. پس از ریبوت بعدی – یا بارگذاری مجدد سرویس Firewalld – فقط قوانین دائمی باقی می مانند.
اکثر عملیات firewall-cmd می توانند پرچم –permanent را داشته باشند که نشان می دهد تغییرات باید در پیکربندی کامل اعمال شوند. علاوه بر این ، فایروال در حال اجرا می تواند با دستور firewall-cmd –runtime-to-permanent در پیکربندی دائمی ذخیره شود.
این تفکیک زمان اجرا در مقابل پیکربندی دائم بدان معنی است که می توانید با اطمینان قوانین موجود در فایروال فعال خود را تست کنید ، سپس در صورت بروز مشکل لود مجدد کنید.
نصب و فعال سازی firewalld
firewalld بطور پیش فرض در برخی توزیع های لینوکس نصب شده است ، از جمله بسیاری از تصاویر CentOS 8. با این وجود ، ممکن است لازم باشد Firewalld را خودتان نصب کنید:
$ sudo dnf install firewalld

بعد از نصب Firewalld ، می توانید سرویس را فعال کرده و سرور مجازی خود را دوباره راه اندازی کنید. به خاطر داشته باشید که فعال کردن فایروال باعث ایجاد بوت مجدد سرویس می شود. بهترین کار این است که قوانین فایروال خود را ایجاد کنید و از این فرصت استفاده کنید که قبل از پیکربندی این رفتار ، آنها را آزمایش کنید تا از مشکلات احتمالی خودداری کنید.
$ sudo systemctl enable firewalld

$ sudo systemctl start firewalld

هنگام شروع مجدد سرور مجازی ، باید فایروال شما فراهم شود ، رابط های شبکه شما باید در مناطقی که پیکربندی کرده اید قرار گیرند (یا به منطقه پیش فرض پیکربندی شده برگردند) ، و کلیه قوانین مرتبط با منطقه (ها) به رابط های مربوط اعمال می شود.
با تایپ کردن دستور زیر می توانیم تأیید کنیم که سرویس در حال اجرا و قابل دستیابی است:
$ sudo firewall-cmd –state

Output
running

این نشان میدهد که فایروال ما با تنظیمات پیش فرض به روز و در حال اجراست.
آشنایی با قوانین فعلی فایروال
قبل از شروع به ایجاد تغییرات ، باید با محیط پیش فرض و قوانین ارائه شده توسط firewalld آشنا شویم.
جستجوی پیش فرض ها
با تایپ این دستور می توانیم ببینیم کدام منطقه در حال حاضر به عنوان پیش فرض انتخاب شده است:
$ firewall-cmd –get-default-zone

Output
public

از آنجا که ما هیچ فرمانی را برای انحراف از منطقه پیش فرض صادر نکرده ایم و هیچ یک از رابط های ما پیکربندی نشده اند که به منطقه دیگری متصل شوند ، آن منطقه نیز تنها منطقه فعال است (منطقه ای که کنترل ترافیک رابط های ما را تنظیم می کند) . می توانیم با تایپ کردن این دستور آن را تأیید کنیم:
$ firewall-cmd –get-active-zones

Output
public
interfaces: eth0 eth1

در اینجا ، می بینیم که سرور مجازی مثال ما دارای دو رابط شبکه است که توسط فایروال کنترل می شوند ( eth0 و eth1). در حال حاضر هر دو مطابق قوانینی که برای منطقه عمومی تعیین شده است ، اداره می شوند.
چگونه می دانیم که چه قوانینی به منطقه عمومی مرتبط است؟ می توانیم پیکربندی منطقه پیش فرض را با تایپ کردن دستور زیر چاپ کنیم:
$ sudo firewall-cmd –list-all

Output
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

از خروجی می توانیم بگوییم که این منطقه هم پیش فرض و هم فعال است و رابط های eth0 و eth1 با این منطقه در ارتباط هستند (ما همه اینها را از جستارهای قبلی خود می دانستیم). با این حال ، همچنین می بینیم که این منطقه امکان ترافیک را برای مشتری DHCP (برای تعیین آدرس IP) ، SSH (برای مدیریت از راه دور) و Cockpit (یک کنسول مبتنی بر وب) فراهم می کند.
جستجو در مناطق جایگزین
اکنون ما در مورد پیکربندی منطقه پیش فرض و فعال اطلاعات خوبی داریم. می توانیم در مورد مناطق دیگر نیز اطلاعات کسب کنیم.
برای دریافت لیستی از مناطق موجود ، تایپ کنید:
$ firewall-cmd –get-zones

Output
block dmz drop external home internal public trusted work

با درج پارامتر –zone = در فرمان –list-all می توانیم پیکربندی خاص مرتبط با یک منطقه را مشاهده کنیم:
$ sudo firewall-cmd –zone=home –list-all

Output
home
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client mdns samba-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

شما می توانید با استفاده از گزینه –list-all-zones ، تعاریف منطقه را به دست آورید. برای مشاهده راحت تر احتمالاً می خواهید خروجی را به یک پیجر متصل کنید:
$ sudo firewall-cmd –list-all-zones | less

در مرحله بعدی در مورد اختصاص مناطق به واسط های شبکه، اطلاعاتی کسب خواهیم کرد.
انتخاب مناطق برای رابط های خود
با شروع فایروال ، هر رابط در منطقه پیش فرض قرار می گیرد، مگر اینکه رابط های شبکه خود را پیکربندی کرده باشید.
تغییر منطقه یک رابط
می توانید در طول یک بخش با استفاده از پارامتر –zone = در ترکیب با پارامتر –change-interface= بین منطقه ها حرکت کنید. مانند سایر دستوراتی که فایروال را اصلاح می کند ، باید از sudo استفاده کنید.
به عنوان مثال ، می توانیم با تایپ کردن این دستور، رابط eth0 خود را به منطقه هوم منتقل کنیم:
$ sudo firewall-cmd –zone=home –change-interface=eth0

Output
success

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

با درخواست دوباره مناطق فعال ، می توانیم تأیید کنیم که این امر موفقیت آمیز بوده است:
$ firewall-cmd –get-active-zones

Output
home
interfaces: eth0
public
interfaces: eth1

تنظیم منطقه پیش فرض
اگر همه رابط های شما توسط یک منطقه واحد به خوبی اداره شوند ، احتمالاً ساده ترین کار انتخاب بهترین منطقه به عنوان پیش فرض و سپس استفاده از آن برای پیکربندی شما میباشد.
می توانید ناحیه پیش فرض را با پارامتر –set-default-zone = تغییر دهید. با این کار بلافاصله هر رابط با استفاده از منطقه پیش فرض تغییر می یابد:
$ sudo firewall-cmd –set-default-zone=home

Output
success

تنظیم قوانین مربوط به برنامه های خود
بیایید از راهی بنیادی برای تعریف استثنائات فایروال برای خدماتی که مایل به ارائه هستید استفاده کنید.
افزودن سرویس به مناطق
سرراست ترین روش اضافه کردن خدمات یا پورت های مورد نیاز خود به مناطقی است که استفاده می کنید. می توانید لیستی از تعاریف خدمات موجود را با گزینه –get-service دریافت کنید:
$ firewall-cmd –get-services

Output
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-c

توجه: می توانید با دیدن فایل .xml همراه آنها در دیرکتوری /usr/lib/firewalld/services جزئیات مربوط به هر یک از این سرویس ها اطلاعات بیشتری کسب کنید. به عنوان مثال ، سرویس SSH به شرح زیر تعریف می شود:
/usr/lib/firewalld/services/ssh.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol=”tcp” port=”22″/>
</service>

با استفاده از پارامتر –add-service = می توانید یک سرویس را برای یک منطقه فعال کنید. این عملکرد منطقه پیش فرض یا هر منطقه را که با پارامتر –zone = مشخص می کند هدف قرار می دهد. به طور پیش فرض ، فقط بخش فعلی فایروال را تنظیم می کند. می توانید تنظیمات فایروال دائمی را با افزودن پرچم –permanent تنظیم کنید.
به عنوان مثال ، اگر ما یک سرور مجازی وب ارائه دهنده ترافیک معمولی HTTP داریم ، می توانیم با تایپ کردن دستور زیر به طور موقت این ترافیک را برای رابط های موجود در منطقه عمومی خود فراهم کنیم:
$ sudo firewall-cmd –zone=public –add-service=http

اگر می خواهید منطقه پیش فرض را تغییر دهید ، می توانید پرچم –zone = را رها کنید. با استفاده از عملکردهای –list-all یا –list-services می توانیم تأیید کنیم که این عملیات با موفقیت انجام شد:
$ sudo firewall-cmd –zone=public –list-services

Output
cockpit dhcpv6-client http ssh

هنگامی که آزمایش کردید که همه چیز همانطور که باید کار می کند ، میتوانید قوانین فایروال دائمی را تغییر دهید تا سرویس شما پس از راه اندازی مجدد دوباره در دسترس باشد. ما می توانیم با تایپ مجدد و اضافه کردن پرچم –permanent ، تغییر قبلی خود را دائمی کنیم:
$ sudo firewall-cmd –zone=public –add-service=http –permanent

Output
success

همچنین می توانید از پرچم –runtime-to-permanent برای ذخیره پیکربندی فایروال در حال اجرا در پیکربندی دائمی استفاده کنید:
$ sudo firewall-cmd –runtime-to-permanent

در انجام این کار مراقب باشید ، زیرا تمام تغییرات ایجاد شده در فایروال در حال اجرا دائمی اعمال می شوند.
هر روشی که انتخاب کردید ، می توانید با افزودن پرچم –permanent به عملیات –list-services ، این موفقیت را تأیید کنید. برای هر عملیات –permanent باید از sudo استفاده کنید:
$ sudo firewall-cmd –zone=public –list-services –permanent

Output
cockpit dhcpv6-client http ssh

در حال حاضر منطقه عمومی شما ترافیک وب HTTP را در پورت 80 امکان پذیر خواهد کرد. اگر سرور مجازی وب شما پیکربندی شده است تا از SSL / TLS استفاده کند ، بهتر است سرویس https را نیز اضافه کنید. می توانیم با تایپ کردن دستور زیر ، آن را به بخش فعلی و مجموعه قوانین دائمی اضافه کنیم:
$ sudo firewall-cmd –zone=public –add-service=https

$ sudo firewall-cmd –zone=public –add-service=https –permanent

اگر هیچ خدمات مناسبی در دسترس نباشد چه می کنیم؟
خدماتی که با نصب فایروال شامل میشوند ، نمایانگر بسیاری از رایج ترین برنامه هایی هستند که ممکن است بخواهید به آنها دسترسی داشته باشید. با این وجود ، شرایطی وجود خواهد داشت که این سرویس ها مطابق با نیاز شما نباشند.
در این شرایط ، شما دو گزینه دارید.
باز کردن پورتی برای نواحی خود
آسانترین راه برای افزودن پشتیبانی برای برنامه خاص شما ، باز کردن پورت هایی است که از آن در منطقه (های) مناسب استفاده می کند. این کار با مشخص کردن پورت یا محدوده پورت و پروتکل همراه (TCP یا UDP) برای درگاهها انجام می شود.
به عنوان مثال ، اگر برنامه ما روی پورت 5000 اجرا شود و از TCP استفاده کند ، می توانیم به طور موقت با استفاده از پارامتر –add-port = آن را به منطقه عمومی اضافه کنیم. پروتکل ها می توانند به عنوان tcp یا udp تعیین شوند:
$ sudo firewall-cmd –zone=public –add-port=5000/tcp

Output
success

می با استفاده از عملکرد –list-ports میتوانیم تأیید کنیم که این کار موفقیت آمیز بوده است:
$ sudo firewall-cmd –zone=public –list-ports

Output
5000/tcp

همچنین می توان با جدا کردن شروع و پایان پورت در محدوده با / ، محدوده متوالی پورت ها را مشخص کرد. به عنوان مثال ، اگر برنامه ما از پورت های UDP از 4990 تا 4999 استفاده می کند ، می توانیم با تایپ کردن این دستور آنها را در حالت عمومی باز کنیم:
$ sudo firewall-cmd –zone=public –add-port=4990-4999/udp

پس از آزمایش ، میتوانیم این موارد را به فایروال دائمی اضافه کنیم. برای انجام این کار از sudo firewall-cmd –runtime-to-permanent استفاده کنید ، یا دستورات را با پرچم –permanentمجدداً راه اندازی کنید:
$ sudo firewall-cmd –zone=public –permanent –add-port=5000/tcp

$ sudo firewall-cmd –zone=public –permanent –add-port=4990-4999/udp

$ sudo firewall-cmd –zone=public –permanent –list-ports

Output
success
success
5000/tcp 4990-4999/udp

تعریف یک سرویس
باز کردن پورت ها برای مناطق شما یک راه حل ساده است ، اما پیگیری کردن هدف هر یک از آنها، دشوار خواهد بود. اگر تا کنون یک سرویس را روی سرور مجازی خود حذف کرده باشید ، ممکن است به سختی به خاطر بیاورید که کدام پورت های باز شده همچنان لازم هستند. برای جلوگیری از این وضعیت می توان سرویس جدیدی را تعریف کرد.
خدمات، مجموعه ای از درگاه ها با نام و توضیحات همراه هستند. استفاده از سرویس ها برای کارهای اجرایی آسانتر از درگاه ها است ، اما به کمی کار up-front نیاز دارد. ساده ترین راه برای شروع ، کپی کردن اسکریپت موجود (در / usr / lib / firewalld / service) در دایرکتوری / etc / firewalld / service است که در آن فایروال به دنبال تعاریف غیر استاندارد است.
به عنوان مثال ، می توانیم تعریف سرویس SSH را کپی کرده و از آن برای تعریف سرویس نمونه مانند این استفاده کنیم. نام فایل منهای پسوند .xml نام سرویس را در لیست خدمات فایروال نشان می دهد:
$ sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/example.xml

اکنون می توانید تعریف موجود در فایلی که کپی کرده اید را تنظیم کنید. ابتدا آن را در ویرایشگر متن مورد علاقه خود باز کنید. ما اینجا از vi استفاده خواهیم کرد:
$ sudo vi /etc/firewalld/services/example.xml

برای شروع ، فایل حاوی تعریف SSH است که کپی کرده اید:
/etc/firewalld/services/example.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol=”tcp” port=”22″/>
</service>

اکثر این تعریف در واقع ابرداده است. شما می خواهید نام کوتاه را برای سرویس در برچسب های <short> تغییر دهید. این یک نام قابل خواندن برای خدمات شما است. همچنین باید توضیحی را اضافه کنید تا در صورت نیاز به ممیزی این سرویس ، اطلاعات بیشتری کسب کنید. تنها پیکربندی مورد نیاز جهت ایجاد عملکرد در خدمات ، احتمالاً تعریف پورت است که در آن شماره پورت و پروتکل مورد نظر برای باز کردن را شناسایی می کنید. برچسب های چندگانه <port/> را می توان مشخص کرد.
برای سرویس نمونه ما ، تصور کنید که ما باید پورت 7777 را برای TCP و 8888 را برای UDP باز کنیم. ما می توانیم تعریف موجود را با چیزی شبیه به این اصلاح کنیم:
/etc/firewalld/services/example.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<service>
<short>Example Service</short>
<description>This is just an example service. It probably shouldn’t be used on a real system.</description>
<port protocol=”tcp” port=”7777″/>
<port protocol=”udp” port=”8888″/>
</service>

فایل را ذخیره کنید و ببندید.
بار دیگر فایروال خود را لود کنید تا به سرویس جدید خود دسترسی پیدا کنید:
$ sudo firewall-cmd –reload

می بینید که اینک در لیست خدمات موجود قرار دارد:
$ firewall-cmd –get-services

Output
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitc

اکنون می توانید طبق معمول از این سرویس در مناطق خود استفاده کنید.
ایجاد نواحی شخصی خود
در حالی که نواحی از پیش تعریف شده احتمالاً برای بیشتر کاربران کاملا کافی خواهند بود ، می توان مناطق خود را که توصیف بیشتری از عملکرد آنها دارید تعریف کنید.
به عنوان مثال ، شما ممکن است بخواهید یک منطقه به نام publicweb برای وب سرور مجازی خود ایجاد کنید. با این حال ، ممکن است بخواهید منطقه دیگری را برای سرویس DNS ارائه شده در شبکه خصوصی تنظیم کنید. ممکن است منطقه ای به نام “privateDNS” بخواهید.
$ sudo firewall-cmd –permanent –new-zone=publicweb

$ sudo firewall-cmd –permanent –new-zone=privateDNS

هنگام افزودن یک منطقه ، باید آن را به پیکربندی فایروال دائمی اضافه کنید. سپس می توانید مجدد لود کنید تا پیکربندی را به بخش در حال اجرا بیاورید. به عنوان مثال ، می توانیم با تایپ کردن این دستور دو منطقه مورد بحث را در بالا ایجاد کنیم:
با تایپ کردن این دستور می توانید تأیید کنید که این موارد در پیکربندی دائمی شما وجود دارند:
$ sudo firewall-cmd –permanent –get-zones

Output
block dmz drop external home internal privateDNS public publicweb trusted work

همانطور که قبلاً گفته شد ، اینها هنوز در فایروال زمان اجرا در دسترس نیستند:
$ firewall-cmd –get-zones

Output
block dmz drop external home internal public trusted work

بار دیگر فایروال را لود کنید تا این مناطق جدید به پیکربندی فعال زمان اجرا اضافه شوند:
$ sudo firewall-cmd –reload

$ firewall-cmd –get-zones

Output
block dmz drop external home internal privateDNS public publicweb trusted work

اکنون می توانید خدمات و پورت های مناسب را به مناطق خود اختصاص دهید. معمولاً ایده خوبی است که فایروال زمان اجرا را تنظیم کرده و پس از آزمایش آن را در پیکربندی دائمی ذخیره کنید. به عنوان مثال ، برای منطقه publicweb ، ممکن است بخواهید خدمات SSH ، HTTP و HTTPS را اضافه کنید:
$ sudo firewall-cmd –zone=publicweb –add-service=ssh

$ sudo firewall-cmd –zone=publicweb –add-service=http

$ sudo firewall-cmd –zone=publicweb –add-service=https

$ sudo firewall-cmd –zone=publicweb –list-all

Output
publicweb
target: default
icmp-block-inversion: no
interfaces:
sources:
services: http https ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

به همین ترتیب ، می توانیم سرویس DNS را به منطقه privateDNS خود اضافه کنیم:
$ sudo firewall-cmd –zone=privateDNS –add-service=dns

$ sudo firewall-cmd –zone=privateDNS –list-all

Output
privateDNS
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dns
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

سپس می توانستیم رابطهای خود را به این نواحی جدید تغییر دهیم تا آنها را تست کنیم.
$ sudo firewall-cmd –zone=publicweb –change-interface=eth0

$ sudo firewall-cmd –zone=privateDNS –change-interface=eth1

در این مرحله ، می توانید پیکربندی خود را آزمایش کنید. اگر این مقادیر برای شما کار کنند ، می توانید این قوانین را به پیکربندی دائمی اضافه کنید. شما می توانید این کار را با اجرای دوباره تمام دستورات با پرچم –permanent ، انجام دهید ، اما در این حالت ما از پرچم –runtime-to-permanent استفاده خواهیم کرد تا کل تنظیمات زمان اجرا را برای همیشه ذخیره کنیم:
$ sudo firewall-cmd –runtime-to-permanent

پس از بکارگیری دائم این قوانین ، فایروال را لود مجدد کنید تا ثابت شود که تغییرات همچنان باقی مانده اند:
$ sudo firewall-cmd –reload

تأیید کنید که مناطق صحیح اختصاص داده شده است:
$ firewall-cmd –get-active-zones

Output
privateDNS
interfaces: eth1
publicweb
interfaces: eth0

و تأیید کنید که خدمات مناسب برای هر دو منطقه در دسترس است:
$ sudo firewall-cmd –zone=publicweb –list-services

Output
http https ssh
$ sudo firewall-cmd –zone=privateDNS –list-services

Output
dns

با موفقیت مناطق خود را تنظیم کرده اید! اگر می خواهید یکی از این مناطق را به صورت پیش فرض برای واسط های دیگر بسازید ، بیاد داشته باشید که آن رفتار را با پارامتر –set-default-zone = پیکربندی کنید:
نتیجه
حال باید درک نسبتاً کاملی از نحوه اجرای سرویس firewalld در سیستم CentOS برای استفاده روزانه داشته باشید.
سرویس firewalld به شما امکان می دهد قوانین و مجموعه های قابل نگهداری را تنظیم کنید که محیط شبکه شما را مورد توجه قرار می دهد. این امکان را به شما می دهد تا از طریق استفاده از مناطق به صورت یکپارچه بین رویکردهای مختلف فایروال تغییر مسیر دهید و به مدیران این امکان را می دهد تا مدیریت پورت را برای تعاریف خدمات منعطف تر انتزاع کنند. به دست آوردن دانش کار در این سیستم به شما امکان می دهد از انعطاف پذیری و قدرتی که این ابزار در اختیار شما قرار می دهد استفاده کنید.
برای اطلاعات بیشتر در مورد firewalld ، لطفاً به مطالب رسمی Firewalld مراجعه کنید

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10

نحوه راه اندازی یک پروژه React با برنامه Reactنصب و ایمن سازی phpMyAdmin در اوبونتو 18

پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7

نصب MariaDB در اوبونتو 18.04  –  ایمن کردن Apache با Let’s Encrypt در Debian 10

نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10

راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10

اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10

نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10

نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم

نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker

نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8

نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای

نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7

نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور

نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB

نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور

نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی

نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04

نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode

نصب Python 3 و تنظیم برنامه نویسی CentOS 8نصب Jitsi Meet در Ubuntu 18.04

 

 

کلمات کلیدی خرید سرور

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکاخرید سرور مجازی ارزان هلندvpsخرید vps هلندخرید سرور مجازی آمریکاخرید vps فرانسهتست vpsسرور مجازی تستسرور مجازی ویندوزارزانترین vpsخرید وی پی اسvps ارزان – 

برچسب‌ها:, , , , ,