نصب و راهاندازی firewalld
firewalld چیست و چه کاربردی در سرور های ما دارند؟
دنیای ما اکنون به شکلی بیشتر از هر زمان دیگری، در حال اتصال (از طریق اینترنت) به هم است. هر فرد، شرکت، دولت و سازمان دیگری از اینترنت برای ارتباط، تبادل ارز و داده، و انجام کارهای روزمره و عملیات استفاده میکنند. با این وجود، این اتصالات به طور ذاتی ایمن نیستند و به همین دلیل، برای حفظ موقعیت، اطلاعات و پول خود، باید تدابیر دفاعی را اعمال کنیم. در گذشته، زمانی که فردی میخواست اموال خود را ایمن کند، دروازهها و حصارها را برای دور نگهداشتن متجاوزان احداث میکرد. امروزه، ما با استفاده از فایروالها این هدف را به دست میآوریم. بیشتر سیستمهای لینوکس از ابزار iptables استفاده میکنند، اما یک فناوری جدید در آینده ظاهر شد.
با معرفی Red Hat Enterprise Linux 7.0 (RHEL) در سال 2011، iptables جای خود را به firewalld داد. در اصل، firewalld یک فایروال مبتنی بر zone است. فایروالهای مبتنی بر zone سیستمهای امنیتی شبکه هستند که ترافیک را نظارت میکنند و بر اساس مجموعهای از rule های تعریف شده عمل میکنند که در برابر بستههای ورودی/خروجی اعمال میشوند.
Firewalld یک برنامه مدیریت فایروال برای سیستمعاملهای لینوکس است که ابزاری قدرتمند برای مدیریت و کنترل فیلترینگ ترافیک شبکه را فراهم میکند. این ابزار برای ایجاد، تنظیم و حذف قوانین فایروال بر اساس نیازهای کاربران و تنظیمات شبکه مورد استفاده قرار میگیرد.
نصب firewalld
در ابتدا با دستور زیر firewalld را نصب میکنیم:
برایDebian / Ubuntu:
sudo apt -y install firewalld
برای CentOS / Fedora:
sudo yum install firewalld
برای Arch / Manjaro:
sudo pacman -S firewalld
zone یا منطقه:
Firewalld از تعدادی zone به صورت پیش فرض استفاده میکند که ما باید rule ها را در یکی از این zoneها تعریف کنیم.
پس از نصب میتوانیم با دستور زیر zoneهای فایروال را ببینیم:
firewall-cmd --get-zones
لیستی به شکل زیر را نمایش میدهد:
block
dmz
drop
external
home
internal
libvirt
public
trusted
work
به طور کلی، قانون پیشفرض یک فایروال این است که همه چیز را رد کند و تنها استثناهای خاصی را برای خدمات مورد نیاز اجازه بدهد که از آنها عبور کند.
بسیاری اوقات، مفید است ببینید که خدماتی که با یک zone مشخص مرتبط هستند چیست. برای نمایش این اطلاعات، از دستور زیر استفاده کنید:
firewall-cmd --list-all-zones
با این دستور هم میتوانید یک zone خاص مثلا trusted را ببینید:
firewall-cmd --zone=trusted --list-all
با دستور زیر zone پیش فرض را تغییر دهید:
firewall-cmd --set-default=zonename
کاربرد zoneها:
در firewalld، هر zone دارای تعریف و کاربردهای خاصی است که برای محیطها و شبکههای مختلف استفاده میشود.در زیر توضیحات کامل درباره هر zone ارائه میشود:
- block: این zone به منظور مسدود کردن همهی ارتباطات در یک شبکه مورد استفاده قرار میگیرد. هیچ نوع ارتباطی از یا به این شبکه مجاز نیست.
- dmz: این zone معمولاً برای ایجاد یک منطقهٔ بین شبکهٔ داخلی و شبکهٔ عمومی (مثلاً اینترنت) استفاده میشود. سیستمهایی که در این zone قرار میگیرند، ممکن است به خدماتی که به آنها از طریق اینترنت ارائه میشود، دسترسی داشته باشند.
- drop: در این zone، تمامی بستههای ورودی به صورت صامت حذف میشوند. این به این معناست که برای هیچ یک از خدماتی که در این zone تعریف شدهاند، پاسخی از سوی سیستم داده نخواهد شد.
- external: این zone معمولاً برای شبکهٔ عمومی یا بخشی از شبکهٔ اینترنت که بیرون از شبکهٔ داخلی استفاده میشود. این zone معمولاً برای ارتباطات و ارتباطاتی که از خارج از شبکهٔ داخلی به آن میرسند، تنظیم میشود.
- home: این zone مخصوصاً برای شبکهٔ خانگی یا محیطی که به عنوان محیط خانگی استفاده میشود، طراحی شده است. ارتباطات موثر در داخل این شبکه اجازه داده میشود.
- internal: این zone معمولاً برای شبکهٔ داخلی یا سرورهایی که در داخل شبکهٔ داخلی هستند، استفاده میشود. این zone برای ارتباطات و خدماتی که در داخل شبکهٔ داخلی ارائه میشوند، تنظیم میشود.
- libvirt: این zone معمولاً برای ماشینهای مجازی که توسط برنامهٔ libvirt مدیریت میشوند، استفاده میشود. این zone برای ارتباطات و خدماتی که از طریق ماشینهای مجازی مدیریت شده، تنظیم میشود.
- public: این zone برای استفاده در محیطهای عمومی یا شبکههای عمومی که نیاز به امنیت دارند، استفاده میشود. ارتباطات موثر در داخل این شبکه اجازه داده میشود.
- trusted: این zone برای محیطهای اعتمادی مورد استفاده قرار میگیرد که به آنها اعتماد دارید و امنیت بالایی دارند. ارتباطات موثر در داخل این شبکه اجازه داده میشود.
- work: این zone برای استفاده در محیطهای کاری یا شبکههای محلی که نیاز به امنیت دارند، مورد استفاده قرار میگیرد. ارتباطات موثر در داخل این شبکه اجازه داده میشود.
اعمال یک rule:
در firewalld برای ایجاد یک قانون از یک ساختار منظم به شکل زیر استفاده میکنیم:
firewall-cmd --zone=ZONE-NAME --add-service=SERVICE-NAME --permanent
firewall-cmd --zone=ZONE-NAME --remove-service=SERVICE-NAME --permanent
در قسمت ZONE-NAME باید اسم zone مورد نظر را انتخاب کنید.
در بخش بعدی هم باید از add ویا remove برای اضافه کردن ویا پاک کردن یک rule استفاده کنیم و بعد از آن مشخص کنیم که سرویس،پروتکل،پورت ویا … باشد.و در مقابل آن نوع سرویس ویا شماره پورت را میگذاریم.
–permanent برای دایمی کردن این rule است که بعد از ریستارت باقی بماند.
اگر سرویس استارت نیست هم باید با دستور زیر استارت کنیم.
systemctl enable firewalld
systemctl start firewalld
برای اعمال تغییرات پس از آن باید سرویس را با دستور زیر ریلود کنیم.
firewall-cmd --reload
مثالها:
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --zone=trusted --add-source=192.168.1.1 --permanent
firewall-cmd --zone=public --add-service=ssh --permanent
لینک چنل یوتوب:
https://www.youtube.com/@linuxacademyir
لینک اینستاگرام:
https://www.instagram.com/linuxacademy.ir
لینک لینکدین:
https://www.linkedin.com/in/taleghanipv
تلگرام: