بلاگ/ابزار Firewalld و نحوه استفاده از آن در سیستمعامل لینوکس
بهروز شده
ابزار Firewalld و نحوه استفاده از آن در سیستمعامل لینوکس
ابزار Firewalld یک فرمول مدیریتی فایروال برای بسیاری از توزیعهای لینوکس شامل اوبونتو، دبیان، CentOS، RHEL و فدورا محسوب میشود. عملکرد این ابزار بر اساس سیستم فیلترینگ IP کرنل لینوکس است. همچنین ابزار Firewalld به صورت مستقل از پروتکل عمل میکند. به این معنا که از پروتکلهای IPv4، IPv6، ethernet...
1399/01/315699 بازدید
ابزار Firewalld یک فرمول مدیریتی فایروال برای بسیاری از توزیعهای لینوکس شامل اوبونتو، دبیان، CentOS، RHEL و فدورا محسوب میشود. عملکرد این ابزار بر اساس سیستم فیلترینگ IP کرنل لینوکس است. همچنین ابزار Firewalld به صورت مستقل از پروتکل عمل میکند. به این معنا که از پروتکلهای IPv4، IPv6، ethernet bridge ها و IP set ها پشتیبانی میکند.
مفاهیم پایه ابزار Firewalld
ابزار Firewalld به جای زنجیره و قوانین iptable ها، از مفهوم نواحی و سرویسها استفاده میکند. نواحی یا Zone ها مجموعهای از قوانین هستند که ترافیکهای قابلقبول در شبکه را مشخص میکنند. این ترافیک بر اساس میزان اعتمادی که به کامپیوترهای شبکه دارید، تعیین میشود. رابط های کاربری شبکه یک ناحیه برای یک رفتار خاص تعریف میکنند. فایروال باید به این رفتار خاص اجازه فعالیت بدهد.
مدیریت ابزار FirewallD از طریق فرمان firewall-cmd امکانپذیر است. از طریق این فرمان میتوانید به مدیریت تنظیمات آنی و همیشگی این ابزار بپردازید.
نواحی Firewalld
تعداد ۹ ناحیه از پیش تعریفشده در ابزار Firewalld وجود دارد. این نواحی سطح اعتماد به صورت صعودی مرتب میشوند. در ادامه، توضیح مختصری در مورد هر کدام از این نواحی ارائه میکنیم.
Drop: این ناحیه دارای کمترین سطح اعتماد است و برای چشمپوشی از تمام ترافیکهای ورودی به کار میرود. در این حالت، هیچگونه پیامی مبنی بر قدردانی به فرستنده ارسال نمیشود.
Block: این ناحیه بسیار شبیه به Drop است. ترافیک ورودی پس زده میشود و در همین حال، فرستنده یک پیام دریافت میکند.
Public: ناحیه دارای مجوز ترافیک ورودی از برخی شبکههای پابلیک خاص.
External: این ناحیه زمانی استفاده میشود که سیستم شما به عنوان یک درگاه یا روتر عمل میکند.
Internal: مجموعهای از قوانین که در کامپیوترهای یک شبکه داخلی خصوصی اِعمال میشود.
DMZ: این ناحیه یک مجموعه ایزوله از کامپیوترهای شبکه داخلی شماست که ممکن است از طریق سایر منابع داخلی قابلدسترسی نباشد.
Work: این ناحیه برای سیستمهای کاری استفاده میشود. سطح اعتماد در این ناحیه بسیار بالاست.
Home: بسیاری از کامپیوترها در این ناحیه به یکدیگر اعتماد دارند. سطح اعتماد در اینجا بالاتر از ناحیه Work است.
Trusted: این ناحیه دارای بالاترین سطح اعتماد است. تمام کامپیوترها در شبکه مورد اعتماد هستند.
گام ۱) نصب ابزار Firewalld
Firewalld به صورت پیشفرض در بسیاری از سیستمعاملها نصب میشود. ولی شاید برخی سیستمهای سبک و جمعوجور آن را نصب نکنند. در هر صورت، نصب این ابزار از طریق فرمان زیر ممکن خواهد بود.
برای بررسی وضعیت firewalld، از فرمان زیر کمک بگیرید.
php
1systemctl status firewalld
و یا:
php
1firewall-cmd –state
گام ۲) کار با نواحی و سرویسها
در firewalld به صورت پیشفرض از ناحیه Public استفاده میشود. تمام رابطهای کاربری شبکه با ناحیه public تنظیم شدهاند. برای تهیه لیست نواحی پیشفرض، داریم:
php
1firewall-cmd --get-default-zone
خروجی
php
1public
سپس برای دریافت فهرتسی از نواحی فعال، میتوانید فرمان زیر را تایپ کنید.
php
1firewall-cmd --get-active-zones
شما بایستی خروجی زیر را مشاهده کنید.
php
1public23interfaces: eth0 eth1
برای اینکه لیست تمام نواحی در دسترس را ببینید، فرمان زیر را اجرا نمایید.
php
1firewall-cmd --get-zones
خروجی چیزی شبیه به زیر خواهد بود.
php
1block dmz drop external home internal public trusted work
فرمان زیر نیز برای مشاهده تمام سرویسهای مرتبط با یک ناحیه public است.
شما بر اساس سرویسهای از پیش تعریفشده در firewalld میتوانید ترافیک ورودی را کنترل کنید. به عنوان مثال، برای دادن مجوّز به تمام ترافیک ورودی سرویس http در ناحیه public، فرمان زیر را تایپ نمایید.
php
1firewall-cmd --zone=public --add-service=http
خروجی
php
1success
برای تأیید ترافیک ورودی سرویس FTP در ناحیه public نیز از فرمان زیر استفاده میکنیم.
php
1firewall-cmd --zone=public --add-service=ftp
خروجی
php
1success
فرمان بالا سرویسهای http و ftp را به صورت موقت اضافه میکند. به این معنا که پس از هر بار راهاندازی، دوباره باید این تنظیم را انجام دهید. در نتیجه، برای تنظیم همیشگی این سرویسها باید از گزینه –permanent در فرمان استفاده کنید.
در مرحله بعد، برای اِعمال تغییرات، فرمان زیر را اجرا کنید.
php
1firewall-cmd --reload
گام ۴) تأیید پورتها در Firewalld
امکان تأیید ترافیک ورودی به ابزار firewalld بر اساس پورت نیز وجود دارد. به عنوان مثال، اگر بخواهید به ترافیک ورودی از پورتهای 8080 و 443 مجوّز بدهید، باید فرمان زیر را تایپ کنید.
اکنون فرمان زیر را اجرا کنید تا تغییرات ذخیره شوند.
php
1firewall-cmd --reload
گام ۵) فرآیند Port Forwarding در Firewalld
Port forwarding پروسهای است که در آن درخواستها از IP یا پورت گرفته میشود و به یک IP یا پورت متفاوت منعکس میگردد. این تکنیک به سیستمهای ریموت اجازه میدهد که در یک شبکه خصوصی، به یک سرویس خاص متصل شوند.
قبل از انجام تنظیمات port forwarding، باید ویژگی masquerade را در ناحیه دلخواهتان فعال کنید. این کار با استفاده از گزینه --add-masquerade ممکن خواهد بود.
php
1firewall-cmd --zone=public --add-masquerade
سپس برای فوروارد کردن پورت 80 به پورت 8080 در همان سرور، از فرمان زیر استفاده کنید.
در مطلب آموزشی بالا، شما با مفاهیم پایه ابزار Firewalld آشنا شدید. همچنین نحوه بهکارگیری این ابزار را در سیستمعامل لینوکس مشاهده کردید. امیدواریم که این مطلب مور استفاده شما قرار گرفته باشد و بتوانید ترافیکهای غیرضروری را با استفاده از firewalld حذف کنید.